[英]VBA connecting to SQL Server
将VBA连接到SQL Server时遇到麻烦:
Sub ConnectSQLServer()
Dim cmd As ADODB.Command
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim strConn As String
Dim par As ADODB.Parameter
Dim strSQL As String
strConn = "DRIVER=SQL Server;SERVER=CHU-AS-0004;DATABASE=RTC_LaplaceD_DEV;Trusted_Connection=Yes;"
Set conn = New ADODB.Connection
conn.Open strConn
Set cmd = New ADODB.Command
cmd.CommandText = "dbo.Version"
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = conn
rs.Open = "SELECT * FROM [dbo].[Version]"
cmd.Execute rs
Set conn = Nothing
Set cmd = Nothing
sConnString = ""
End Sub
我只想从名为[dbo].[Version]
的表中选择所有值,但是当我执行它时,出现一个错误:
编译错误:预期函数或变量'
并突出显示带有rs.Open
的行。
您能帮我解决这个问题吗?
将您的代码更改为以下内容:
Set cmd = New ADODB.Command
cmd.CommandText = "SELECT * FROM [dbo].[Version]"
cmd.CommandType = adCmdText
cmd.ActiveConnection = conn
Set rs = cmd.Execute
Do While Not rs.EOF
'do something with rs.Fields(0) '
rs.MoveNext
Loop
Set conn = Nothing
Set cmd = Nothing
rs.Fields是一个从零开始的集合,这意味着第一个字段是0,而不是1。您可以通过rs.Fields(1),rs.Fields(2)等获取后续字段。或者您可以将Field名称与语法rs.Fields(“ MyFieldName”)。
请注意,在使用字符串命令(“ SELECT * FROM ..”)时,CommandType为adCmdText。 Recordset的语法为SET rs = cmd.Execute。 另外,您必须在循环中调用MoveNext,否则您将陷入循环!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.