sSQL = "SELECT * FROM 财务信息 WHERE ([部门ID]='" & sDepKey & "') AND ([日期] BETWEEN '" & sDateFirst & "' AND '" & sDateLast & "')"
语法错误是因为数据类型部队,作一下类型转换再生成语句

解决方案 »

  1.   

    可能和and无关,你试一试将and两边的语句分别运行试一试,可能是数据类型问题
      

  2.   

    [部门ID]的字段类型应该是数值型的吧,如果是的话你的这句WHERE ([部门ID]='" & sDepKey & "') 中的‘----’不应该加
      

  3.   

    后面的日期应该用 # # 括起来,而不是用 ' '
    正确的语法应该是
    sSQL = "SELECT * FROM 财务信息 WHERE ([部门ID]='" & sDepKey & "') AND ([日期] BETWEEN #" & sDateFirst & "# AND #" & sDateLast & "#)"
      

  4.   

    1. 确定[部门ID]是否是字符串类型, 我使一般用Long,没有引号
    2. sDateFirst 变量中的格式是否与数据库中的保存格式相同,多数情况为windows 控制面板中的区域设置中的日期时间格式与数据库中默认的不同, 也会出现数据类型不匹配
      

  5.   

    不知道你用的数据库是什么,如果是ACCESS则在日期的两边应该使用#而不是',不然就是对的了。但你的错误提示是数据类型错误,和这个符号是没有关系的,查看一下你的变量是不是都是字符型的,如果不是把它们都转换成字符型的就可以了,比如把日期转成字符用Format等。
      

  6.   

    我已经解决了!是由于我的疏忽,部门ID字段是数字型的,我却误写成了字符型,所以出现数据类型错误!见谅!见谅!:)
    由于我学编程是在实践中成长的,所以当初写日期型还不怎么懂,又加上还有做一些处理,所以就把日期型改成了字符型!到现在要改也不好改了,所以就讲究了!:P!还是谢谢各位啦!