我钻进牛角尖了,SQL高手!救命!!

sswwood 2000-04-14 10:25:00
我下面的这条SQL语句不知道那里出现了问题,不能执行。

说明:我的Cid Mid Pid begindate endate,格式如:DO1、202、17、1999、2000我的这条语句在执行到 "ON 订单ID.客户ID = 客户ID.客户ID" 这条语句时没有问题,在接着执行后面语句的时候就会出现问题,执行时提示我 "语法错误(操作符丢失)在查询表达式‘订单ID.客户ID = 客户ID.客户IDwhere 订单ID.客户ID = D01'中",
这里的 "客户IDwhere"不是笔误,可能问题就出在那里了,但是我不知道怎样更改!

我在等着用呢!
请高手们多多帮忙!万分感激!!!!
源代码::
Dim strSQL As String
Dim Cid As String
Dim Mid As String
Dim Pid As String
Dim begindate As String
Dim enddate As String

Cid = Text1.Text
Mid = Text2.Text
Pid = Text3.Text
begindate = Text4.Text
enddate = Text5.Text

strSQL = "SELECT 订单ID.客户ID, 订单ID.生产ID, 订单ID.产品ID, 客户ID.客户名称, 订单ID.单价, 订单ID.数量, 订单ID.总价, 订单ID.订单日期 " & _
"INTO [客户信息] " & _
"FROM 订单ID INNER JOIN 客户ID " & _
"ON 订单ID.客户ID = 客户ID.客户ID" & _


"where 订单ID.客户ID=" & Cid & " and 订单ID.生产ID " & Mid & _
" and 订单ID.产品ID=" & Pid & " between 订单ID.开始日期=" & begindate & " and 订单ID.结束日期=" & enddate



...全文
193 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yarao 2000-05-14
  • 打赏
  • 举报
回复
好像sql不是错的。你的变量定义有错吧。Mid是关键字吧怎么能定义成变量呢?
programart_life 2000-05-11
  • 打赏
  • 举报
回复
哈!哈!哈!似乎就是WHERE的前面少了一个空格,有人已经告诉你了!
你这样写吧 " where.... 而不是"where.....
OK啦!
programart_life 2000-05-11
  • 打赏
  • 举报
回复
哈!哈!哈!似乎就是WHERE的前面少了一个空格,有人已经告诉你了!
yuyu 2000-05-10
  • 打赏
  • 举报
回复
在sql中最好不要用中文,有时会导致意想不到的错误
Wonny 2000-04-24
  • 打赏
  • 举报
回复
这个问题我好象答复过了。
请将以下语句改为
strSQL = "SELECT 订单ID.客户ID, 订单ID.生产ID, 订单ID.产品ID, 客户ID.客户名称, 订单ID.单价, 订单ID.数量, 订单ID.总价, 订单ID.订单日期 " & _
"INTO [客户信息] " & _
" FROM 订单ID INNER JOIN 客户ID " & _
" ON 订单ID.客户ID = 客户ID.客户ID " & _
" where 订单ID.客户ID=" & Cid & " and 订单ID.生产ID " & Mid & _
" and 订单ID.产品ID=" & Pid & " between 订单ID.开始日期=" & begindate & " and 订单ID.结束日期=" & enddate
复制并粘帖到您的程序就行。以后不妨在 strsql 赋值后加上 msgbox strsql 一句
别忘了在标识符之间加上空格!变量名之间常加空格总不会错的!"开始之后即加上空格。还有SQL SERVER 中和 enddate 对应的变量类型应为字符型。
huitor 2000-04-24
  • 打赏
  • 举报
回复
请将运行期间strSql的值贴上来。谁知道你在text1到Text5的文本框输入了什么。
solomon 2000-04-24
  • 打赏
  • 举报
回复
Un1 is right
Calf 2000-04-24
  • 打赏
  • 举报
回复
1。“where” 前后要有空格
2。“订单ID.生产ID ”后面似乎少了一个“=”
3。“between”用的有些怪
4。日期格式前后要有“#”
Un1 2000-04-14
  • 打赏
  • 举报
回复
你先Debug一下赋值语句运行完成后的结果:

strSQL = ?

是否正确。

一般来将凡是字符类型一定要有引号括住,另外SQL的日期表示和VB默认不同,你可以用mm/dd/yy先格式化,然后用“#”括住。
Janven 2000-04-14
  • 打赏
  • 举报
回复
建议你分开写查询条件,分别跟踪,一大把的东西很难发现错误的。你在Where之前加多一个空格吧。再一个“订单ID.客户ID”的数据类型是不是和你的”Cid“或“客户ID.客户ID”的一致。另外SELECT的字段列表中不必每个字段都加“订单ID.”直接写就行了。

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧