[英]VBA run time error 3704 with recordset in Excel
美好的一天。
當這段代碼命中“ While Not objMyRecordset.EOF”時,我收到運行時錯誤3704。此外,當我將鼠標懸停在“ strPSTPath = CStr(objMyRecordset(“ PSTPath”))”的“ objMyRecordset”部分時,我看到以“ objMyRecordSet(PS ... =
在SQL Server Management Studio中使用時,我的SQL查詢工作正常。 遇到問題時,該錯誤立即發生。 我一步一步地完成了代碼。 任何想法將不勝感激。 謝謝。
Sub Button3_Click()
'******
'Variables
Set objMyConn = New ADODB.Connection
Set objMyCmd = New ADODB.Command
Set objMyRecordset = New ADODB.Recordset
'Open connection
objMyConn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=XXXX;Data Source=XXXX"
objMyConn.Open
'Set and execute SQL command
Set objMyCmd.ActiveConnection = objMyConn
objMyCmd.CommandText = "<Valid SQL Command removed for public code display>"
objMyCmd.CommandType = adCmdText
'Open recordset
Set objMyRecordset.Source = objMyCmd
objMyRecordset.Open objMyCmd
While Not objMyRecordset.EOF
strPSTPath = CStr(objMyRecordset("PSTPath"))
MsgBox strPSTPath
objMyRecordset.MoveNext
Wend
End Sub
嘗試這個:
Sub Button3_Click()
Dim SQL As String, strPSTPath As String
Dim objMyConn, objMyRecordset
Set objMyConn = New ADODB.Connection
Set objMyRecordset = New ADODB.Recordset
objMyConn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;" & _
"Persist Security Info=False;Initial Catalog=XXXX;Data Source=XXXX"
SQL = "<Valid SQL Command removed for public code display>"
objMyRecordset.Open SQL, objMyConn
While Not objMyRecordset.EOF
strPSTPath = CStr(objMyRecordset("PSTPath"))
MsgBox strPSTPath
objMyRecordset.MoveNext
Wend
End Sub
找出問題所在。 對於此特定服務器上的SQL版本,連接字符串不正確。 將連接字符串更改為:
驅動程序= {SQL Server Native Client 11.0};服務器= XXXX;數據庫= XXXX; Trusted_Connection =是;
現在一切正常。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.