首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

按保存按钮出错!(数据保存到ACCESS)解决办法

2012-02-15 
按保存按钮出错!(数据保存到ACCESS)请大家帮我看看:按保存按钮出错!(数据保存到ACCESS)我的ACCESS数据库中

按保存按钮出错!(数据保存到ACCESS)
请大家帮我看看:按保存按钮出错!(数据保存到ACCESS)


我的ACCESS数据库中有两个表,一个存放的是定点医院名称 表1(用于查询),一个是保存各医院住院病人的详情 表2.程序先打开 表1 查询(这里是正常的),但是在保存到表2时提示:
"实时错误:  2147352571!(80020005)"
类型不匹配

原来错误指向:text25.text
将这句删除后可以保存,但录入两个后又出现同样的提示:
错误相同,指向就在text1.text----text26.text中随机出现,弄得我满头雾水,请熟悉数据库编程的朋友帮我找找毛病,谢谢!

代码:

Private Sub Command1_Click()
Dim a As Variant
Dim b As Integer
Dim rs As New ADODB.Recordset
Dim Cn As New ADODB.Connection '打开 或 关闭连接

T7 = Val(Text7.Text)
T8 = Val(Text8.Text)
T9 = Val(Text9.Text)
T10 = Val(Text10.Text)
T11 = Val(Text11.Text)
T12 = Val(Text12.Text)

If Text7 = "" Then
  MsgBox "住院费用 不能为空! ", vbSystemModal, "提示"
  Text7.SetFocus
  Exit Sub
End If

If Text8 = "" Then
  MsgBox "总报销金额 不能为空! ", vbSystemModal, "提示"
  Text8.SetFocus
  Exit Sub
End If
   
   
If T8 > T7 Then '判断报销费用是否小于或等于住院费用.
  MsgBox "住院费用 小于 总报销额: 请重新输入! ", vbSystemModal, "提示"
  Text7.Text = ""
  Text8.Text = ""
  Text7.SetFocus
  Exit Sub
End If

If T8 <> T9 + T10 + T11 + T12 Then '判断分项报销费用是否等于总报销费用.
  MsgBox "分项报销额不等于总报销额: 请重新输入! ", vbSystemModal, "提示" 'Trim(Text8.Text) <> Trim(Text9.Text) + Trim(Text10.Text) + Trim(Text11.Text) + Trim(Text12.Text)
  Text9.Text = ""
  Text10.Text = ""
  Text11.Text = ""
  Text12.Text = ""
  Text9.SetFocus
  Exit Sub
End If

  a = CLng(Val(Text8.Text)) / CLng(Val(Text7.Text))
If a < 0.2 Then
  b = MsgBox(" 报销率低于20% : 是否返回修改数据 ? ", vbOKCancel, "提示")
  If b = 1 Then
  Text7.SetFocus
  Exit Sub
  Else
  End If
 End If
   
   
   
  Set rs = GoSql("select * from 住院报销明细")
  rs.AddNew '必须加在查询语句的后面.
   
  rs.Fields("姓名") = Text1.Text ' 原为 rs("姓名"),根据网友修改为rs.Fields("姓名") = Text1.Text 
  rs.Fields("类别") = Combo1.Text 问题仍然存在.
  rs.Fields("人数") = Text3.Text
  rs.Fields("医院") = Text5.Text
  rs.Fields("级别") = Text6.Text
  rs.Fields("住院天数") = Text25.Text
  rs.Fields("总费用") = Text7.Text
  rs.Fields("总报销") = Text8.Text
  rs.Fields("基本报销") = Text9.Text
  rs.Fields("重补") = Text10.Text
  rs.Fields("公补") = Text11.Text
  rs.Fields("单位补充") = Text12.Text
  rs.Fields("起付线") = Text13.Text
  rs.Fields("全自费药品") = Text14.Text
  rs.Fields("全服设施") = Text16.Text
  rs.Fields("全诊项目") = Text15.Text
  rs.Fields("乙类药品自付") = Text17.Text
  rs.Fields("部分诊疗项目") = Text18.Text
  rs.Fields("自付比例") = Text19.Text
  rs.Fields("床位费") = Text23.Text
  rs.Fields("治疗费") = Text22.Text
  rs.Fields("检查费") = Text21.Text
  rs.Fields("材料费") = Text24.Text
  rs.Fields("药品费") = Text20.Text
  rs.Fields("录入时间") = Text2.Text


  rs.Fields("病种") = Text26.Text
  rs.Fields("录入时间") = Text2.Text
  rs.Update
   
   
  MsgBox "数据保存成功!", vbSystemModal, "提示"
   
  Set rs = Nothing
  rs.Close
   
  '将输入转换小写字母
  Call SetCapsLock(False)
  Call SetNumLock(True) '打开NumLock键
   
  Command2.SetFocus
   
End Sub


[解决办法]
这看是和你相应字段的类型有很大关系啊,要和所赋值的类型匹配才行
[解决办法]
在数据库上面设置。允许空值输入。不就可以了么。

热点排行