按保存按钮出错!(数据保存到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
[解决办法]
这看是和你相应字段的类型有很大关系啊,要和所赋值的类型匹配才行
[解决办法]
在数据库上面设置。允许空值输入。不就可以了么。