VBA:Excel 调用 MSSQL存储过程并返回结果,点了按钮啥反应也没有,也不报错,请问该怎么写啊?
Subtest()DimcnAsADODB.ConnectionDimrsDataAsADODB.RecordsetDimSQLConnection1AsStringSQ...
Sub test()
Dim cn As ADODB.Connection
Dim rsData As ADODB.Recordset
Dim SQLConnection1 As String
SQLConnection1 = _
"Provider=SQLOLEDB;" & _
"Data Source=192.168.1.6;" & _
"Initial Catalog=AIS20121128104207;" & _
"User ID=sa;Password=123;"
Set cn = New ADODB.Connection
cn.Open SQLConnection1
Set gobjCmd = New ADODB.Command
Set gobjCmd.ActiveConnection = cn
gobjCmd.CommandText = "xjy_yszkmx"
gobjCmd.CommandType = adCmdStoredProc
gobjCmd.Parameters.Append _
gobjCmd.CreateParameter("@RETURN_VALUE", adInteger, _
adParamReturnValue, 0)
gobjCmd.Parameters.Append _
gobjCmd.CreateParameter("@year", adInteger, _
adParamInput, 40)
gobjCmd.Parameters("@year").Value = "2012"
Set rsData = gobjCmd.Execute
Do While Not rsData.EOF
rsData.MoveNext
Loop
End Sub 展开
Dim cn As ADODB.Connection
Dim rsData As ADODB.Recordset
Dim SQLConnection1 As String
SQLConnection1 = _
"Provider=SQLOLEDB;" & _
"Data Source=192.168.1.6;" & _
"Initial Catalog=AIS20121128104207;" & _
"User ID=sa;Password=123;"
Set cn = New ADODB.Connection
cn.Open SQLConnection1
Set gobjCmd = New ADODB.Command
Set gobjCmd.ActiveConnection = cn
gobjCmd.CommandText = "xjy_yszkmx"
gobjCmd.CommandType = adCmdStoredProc
gobjCmd.Parameters.Append _
gobjCmd.CreateParameter("@RETURN_VALUE", adInteger, _
adParamReturnValue, 0)
gobjCmd.Parameters.Append _
gobjCmd.CreateParameter("@year", adInteger, _
adParamInput, 40)
gobjCmd.Parameters("@year").Value = "2012"
Set rsData = gobjCmd.Execute
Do While Not rsData.EOF
rsData.MoveNext
Loop
End Sub 展开
3个回答
展开全部
设置rsData gobjCmd.Execute
虽然不rsData.EOF的
rsData.MoveNext
回路
这里是给rsdate分配,
然后是有循环并山光标向下移动缓模,直到边界
当然,绝哪中什么都不会发生
DO循环中可以添加你想要什么
虽然不rsData.EOF的
rsData.MoveNext
回路
这里是给rsdate分配,
然后是有循环并山光标向下移动缓模,直到边界
当然,绝哪中什么都不会发生
DO循环中可以添加你想要什么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的代码没问题 没反应不正好代表代码无错么~
你代码中无任何输出结果的语句
你代码中无任何输出结果的语句
追问
谢谢你的回答,我先上楼上请教一下该怎么写。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Set rsData = gobjCmd.Execute
Do While Not rsData.EOF
rsData.MoveNext
Loop
你这里就是给rsdate赋值隐肆
然后就是一直循环让光标往下移,一直到边界灶仔轿戚谈
当然什么也不会发生了
你想要干什么可以添加在do loop里
Do While Not rsData.EOF
rsData.MoveNext
Loop
你这里就是给rsdate赋值隐肆
然后就是一直循环让光标往下移,一直到边界灶仔轿戚谈
当然什么也不会发生了
你想要干什么可以添加在do loop里
追问
呃。。这个是我从网上抄来的。要实现我的目的该怎么写呢?
我就是想调用MSSQL里的xjy_yszkmx存储过程,并且在EXCEL表里返回执行结果。。。
追答
你直接加一句 [a1].copyfromrecordset rsdate 看看是不是你要的
就放最后就可以了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询