使用VBA,ADO的参数化查询问题,在线等!

hk78787878 2013-08-06 04:07:47
在做一个登陆见面现在遇到一个编译出错的问题,大家帮忙看看。
Private Sub cmdlogon_Click()
Dim cnn As ADODB.Connection
Set cnn = New ADODB.Connection

cnn.Provider = "MSDASQL"
cnn.ConnectionString = "driver={SQL Server};" & _
"server=MBMFLASH\ITP;uid=HC;pwd=77887788;database=LAB"
cnn.Open


If cnn.State = adStateOpen Then
MsgBox "Welcome to LAB database!"
Else
MsgBox "Sorry. No LAB database."
End If

Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
'指定cmd的当前连接为conn
cmd.ActiveConnection = cnn
'设置要执行的是存储过程average
cmd.CommandType = adCmdText
cmd.CommandText = "select * from dbo.logon where username=? and password=?"
'注意有的地方是用[dbo].logon来表示,这点需要待认证

Dim par As ADODB.Parameter
Set par = cmd.CreateParameter("username", adLongVarChar, adParamInput, 10, Val(nameselect.Text))

cmd.Parameters.Append par

Set par = cmd.CreateParameter("password", adInteger, adParamInput, 10, Val(code.Text))
cmd.Parameters.Append par




Dim rst As New ADODB.Recordset
Set rst = cmd.Execute


错误出现在“ Set rst = cmd.Execute”这一行,错误提示为
...全文
375 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldy 2013-08-10
  • 打赏
  • 举报
回复
varchar 改为varwchar
ANGUD 2013-08-10
  • 打赏
  • 举报
回复
高手 ,最少比我厉害
hk78787878 2013-08-09
  • 打赏
  • 举报
回复
引用 15 楼 vansoft 的回复:
参数类型设置得不对。
是的,你说对了
vansoft 2013-08-07
  • 打赏
  • 举报
回复
参数类型设置得不对。
hk78787878 2013-08-06
  • 打赏
  • 举报
回复
引用 13 楼 DBA_Huangzj 的回复:
[quote=引用 12 楼 hk78787878 的回复:] [quote=引用 10 楼 DBA_Huangzj 的回复:] 不懂就学,谁生出来就懂的
斑竹我找到原因了,原来我在ado设置的字段的变量和sql server字段的变量不匹配。。。我勒个去。 这个问题解决了,但又遇到其它问题。。。 木事,问题一个个解决,I Can!!![/quote]就应该这样,话说VB版怎么那么冷清啊[/quote] 估计我的问题太小儿科了,大神觉得我应该多历练,所以大家选择沉默 哈哈
發糞塗牆 2013-08-06
  • 打赏
  • 举报
回复
引用 12 楼 hk78787878 的回复:
[quote=引用 10 楼 DBA_Huangzj 的回复:] 不懂就学,谁生出来就懂的
斑竹我找到原因了,原来我在ado设置的字段的变量和sql server字段的变量不匹配。。。我勒个去。 这个问题解决了,但又遇到其它问题。。。 木事,问题一个个解决,I Can!!![/quote]就应该这样,话说VB版怎么那么冷清啊
hk78787878 2013-08-06
  • 打赏
  • 举报
回复
引用 10 楼 DBA_Huangzj 的回复:
不懂就学,谁生出来就懂的
斑竹我找到原因了,原来我在ado设置的字段的变量和sql server字段的变量不匹配。。。我勒个去。 这个问题解决了,但又遇到其它问题。。。 木事,问题一个个解决,I Can!!!
hk78787878 2013-08-06
  • 打赏
  • 举报
回复
引用 10 楼 DBA_Huangzj 的回复:
不懂就学,谁生出来就懂的
嗯嗯,是的,我是一个愿意接受挑战的人 匿了,谢谢啦,我去论坛里搜搜,等有了结果再做后续。
發糞塗牆 2013-08-06
  • 打赏
  • 举报
回复
不懂就学,谁生出来就懂的
hk78787878 2013-08-06
  • 打赏
  • 举报
回复
引用 8 楼 hk78787878 的回复:
[quote=引用 7 楼 DBA_Huangzj 的回复:] VB我也不熟啊,以前搞了一下vbscript而已,网上应该有很多VB操作数据库的例子啊,你看他们是如何执行语句的吧
好的,谢谢斑竹 我想说我好苦逼,vb+outlook2008+SQL SERVER 2008,这三者我全都不懂。。。 苦逼[/quote] 应该是vb+outlook2010+SQL SERVER 2008
hk78787878 2013-08-06
  • 打赏
  • 举报
回复
引用 7 楼 DBA_Huangzj 的回复:
VB我也不熟啊,以前搞了一下vbscript而已,网上应该有很多VB操作数据库的例子啊,你看他们是如何执行语句的吧
好的,谢谢斑竹 我想说我好苦逼,vb+outlook2008+SQL SERVER 2008,这三者我全都不懂。。。 苦逼
發糞塗牆 2013-08-06
  • 打赏
  • 举报
回复
VB我也不熟啊,以前搞了一下vbscript而已,网上应该有很多VB操作数据库的例子啊,你看他们是如何执行语句的吧
hk78787878 2013-08-06
  • 打赏
  • 举报
回复
引用 4 楼 DBA_Huangzj 的回复:
cmd.Execute 这个是字符串,不是数据集
谢谢斑竹!本来菜鸟,最近被这个弄死了。。。斑竹,那接下来该怎么改
hk78787878 2013-08-06
  • 打赏
  • 举报
回复
谢谢斑竹!本来菜鸟,最近被这个弄死了。。。斑竹,那接下来该怎么改
發糞塗牆 2013-08-06
  • 打赏
  • 举报
回复
cmd.Execute 这个是字符串,不是数据集
hk78787878 2013-08-06
  • 打赏
  • 举报
回复
好的,谢谢!
Shawn 2013-08-06
  • 打赏
  • 举报
回复
转VB区,谢谢 --Set rst = cmd.Execute()
-Tracy-McGrady- 2013-08-06
  • 打赏
  • 举报
回复
去你的C#专区问去

1,451

社区成员

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

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