已有23人关注
VB编程问题2
发表在VB答疑区 2009-10-13
是否精华
版块置顶:
你好!
    我又有问题了,问题如下:
子程序:
dim RS1 as new ADODB Recordset

Private Sub SetValue()  '给各字段负值
RS1.Fields("介质编号") = Text1.Text
RS1.Fields("分子式") = Text2.Text
RS1.Fields("闪点(℃)") = Text3.Text
RS1.Fields("外观和气味") = Text4.Text
RS1.Fields("介质名称") = Text5.Text
RS1.Fields("爆炸极限") = Text6.Text
RS1.Fields("自燃点(℃)") = Text7.Text
RS1.Fields("危险特性") = Text8.Text
RS1.Fields("灭火方法") = Text9.Text
RS1.Fields("用途") = Text10.Text
End Sub
其中“介质编号”的数据类型是文本型,必填字段;“闪点”和“自燃点”的数据类型是数字,非必填字段;其他字段的数据类型都是备注。
问题:
对Text3.Text和Text7.Text负值为空时即对两个数字型的字段(“闪点”“自燃点”)负值为空时程序就运行出错,错误信息如下:实时错误'-2147217887(80040e21)'  多步操作产生错误,请检查每一步的状态值。(其他字段负值为空或不为空时程序都正常运行)
请问:
程序运行出错是什么原因,如何解决?为什么必填字段负值为空时程序也能正常运行,这和字段数据类型有什么关系?
谢谢!
分享到:
精彩评论 3
vbsoldier
学分:0 LV1
2009-10-13
沙发
您好,出错的原因还是由于字段不允许为空字符串造成的。您应该在保存前先对Text3.Text和Text7.Text的内容进行限制,例如:

If Trim(Text3.Text)<>"" And Trim(Text7.Text)<>"" Then

.......
Endif

需要注意 “空”与“空字符串”不是同一概念。
miaoqimei
学分:0 LV1
2009-10-14
板凳
不好意思,我还是不明白,我改了,程序运行时还是出现了同样的错误。
miaoqimei
学分:0 LV1
2009-10-16
地板
问题已解决
谢谢!
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照