簡體   English   中英

VBA MSSQL連接錯誤

[英]vba mssql connection error

我正在嘗試將SQL與Access連接。 我想做的就是簡單地使用select語句從mssql獲取數據。 這是代碼。

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

strSQL = "SELECT * FROM dbo.Version"


cmd.Execute
conn.Close

Set conn = Nothing
Set cmd = Nothing
End Sub

執行此代碼時,出現類似“ [Microsoft] [ODBC SQL Server驅動程序] [SQL Server]的錯誤,因為'Version'是表對象,因此對過程'Version'的請求失敗。”

我知道我需要在“ strSQL = SELECT * FROM dbo.Version”之后添加一些內容,但我不知道該如何正確填寫。您能幫我這個忙嗎?

看來您正在將dbo.Version作為SP或SQL命令執行,這是錯誤的。

您應該改為在strSQL對象中執行命令。 因此,修改后,您的代碼將如下所示:

strSQL = "SELECT * FROM dbo.Version"

Set cmd = New ADODB.Command
cmd.CommandText = strSQL
cmd.CommandType = adCmdStoredProc
cmd.ActiveConnection = conn

編輯1

我在MS Excel中復制了相同的問題,以使用以下代碼從MS SQl Server讀取數據,它對我有用:

 'Declare variables'
    Set objMyConn = New ADODB.Connection
    Set objMyRecordset = New ADODB.Recordset
    Dim strSQL As String

'Open Connection'
    objMyConn.ConnectionString = "Provider=SQLOLEDB;Data Source=HARSH-SHARMA\SQLEXPRESS;Initial Catalog=db1;User ID=sa;Password=pass001;"
    objMyConn.Open

'Set and Excecute SQL Command'
    strSQL = "select * from Subject"

'Open Recordset'
    Set objMyRecordset.ActiveConnection = objMyConn
    objMyRecordset.Open strSQL

'Copy Data to Excel'
    ActiveSheet.Range("A1").CopyFromRecordset (objMyRecordset)

請嘗試這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM