想要在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望大侠指点一二,先谢谢了

解决方案 »

  1.   

    日期型字段不能用LIKE关键字的!
      

  2.   

    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的日期前后需要加#
      

  3.   

    敲掉一个符号了:
    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#"
      

  4.   

    “错误94,无效使用null”是不是数据库中有null的数据,在给Text5.DataField 赋值的时候出现的问题?
    解决的方法是,去掉未null值的选定,例如用  and aa is not null 来限定!或是自定义函数,遇到null自动换为一个值替换,如""等!
      

  5.   

    money1= iif(inull(Adodc1.Recordset.Fields(0).Value),0,adodc1.recordset.fields(0).value)
      

  6.   

    查看是否取出null值,也就是说字段内包括null值或者根本没有找到符合条件的结果集
      

  7.   

    但是我在ACCESS中下面的SQL语句是可以正确求出9月的总收入的啊!!!为什么在VB中旧不行呢?
    Adodc1.RecordSource = "SELECT Sum(收入) AS 月收入 From 收入查询 Where 退房日期 Like '" & 2003 - 9 & "*" & "'"