至少有一个参数没有指定!!!!!!!!!!!!!

wangjie1986 2008-03-16 05:43:45
sno = InputBox("请输入系部代码:")
snn = "系部"
str1 = "select 系部.系部名称 ,专业.专业名称"
str2 = "from 系部,专业"
str3 = "where 系部.系部代码=专业.系部代码"
str4 = "and 系部.系部代码=" & "'" & sno & "'"
str = str1
总是提示,至少有一个参数没指定,我对照我的数据库看了好半天也不知道到底是哪错了!!望不吝赐教!!!
...全文
197 19 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangjie1986 2008-03-18
  • 打赏
  • 举报
回复
楼上说的也未免太简单了吧,这点我当然知道, 但是为什么写成这样str="我的一切 ' " & sno & " ' ",其中sno="属于你"
我想要的结果是str="我的一切'属于你' " 如果不要sno前后的 &号,则会报错,这是为什么啊,还有就是sno 前后的 &号起什么作用,如果说是连接符的人,请说下,前面和后面 &各连接什么,谢谢了!
wangjie1986 2008-03-18
  • 打赏
  • 举报
回复
哎,真是晕到吐血了,我把双引号的搭配看错了,我还以为最开始的双引号是和中间那个双引号配对呢!!!!!!居然为此郁闷了一晚上
真是疯鸟!!!!不过还是谢谢你们了,结贴了!!!
鸭梨山大帝 2008-03-18
  • 打赏
  • 举报
回复
看到表名,栏位用中文,我就头晕
zzyong00 2008-03-18
  • 打赏
  • 举报
回复
我晕了,是因为喝酒喝多了,
哪你为什么呢?
前面&各连接sno ,后面的&连接'
wangjie1986 2008-03-17
  • 打赏
  • 举报
回复
谢谢了,加了断点原来其中有个字打错了,另外我只会设置断点,怎么添加对str的监视啊?还有,上面那个问题还是没明白,就是
sno应该也是个字符串 " and 专业.专业代码=" & "'" & sno & "'"这一行中的sno前后为什么要写的如此复杂啊,如楼上所说
字符串常量必须用引号,可我这样接受的sno为0001应该不是字符串常量啊,即使是的,那也应该写成" and 专业.专业代码= '"sno"'"这样啊,那个sno前后的& 什么用啊?谢谢了!
zzyong00 2008-03-17
  • 打赏
  • 举报
回复
&就是一个连接字符串的连接符
"1" & "a" 就相当于 "1a"
shakoe 2008-03-17
  • 打赏
  • 举报
回复
要学会调试,在 str = str1 & str3 & str2 & str4 后面的语句加上断点

然后在立即窗口(就是程序跑倒断点停止后坐下角的窗口)里面输入 ?str来观察分析str的值。

也可以添加一个对str的监视。



wangjie1986 2008-03-17
  • 打赏
  • 举报
回复
还是未完全说清楚,我现在所能理解的就是,"& sno &"的前后的&号,是为了将sno变成它所代表的内容吗也就是说
'" & sno & "'假设sno="0008"的话,那么原式就是'0008',即"& sno &"=0008,是这样吗,但是我不明白这个转化过程到底是怎么实现的啊?这个问题苦恼半天了,书上也没有相关说明,还望不吝言辞,谢谢了!另外还有如果我写成str="我'"sno"'",会报错,而在sno前后加上&就可以了,苦想半天不知道什么原因!!
zuoxingyu 2008-03-17
  • 打赏
  • 举报
回复
在SQL里,字符串是需要用单引号引起来的

而且你的sno 是个变量,当然要写在引号以外了,要是在引号里,那就是字符串的一部分了,而取不到此变量了
of123 2008-03-17
  • 打赏
  • 举报
回复
这样看你的表中“专业代码”字段是何种数据类型。如果是字符型:

str4 = " and 专业.专业代码='" & sno & "'"

因为在 SQL 命令字符串中,字符常量必须用单引号括起来。

如果是数字型,则:
str4 = " and 专业.专业代码=" & sno
wangjie1986 2008-03-17
  • 打赏
  • 举报
回复
貌似还没有太明白,我现在明白了,"sno"是一个字符串常量,但是我不明白为什么要写成"& sno &"也就是说sno前后的&号到底是起什么做用的??希望在这点上说的明白些?谢谢了
wxrwan 2008-03-17
  • 打赏
  • 举报
回复
&是进行字符连接的。
shakoe 2008-03-17
  • 打赏
  • 举报
回复
童鞋你的问题有点初级啊

在你的代码里面,
"sno"是一个字符串常量,表示一个内容为"sno"的字符串。
而sno则表示一个字符串变量标示符,他通过 sno = InputBox("请输入系部代码:") 这条语句接受了系部代码
举例说如果你输入的是"888”,那么sno就是一个内容为"888"的字符串的标识符。


str4 = " and 专业.专业代码=" & "'" & sno & "'" 的解释如下:

str4 = and 专业.专业代码= ' 888 ' 注意我上下对齐了以便你理解


而要是你写成

str4 = " and 专业.专业代码= '"sno"'" 那就变成

str4 = and 专业.专业代码= ' sno ' 显然是不对的。


理解了么。

另外,在调试菜单有添加监视的选项
wangjie1986 2008-03-16
  • 打赏
  • 举报
回复
还有个问题, sno = InputBox("请输入专业代码:")
snn = "专业"
str1 = " select 系部.系部名称,专业.专业名称,学生信息.班级 "
str2 = " from 专业,系部,学生信息 "
str3 = "where 专业.专业代码=系部.专业代码 and 专业.专业代码=学生信息.专业代码 "
str4 = " and 专业.专业代码=" & "'" & sno & "'"
str = str1 & str3 & str2 & str4
数据库应该是没有问题,不过它总是显示符号丢失之类的错误,???看了好半天没看出来,望赐教!!谢谢了,另外
sno应该也是个字符串 " and 专业.专业代码=" & "'" & sno & "'"这一行中的sno前后为什么要写的如此复杂啊,不能
写成" and 专业.专业代码=" & "sno"吗??
zzyong00 2008-03-16
  • 打赏
  • 举报
回复
行了,你得结贴呀
wangjie1986 2008-03-16
  • 打赏
  • 举报
回复
谢谢了,好象能行了,但是我觉得只要在一行末尾加个空格就行了吧,呵呵,谢谢你了
饮水需思源 2008-03-16
  • 打赏
  • 举报
回复
str1 = " select 系部.系部名称 ,专业.专业名称 "
str2 = " from 系部,专业 "
str3 = " where 系部.系部代码=专业.系部代码"
str4 = " and 系部.系部代码=" & "'" & sno & "'"
str = str1 & str2 & str3 & str4
clear_zero 2008-03-16
  • 打赏
  • 举报
回复
你分开写的时候这些单句首尾都没有空格,把空格加上就好了
wangjie1986 2008-03-16
  • 打赏
  • 举报
回复
描述的不对,是str=str1+str2+str3+str4,我想问下,当我把整条语句写在一起的时候,可以正常运行,但是这样分开写就不行了
,难道不能分开写吗,还是有什么别的方法,让它一行不要显示这么长!!!谢谢回答了!!

7,785

社区成员

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

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