一个SQL语句的错误问题
Setmrs=mcn.Execute("select*from表1ainnerjoin表1bona.姓名=b.姓名where课程=var_课程and年龄=var_年龄")...
Set mrs = mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名 where 课程 = var_课程 and 年龄 = var_年龄 ")
实时错误:
该特定字段'课程'可以参考SQL语句中 FROM 子句列表中的多个表,怎么会这样啊?
wangzhiqing999,你好
按照你的改写 执行后 出现“变量 var_”未定义啊????
我执行:Set mrs =mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名")后
下句用消息框显示:MsgBox mrs("学分")
错误:在对应所需名称或序数的集合中,未找到项目! 展开
实时错误:
该特定字段'课程'可以参考SQL语句中 FROM 子句列表中的多个表,怎么会这样啊?
wangzhiqing999,你好
按照你的改写 执行后 出现“变量 var_”未定义啊????
我执行:Set mrs =mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名")后
下句用消息框显示:MsgBox mrs("学分")
错误:在对应所需名称或序数的集合中,未找到项目! 展开
5个回答
展开全部
Set mrs = mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名 where 课程 = var_课程 and 年龄 = var_年龄 ")
这句错在这里,有两种可能:
1:如果你的var_课程和var_年龄是要放到数据库中比较的值,请这样写SQL语句:
Set mrs = mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名 where 课程 = 'var_课程' and 年龄 = 'var_年龄 '")
原因:如果不加单引号,这条语句到数据库执行的时候,会把var_课程和var_年龄看做是两个变量,而不是字符串!所以就会报出现“变量 var_”未定义的错误!
2:如果你的var_课程和var_年龄是程序中的变量,请这样写你的SQL语句:
Set mrs = mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名 where 课程 = '"+var_课程+"' and 年龄 = '"+var_年龄 +"'")
原因:如果是变量,你把变量名直接写到字符串里面去了,程序在执行的时候是不会把变量的值代进去的,只会用你的变量名!所以也会报出现“变量 var_”未定义的错误!
至于你的这个错误:
下句用消息框显示:MsgBox mrs("学分")
错误:在对应所需名称或序数的集合中,未找到项目!
应该是没有学分这一列。
这句错在这里,有两种可能:
1:如果你的var_课程和var_年龄是要放到数据库中比较的值,请这样写SQL语句:
Set mrs = mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名 where 课程 = 'var_课程' and 年龄 = 'var_年龄 '")
原因:如果不加单引号,这条语句到数据库执行的时候,会把var_课程和var_年龄看做是两个变量,而不是字符串!所以就会报出现“变量 var_”未定义的错误!
2:如果你的var_课程和var_年龄是程序中的变量,请这样写你的SQL语句:
Set mrs = mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名 where 课程 = '"+var_课程+"' and 年龄 = '"+var_年龄 +"'")
原因:如果是变量,你把变量名直接写到字符串里面去了,程序在执行的时候是不会把变量的值代进去的,只会用你的变量名!所以也会报出现“变量 var_”未定义的错误!
至于你的这个错误:
下句用消息框显示:MsgBox mrs("学分")
错误:在对应所需名称或序数的集合中,未找到项目!
应该是没有学分这一列。
展开全部
你这个课程前面也加上表名,包括var_课程,年龄也是一样,你再试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from 表1 a inner join 表1 b on a.姓名=b.姓名
上面都还好
下面 估计有问题
where 课程 = var_课程 and 年龄 = var_年龄
var_课程 与 var_年龄
是你 程序里面的变量。 数据库无法获取的
可以修改为
Set mrs = mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名 where 课程 = '" + var_课程 + "' and 年龄 = " + var_年龄 )
由于我不清楚你这个程序是什么语言写的, 字符串 连接的部分,都是 +
如果是 VB 的, 请用 &
-----
出现“变量 var_”未定义
你程序里面没有 var_课程 与 var_年龄 的?
那你就直接
mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名")
吧。
---
你那个表1 里面, 到底有啥字段啊?
MsgBox mrs("学分")
没有, 你就 MsgBox mrs("姓名")
看看.
上面都还好
下面 估计有问题
where 课程 = var_课程 and 年龄 = var_年龄
var_课程 与 var_年龄
是你 程序里面的变量。 数据库无法获取的
可以修改为
Set mrs = mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名 where 课程 = '" + var_课程 + "' and 年龄 = " + var_年龄 )
由于我不清楚你这个程序是什么语言写的, 字符串 连接的部分,都是 +
如果是 VB 的, 请用 &
-----
出现“变量 var_”未定义
你程序里面没有 var_课程 与 var_年龄 的?
那你就直接
mcn.Execute("select * from 表1 a inner join 表1 b on a.姓名=b.姓名")
吧。
---
你那个表1 里面, 到底有啥字段啊?
MsgBox mrs("学分")
没有, 你就 MsgBox mrs("姓名")
看看.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是"a.课程=var_课程 and a.年龄 = var_年龄"或者"b.课程=var_课程 and b.年龄 = var_年龄"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
其实你开始的错误已经说的很明白了啊, 字段“课程”,在a,b两个表中都有,它分不清应该显示哪个表的。。
你可以a.列名,...这样把列明全部列出来。
但是我看你写的sql,所使用表连接没有任何含义啊?
a和b都是表1,姓名和姓名关联。。等于关联后的数据还是表1
你直接 select * from 表1 where 课程 = var_课程 and 年龄 = var_年龄
不就行了么?
你可以a.列名,...这样把列明全部列出来。
但是我看你写的sql,所使用表连接没有任何含义啊?
a和b都是表1,姓名和姓名关联。。等于关联后的数据还是表1
你直接 select * from 表1 where 课程 = var_课程 and 年龄 = var_年龄
不就行了么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询