数据库表:table,
字段:yue   Integer
在程序为用两个combo下拉框做为查询条件,具体设置如下:Private Sub Form_Load()
Dim i As Integer
For i = 1 To 12
    Combo1.AddItem i: Combo2.AddItem i
    Combo1.ListIndex = 0: Combo2.ListIndex = 0
Next
End SubPrivate Sub Command1_Click()'查询
Dim db As Database
Dim rs As Recordset
Set db = OpenDatabase("XXXXX")
Set rs = db.OpenRecordset("select * from XXXX where yue between'" + Combo1.Text + "'and '" + Combo2.Text + "'")
End Sub
在运行时,系统会提示"标准表达式中数据类型不匹配",我不知道是怎么回事,请大侠们指点一下..哪里有错了///

解决方案 »

  1.   

    Private Sub Form_Load()
    Dim i As Integer
    For i = 1 To 12
        Combo1.AddItem i: Combo2.AddItem cstr(i)'转换为STRING
    Next
    Combo1.ListIndex = 0
    Combo2.ListIndex = 0End SubPrivate Sub Command1_Click()'查询
    Dim db As Database
    Dim rs As Recordset
    Set db = OpenDatabase("XXXXX")
    Set rs = db.OpenRecordset("select * from XXXX where yue between'" + Combo1.Text + "'and '" + Combo2.Text + "'")
    End Sub
      

  2.   

    Private Sub Form_Load()
    Dim i As Integer
    For i = 1 To 12
     Combo1.AddItem CSTR(i)'转换为STRING
     Combo2.AddItem cstr(i)'转换为STRING
    Next
    Combo1.ListIndex = 0
    Combo2.ListIndex = 0End SubPrivate Sub Command1_Click()'查询
    Dim db As Database
    Dim rs As Recordset
    Set db = OpenDatabase("XXXXX")
    Set rs = db.OpenRecordset("select * from XXXX where yue between'" + Combo1.Text + "'and '" + Combo2.Text + "'")
    End Sub
      

  3.   

    我试了,还是这个提示..数据库的YUE字段的类型是数值型的,是不是COMBO的I是文字型的,而导致数据类型不匹配..
      

  4.   

    between #" ........."#
    dao日期比较用的是#,不是'
      

  5.   

    哦,你的问题有两个阿,你知道吗?一个是刚才我帮你解决了,另外一个
    Private Sub Command1_Click()'查询
    Dim db As Database
    Dim rs As Recordset
    dim sql as stirng
    Set db = OpenDatabase("XXXXX")
    sql=("select * from XXXX where yue between " + Combo1.Text + " and " + Combo2.Text 
    Set rs = db.OpenRecordset(sql)
    End Sub
      

  6.   

    BETWEEN
    指定测试范围。语法
    test_expression [ NOT ] BETWEEN begin_expression AND end_expression参数
    test_expression是用来在由 begin_expression 和 end_expression 定义的范围内进行测试的表达式。test_expression 必须与 begin_expression 和 end_expression 具有相同的数据类型。NOT指定谓词的结果被取反。begin_expression是任何有效的 Microsoft® SQL Server™ 表达式。begin_expression 必须与 test_expression 和 end_expression 具有相同的数据类型。end_expression是任何有效的 SQL Server 表达式。end_expression 必须与 test_expression 和 begin_expression 一样具有相同的数据类型。AND作为一个占位符,表示 test_expression 应该处于由 begin_expression 和 end_expression 指定的范围内。结果类型
    Boolean结果值
    如果 test_expression 的值大于或等于 begin_expression 的值并且小于或等于 end_expression 的值,则 BETWEEN 返回 TRUE。如果 test_expression 的值小于 begin_expression 的值或者大于 end_expression 的值,则 NOT BETWEEN 返回 TRUE。注释
    若要指定排除范围,请使用大于 (>) 和小于 (<) 运算符。如果任何 BETWEEN 或 NOT BETWEEN 谓词的输入为 NULL,则结果是 UNKNOWN。示例
    A. 使用 BETWEEN
    本例返回书的题头标识符,这些书的年度至今单位销售额是从 4,095 到 12,000。USE pubs
    GO
    SELECT title_id, ytd_sales
    FROM titles
    WHERE ytd_sales BETWEEN 4095 AND 12000
    GO下面是结果集:title_id ytd_sales 
    -------- ----------- 
    BU1032   4095        
    BU7832   4095        
    PC1035   8780        
    PC8888   4095        
    TC7777   4095        (5 row(s) affected)
      

  7.   

    建议你把“on error goto ###”行去掉,看一下到底是哪行语句错误