回 帖 发 新 帖 刷新版面

主题:关于“from 子句语法错误”的请教。

我最近在做一个VB操作数据库的小程序,遇到点问题,在网上查了半天,也看了本论坛“常见问题汇总”的帖子,都没解决,快疯掉了,拜请各位大侠指点一下。简单说明如下:

数据表中有个字段为“PZrq”,是Date型,表示该条记录的日期。

我在窗口中放置两个TextBox控件,用户在这两个文本框中输入日期(我加了个Calendar控件,用户选择日期后把Calendar的Value值赋给文本框的Text)。

然后就用Select语句查询数据表中在这两个日期之间的记录。部分代码如下:

Dim CXrqQ, CXrqZ As Date
...
...
  CXrqQ = DateValue(txtCXtj(1).Text)   '控件数组1,2分别就是上文提到的两个文本框,也是出问题的地方
  CXrqZ = DateValue(txtCXtj(2).Text)
  cxRQtj = " where " & IIf(CXrqZ > CXrqQ, "(PZrq between '" & CXrqQ & "' and '" & CXrqZ & "')", "(PZrq>'" & CXrqQ & "')")  
             '两个文本框在 Form_Load 的时候已经分别赋了"1900-1-1" 和 "2010-12-31"两个初始值

...
...
fraFYjz_PZcx.Tag = "Select PZh,PZrq,FYzy,FYkm,JFje,DFje from ZHfyPZjl" & cxJEtj & " Order by JLh"

(出于一些原因,我的Adodc控件在另一个Form上,所以用个控件的Tag属性把查询语句传过去)

整个查询窗口还有其它一些文本框,设置其它查询条件的。在不涉及日期的查询条件时都能正常执行,但只要有日期的条件,就会出错,错误提示如图,实在不知咋整。我在查询执行前加了个 Msgbox 语句,显示的完整语句如图,实在看不出问题在哪里。

求各位大侠帮我看看,指点一下,谢谢!!

回复列表 (共2个回复)

沙发

有两处问题:
1、Dim CXrqQ, CXrqZ As Date
将CXrqQ声明了为变体变量,将CXrqZ声明为了日期变量
这两者在vb中使用不会有太大的问题。但在sql语句中则要求是string类型
所以应该修改为:
Dim CXrqQ as string, CXrqZ As string

2、PZrq between '" & CXrqQ & "' and '" & CXrqZ & "'
在sql中日期除了表现为字符串格式外套#。所以修改为
PZrq between '#" & CXrqQ & "#' and '#" & CXrqZ & "#'

你先试验一下看。

板凳

谢谢老大,外套#把问题解决了,哎...就这么小符号折腾我两天,还是基础不扎实啊...

我来回复

您尚未登录,请登录后再回复。点此登录或注册