在做一个采购系统的采购但时
我想通过产品的名称查询显示产品的信息
Private Sub Combo1_LostFocus()
Set rs5 = conn.Execute("select 产地,规格,包装,单位 from product where 商品名称=' " & Trim(Combo1.Text) & " '")
With rs5
.MoveFirst
Do While Not .EOF
DoEvents
Text6.Text = !规格
Text9.Text = !包装
Text7.Text = !单位
Text10.Text = !产地
.MoveNext
Loop
End With
End Sub
运行的时候出错,BOF或EOF中有一个是真,或者但前的记录已被删除
我想知道怎么才能让记录不为空
--------------------编程问答-------------------- 之前判断一下,是否有记录
.MoveFirst
--------------------编程问答-------------------- 判断是没有记录的
但是我就是不知道为什么会没有记录
我的查询语句没有错误的啊 --------------------编程问答-------------------- 哈哈,这个问题我这段时间一直在研究,并刚刚获得结果,给分不? --------------------编程问答-------------------- 哎,数据库为空就会出错!空时不要MOVE来MOVE去的!
----------------------------------------------------
人事考勤工资系统88元!9天自助建站系统8元!VB项目毕业设计参考20元!阳光软件网:
http://www.sun883.com --------------------编程问答-------------------- 用rs.open sql, conn ,1,1试试看 --------------------编程问答-------------------- 问题1 :
Ifconn.Execute("select 产地,规格,包装,单位 from product where 商品名称=' " & Trim(Combo1.Text) & " '") .EOF <> True Or .BOF <> True Then
产地,规格,包装,单位中肯定有一项不符合商品名称条件去除掉
问题2 :
未做判断,如果有提示错误代码关掉
If .EOF = True Or .BOF = True Then
.....
'.MoveNext
.MovePrevious
ElseIf .EOF = True Or .BOF = True Then
MsgBox "没有记录了。"
'.MoveLast
.MoveFirst
end if
问题3 :
比较关键的东东,即便是运行很正常也老是跳出那个问题语句,彻底解决掉它。
Adodc1.BOFAction = adStayBOF
Adodc1.EOFAction = adStayEOF --------------------编程问答-------------------- 问题3 是用Adodc控件时出现的问题 --------------------编程问答-------------------- 不给分啊! --------------------编程问答-------------------- '去掉.MoveFirst,还有DoEvents如果可以的话也去掉
Private Sub Combo1_LostFocus()
Set rs5 = conn.Execute("select 产地,规格,包装,单位 from product where 商品名称=' " & Trim(Combo1.Text) & " '")
With rs5
Do While Not .EOF
DoEvents
Text6.Text = !规格
Text9.Text = !包装
Text7.Text = !单位
Text10.Text = !产地
.MoveNext
Loop
End With
End Sub --------------------编程问答-------------------- 楼上如果去掉movefirst的话那就无法定位数据库指针拉,到时会发生无可预知的错误哦 --------------------编程问答-------------------- 问题是很奇怪
我在另外的一个COMBO2中就不会产生错误了
而且我的数据库是没有问题的
--------------------编程问答-------------------- 刚出来的记录集用movefirs定位个屁,本来就在开始。如果真想就加上一句:
Private Sub Combo1_LostFocus() Set rs5 = conn.Execute( "select 产地,规格,包装,单位 from product where 商品名称= ' " & Trim(Combo1.Text) & " ' ") With rs5 if .BOF then exit sub Do DoEvents Text6.Text = !规格 Text9.Text = !包装 Text7.Text = !单位 Text10.Text = !产地 .MoveNext Loop While Not .EOF End With End Sub
本文链接:https://www.kinber.cn/post/3699.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: