一个ADO和ACCESS的问题,大侠请进

skh2000 2003-09-07 10:53:29

想要在VB中使用ADO控件对某表中“收入”这个字段求和,再赋给一个变量,再输出如下语句却总是提示
数据库是access
“错误94,无效使用null”
语句如下
dim money1
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\hotel.mdb"
Adodc1.RecordSource = "SELECT Sum(收入) AS 月收入 From 收入查询 Where 退房日期 Like '" & 2003 - 9 & "*" & "'"
Adodc1.Refresh
Text5.DataField = "月收入"
Adodc1.Refresh
money1= Adodc1.Recordset.Fields(0).Value
MsgBox dat_1

望大侠指点一二,先谢谢了
...全文
28 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wumy_ld 2003-09-07
  • 打赏
  • 举报
回复
敲掉一个符号了:
Adodc1.RecordSource = "SELECT Sum(收入) AS 月收入 From 收入查询 Where 退房日期 between #2003-9-01# and #2003-9-30"
应为
Adodc1.RecordSource = "SELECT Sum(收入) AS 月收入 From 收入查询 Where 退房日期 between #2003-9-01# and #2003-9-30#"
wumy_ld 2003-09-07
  • 打赏
  • 举报
回复
dim money1
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\hotel.mdb"
Adodc1.RecordSource = "SELECT Sum(收入) AS 月收入 From 收入查询 Where 退房日期 between #2003-9-01# and #2003-9-30"
Adodc1.Refresh
Text5.DataField = "月收入"
Adodc1.Refresh
money1= Adodc1.Recordset.Fields(0).Value
MsgBox dat_1
access的日期前后需要加#
LCAAA 2003-09-07
  • 打赏
  • 举报
回复
应该是大于或是小于
skh2000 2003-09-07
  • 打赏
  • 举报
回复
但是我在ACCESS中下面的SQL语句是可以正确求出9月的总收入的啊!!!为什么在VB中旧不行呢?
Adodc1.RecordSource = "SELECT Sum(收入) AS 月收入 From 收入查询 Where 退房日期 Like '" & 2003 - 9 & "*" & "'"
qifanghcy 2003-09-07
  • 打赏
  • 举报
回复
日期型字段不能用LIKE关键字的!
changechange 2003-09-07
  • 打赏
  • 举报
回复
查看是否取出null值,也就是说字段内包括null值或者根本没有找到符合条件的结果集
rednod 2003-09-07
  • 打赏
  • 举报
回复
看看
MSSQL 2003-09-07
  • 打赏
  • 举报
回复
money1= iif(inull(Adodc1.Recordset.Fields(0).Value),0,adodc1.recordset.fields(0).value)
lisen101 2003-09-07
  • 打赏
  • 举报
回复
“错误94,无效使用null”

是不是数据库中有null的数据,在给Text5.DataField 赋值的时候出现的问题?
解决的方法是,去掉未null值的选定,例如用 and aa is not null 来限定!

或是自定义函数,遇到null自动换为一个值替换,如""等!

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧