我有以下这段程序:
Private Sub Command1_Click()
If rs.State = adStateOpen Then rs.Close
rs.Open "SELECT sum(费用) as 合计 FROM 水费表 where 公司名 = '" & Combo1.Text & "' and 年份 = '" & Combo2.Text & "' and 月份 = '" & Combo3.Text & "'", cn, adOpenDynamic, adLockOptimistic
If rs.EOF = True Then
total1 = rs!合计
Label1.Caption = rs1!合计
Label2.Caption = ToChineseMoney(total1)
End If
End Sub
这样有错吗?我是希望通过选择combo1、combo2、combo3这三个值来查询数据表,如果数据表有记录则把值赋给label1。
这样的写法有错吗?怎么明明数据表里有数据但却又不报错又不显示?
If rs.EOF = True Then
………
end if
是不是用这种办法来判断rs是否有内容?
8 个解决方案
#1
If rs.recordcount>0 Then...
#2
rs.eof代表没记录,楼主正好写反了
应该是 if not rs.eof then
应该是 if not rs.eof then
#3
sql="SELECT 公司名,年份,月份,sum(费用) as 合计 FROM 水费表 where 公司名 = '" & Combo1.Text & "' and 年份 = '" & Combo2.Text & "' and 月份 = '" & Combo3.Text & "' group by 公司名,年份,月份"
#4
是呀
if not rs.eof then '表示有记录
....
end if
也可以
if rs.recordcount>0 then'表示有记录
...
end if
if not rs.eof then '表示有记录
....
end if
也可以
if rs.recordcount>0 then'表示有记录
...
end if
#5
樓上的說得對了
#6
真的很谢谢大家,那我还想问一下,我上面这段小程序中,total1定义为double型,而在数据表(access)中的“费用”为货币型,那我这样写total1 = rs!合计,能不能成功把值赋给total1啊?
#7
可以啦,再一次谢谢大家!!结贴给分!
#8
在记录集游标类型为仅向前和动态时,RecordCount返回-1,所以推荐用
rs.eof进行检测。
rs.eof进行检测。
#1
If rs.recordcount>0 Then...
#2
rs.eof代表没记录,楼主正好写反了
应该是 if not rs.eof then
应该是 if not rs.eof then
#3
sql="SELECT 公司名,年份,月份,sum(费用) as 合计 FROM 水费表 where 公司名 = '" & Combo1.Text & "' and 年份 = '" & Combo2.Text & "' and 月份 = '" & Combo3.Text & "' group by 公司名,年份,月份"
#4
是呀
if not rs.eof then '表示有记录
....
end if
也可以
if rs.recordcount>0 then'表示有记录
...
end if
if not rs.eof then '表示有记录
....
end if
也可以
if rs.recordcount>0 then'表示有记录
...
end if
#5
樓上的說得對了
#6
真的很谢谢大家,那我还想问一下,我上面这段小程序中,total1定义为double型,而在数据表(access)中的“费用”为货币型,那我这样写total1 = rs!合计,能不能成功把值赋给total1啊?
#7
可以啦,再一次谢谢大家!!结贴给分!
#8
在记录集游标类型为仅向前和动态时,RecordCount返回-1,所以推荐用
rs.eof进行检测。
rs.eof进行检测。