Office 2013 バージョンでは ADP がサポートされなくなったため、ADP プロジェクトを ACCDB に変換中です。
ADPでアプリケーション接続を変更する以下のコードがあります。
Function ChangeADPConnection(strServerName As String, strDBName As _
String, Optional strUN As String, Optional strPW As String) As Boolean
Dim strConnect As String
On Error GoTo EH:
Application.CurrentProject.CloseConnection
'The Provider, Data Source, and Initial Catalog arguments are required.
strConnect = "Provider=SQLOLEDB.1" & _
";Data Source=" & strServerName & _
";Initial Catalog=" & strDBName
If strUN <> "" Then
strConnect = strConnect & ";user id=" & strUN
If strPW <> "" Then
strConnect = strConnect & ";password=" & strPW
End If
Else 'Try to use integrated security if no username is supplied.
strConnect = strConnect & ";integrated security=SSPI"
End If
Application.CurrentProject.OpenConnection strConnect
ChangeADPConnection = True
Exit Function
EH:
MsgBox Err.Number & ": " & Err.Description, vbCritical, "Connection Error"
ChangeADPConnection = False
End Function
しかし、ACCDB で現在のプロジェクト接続を変更する方法がわかりません。
SQL Server をバックエンドとしてリンク テーブルを使用しています
これが私が試したことです:
Public Function ChangeACCDBConnection(strServerName As String, strDBName As _
String, Optional strUN As String, Optional strPW As String) As Boolean
Dim strConnect As String
Dim cnn As ADODB.Connection
Application.CurrentProject.Connection.Close
On Error GoTo EH:
strConnect = "XXXXX"
Set Con = New ADODB.Connection
Con.ConnectionString = strConnect
CurrentProject.OpenConnection strConnect // Error here
ChangeConnection = True
Exit Function
EH:
MsgBox Err.Number & ": " & Err.Description, vbCritical, "Connection Error"
ChangeConnection = False
End Function
エラーが発生しました。現在のプロジェクト接続を変更してください。接続文字列に問題はなく、データベースに正常に接続しています。
唯一のことは、アプリケーション全体で使用するために、その接続を Application.CurrentProject に設定する方法です。
どんな助けでも大歓迎です..