我的部門使用使用VBA和Access 2016創建的應用程序。它最初指向我們的一臺服務器上的Access數據庫。在將數據遷移到不同的服務器之後,我現在需要將它指向該不同服務器上的其他SQL Server數據庫。但我似乎無法建立聯繫。如何連接到Access 2016 VBA中的新數據源?
我有dbowner有關服務器的權限。
連接字符串中的原代碼如下:
'Remove the filter, close the log on form, and open the Switchboard
rst.Filter = 0
DoCmd.Close acForm, "frmUserLogOn"
'Open the Main Switchboard
DoCmd.OpenForm "frmMain", acNormal
'Open the InactiveShutDown form in Hidden mode
DoCmd.OpenForm "frmInactiveShutDown", acNormal, , , , acHidden
...
Set conn = CurrentProject.Connection
...
rstLog.Open "tblUserLog", conn, adOpenKeyset, adLockOptimistic
rstLog.AddNew
rstLog!UserID = rst!UserID
rstLog!TimeIn = Now()
rstLog.Update
我的新代碼如下:
'DoCmd.OpenForm "frmInactiveShutDown", acNormal, , , , acHidden
'Commented out the above statement
...
'Set conn = CurrentProject.Connection
'==================================================================
'Start of Added Code for SQL Migration
Set conn = New ADODB.Connection
With conn
.ConnectionString = "Provider=SQLNCLI11;Data Source=(My Server Name);Initial Catalog=(My Database Name);User ID=(Username);Password=(Password)"
.Open
If .State = adStateClosed Then
MsgBox "Connection unsuccessful. Could not open connection.", vbInformation, "Error:"
End If
End With
Set rst = New ADODB.Recordset
With rst
.ActiveConnection = conn
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.Open "tbl_Users"
End With
'End of Added Code for SQL Migration - See Section 2 for rest of code.
'==================================================================
...
'Section 2 of Code
'==================================================================
'Start of added code for SQL Migration
rstLog.Open "tblUserLog", conn, adOpenStatic, adLockOptimistic
rstLog.AddNew
rstLog!UserID = rst!UserID
rstLog!TimeIn = DateTime.Now()
rstLog.Update
MsgBox "Success! Connection was made successfully.", vbInformation
'End of added code for SQL Migration
'===================================================================
我的形式有一個下拉選擇列表中的用戶形成表。我在該表中添加了一個測試用戶,但該測試用戶沒有顯示在下拉列表中。因此,我認爲這種聯繫沒有形成。
是否必須在引號中輸入數據源,初始目錄,用戶ID和密碼的名稱?那麼UserID='Admin'; Password='Test'
?
任何人都知道我在做什麼錯了?
你是否給出錯誤信息?當你嘗試時會發生什麼? –
這不是VB.NET代碼 – Plutonix
也,引號是正確的,但我相信用戶ID應該是用戶ID或用戶ID(全部在一起)。 [檢查出來](https://www.connectionstrings.com/sql-server-native-client-11-0-oledb-provider/standard-security/) –