begindate和enddate两个变量里的格式必须是yyyy/mm/dd,你看看对不对,如果不对,请先用format(begindate,"yyyy/mm/dd")函数来格式化它们。还有,单引号'和双引号"之间不能有空格,因为如果有的话,这个空格会镶嵌到你的变量两端去,这样可就死也判断不对了。还有,ON子句中结尾的"客户ID"和下一句(WHERE子句)中的"WHERE"之间少了个空格。另外,你的日期判断明显写错了,正确的写法是:(从你的代码的between那个地方开始改)
" and 订单ID.订单日期 between '"& begindate &"' and '"& enddate &"'",而且,有些数据库对between ... and ...的两个参数是有顺序要求的,也就是说,begindate 必须比 enddate小。

解决方案 »

  1.   

    你的between子句有问题,另外不要将变量名和VB的函数混淆,比如"Mid",把它换个名字,比如"Mida":" where 订单ID.客户ID = '" & Cid & "' and 订单ID.生产ID = '" & Mida & "' and 订单ID.产品ID = '" & Pid & "' and 订单ID.开始日期 >= #" & format$(CDate(begindate),"mm/dd/yy") & "# and  订单ID.结束日期<= #" & format$(CData(enddate),"mm/dd/yy") & "#"
      

  2.   

    Sorry! 上面 'CDate'写成'CData'了!" where 订单ID.客户ID = '" & Cid & "' and 订单ID.生产ID = '" & Midd & "' and 订单ID.产品ID = '" & Pid & "' and 订单ID.开始日期 >= #" & format$(CDate(begindate),"mm/dd/yy") & "# and 订单ID.结束日期 <= #" & format$(CDate(enddate),"mm/dd/yy") & "#"