注   操作日期为列名   格式为date dim sqla sa string
sqla="Select * From  表名称 Where 操作日期 BETWEEN #" & DTPicker1 & "# AND #" & DTPicker2 & "#"Adodc1.connectionstring = "。"
 Adodc1.RecordSource = sqla
Adodc1.Refresh
运行以后 提示 日期的语法错误在 查询表达式  ‘操作日期 between #2018/5/1 星期五# and #2018/5/2  星期六# ’中 请问为什么会报错! 
哪步不对了请指教下

解决方案 »

  1.   

    这里整理至少一个参数没有被指定值错误的可能原因:
      1、sql语句原因:因为access数据库对join语法支持有局限性,所以在写access数据库join语句的时候注意参考这篇文章中介绍的sql格式:access数据库多表联合查询(Left Join等)的sql语句写法。其实有时候也可以考虑这种多表查询:select * from table1,table2 where table1.tid=table2.tid and table1.userid='A00001'。
      2、字段名字写错。这种错误虽然很低级,但是还是经常会发生。所以当access数据库提示至少一个参数没有被指定值错误的时候,建议耐心对比下sql中各字段名字是否和数据表中的字段名一致。
      注意以上问题,就再也不怕access数据库的这个至少一个参数没有被指定值的错误了。
    感谢大师,希望对小伙伴们有用 ,
    参考链接  https://zhidao.baidu.com/question/1796076501101539987.html?fr=iks&word=vb+select+%D6%C1%C9%D9%D2%BB%B8%F6%B2%CE%CA%FD%C3%BB%D3%D0%B1%BB%D6%B8%B6%A8%D6%B5&ie=gbk
      

  2.   

    sqla="Select * From  表名称 Where 操作日期 BETWEEN # " & DTPicker1 & " # AND # " & DTPicker2 & " ’#"
    若 DTPicker1和DTPicker2 是VB界面的控件名,格式应该为上!
      

  3.   

    试试:sqla="Select * From  表名称 Where 操作日期 BETWEEN #" & Format(DTPicker1, "YYYY-mm-dd") & "# AND #" & Format(DTPicker2, "YYYY-mm-dd") & "#"可能与数据库引擎对时间日期字符串的解析能力有关。有些格式它无法处理。二楼说法不对。Access 数据库的时间日期串用 # 号括起来,SQL 库的时间日期才用引号,且不能二者同时用。
      

  4.   

    错误提示那么明确的告诉你了
    日期的语法错误在 查询表达式  ‘操作日期 between #2018/5/1 星期五# and #2018/5/2  星期六# ’中 
    你还没看出日期表达式不对么?那个星期五你看得懂,程序看不懂了
      

  5.   

    SQL 语句实际上完全以字符串构成。日期时间格式数据实际上是 Double 数字。当转成日期时间字符串时,就有多种格式之分。采用哪种格式取决于在控制面板中的“日期、时间、语言和区域设置”。而用 Format 格式就可以得到你所需要的字符串格式。
      

  6.   

    把 & 换成 + 试试
      

  7.   

    日期变量改成长日期格式试试:yyyy-mm-dd
      

  8.   

    改成
    qla="Select * From  表名称 Where 操作日期 BETWEEN #" & Format(DTPicker1,"yyyy-mm-dd") & "# AND #" & Format(DTPicker2 ,"yyyy-mm-dd")& "#"
    试一下