ワイヤレス ネットワークを介した MDB データベースへのデータ アクセスに問題があるアプリがあります。
簡単な解決策は、すべてのワークステーションに、そのすべてのテーブルを SQL Server データベースにリンクするローカル MDB ファイルを配置することでしょうか?
これは、アプリ内のすべてのデータ アクセス コードを書き直す必要を回避する方法でしょうか?
ワイヤレス ネットワークを介した MDB データベースへのデータ アクセスに問題があるアプリがあります。
簡単な解決策は、すべてのワークステーションに、そのすべてのテーブルを SQL Server データベースにリンクするローカル MDB ファイルを配置することでしょうか?
これは、アプリ内のすべてのデータ アクセス コードを書き直す必要を回避する方法でしょうか?
はい、それはかなりうまくいくでしょう。多くのお客様がこのようにつながっています。
しかし、それは簡単な作業ではありません。必要なすべての努力が報われるかどうかはわかりません。
そして、いくつかの新しいメンテナンスと展開の問題があります。
従うべき手順は次のとおりです。
1)テーブルを SQLServer に移行します。
2)バックエンド データベースへの接続に使用する ODBC データ ソースを作成します。
3)
テーブルを接続します。テーブルは以前と同じ名前です。
ここで、すべてのコードをテストします。
うまくいけば、何も書き直す必要はありません。
実際の問題は、元のデータ ソースと一致する ODBC データ ソースを作成する必要があるクライアント PC にあります。また、フロントエンド データベースを再配布する場合、クライアント PC からすべてのテーブルを再接続する必要がある可能性があります。次のような関数を呼び出す必要があります。
Public Function UpdateODBCTables() As Boolean
On Error GoTo Exit_On_Error
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim sDSN As String
Dim sDB As String
Dim sComputer As String
Dim sDesc As String
Dim sApp As String
Dim strConnect As String
sDSN = "YOUR_DSN_NAME"
sDB = "YOUR_DATABASE_NAME"
sComputer = "YOUR_COMPUTER_NAME"
sApp = "YOUR_APP_NAME"
sDesc = "DESCRIPTION_OF_YOUR_APP"
strConnect = "ODBC;DSN=" & sDSN & ";" & _
"DATABASE=" & sDB & ";" & _
"WSID=" & sComputer & ";" & _
"TrustedConnection=Yes;" & _
"Description=" & sDesc & ";" & _
"APP=" & sApp ";"
Set dbs = CurrentDb
' Loop over tabledefs of ODBC type and reconnect
For Each tdf In dbs.TableDefs
If tdf.Connect <> "" And Left(tdf.Connect, 4) = "ODBC" And Left(tdf.Name, 1) <> "~" Then
tdf.Connect = strConnect
tdf.RefreshLink
End If
Next
dbs.TableDefs.Refresh
UpdateODBCTables = True
Exit_On_Return:
Set dbs = Nothing
Exit Function
Exit_On_Error:
MsgBox Err.Description, vbCritical, "YOUR_MESSAGE_TITLE"
Resume Exit_On_Return
End Function