リモート ODBC データ ソース 'A' があり、その値はローカル アクセス データベースのテーブル 'B' に従って更新されます。どうすれば同じことができますか?パススルー クエリを使用してみましたが、ONE SINGLE クエリでリモート ソースとローカル ソースの両方にアクセスできません。どうすれば同じですか?
リンクテーブルはどのように機能しますか? VBA を使用してローカル テーブルを ODBC データベースに動的にリンクできますか?
リモート ODBC データ ソース 'A' があり、その値はローカル アクセス データベースのテーブル 'B' に従って更新されます。どうすれば同じことができますか?パススルー クエリを使用してみましたが、ONE SINGLE クエリでリモート ソースとローカル ソースの両方にアクセスできません。どうすれば同じですか?
リンクテーブルはどのように機能しますか? VBA を使用してローカル テーブルを ODBC データベースに動的にリンクできますか?
Access データベースで、ODBC データ ソースのリンク テーブルを作成するだけです。
詳細な手順については、次を参照してください。
データとデータベース オブジェクトのインポートとリンクについて
これが完了すると、Access 内から同じクエリでリンク テーブルとローカル テーブルを使用できます。
私が認識しているリンクを動的に作成することはできませんが、既に存在するリンクを更新することはできます。
どのような加入が必要ですか?1 つまたはいくつかの行を更新するだけの場合は、次のようにすることができます (これは ado を使用してのみ記述できます (microsoft.activex データ オブジェクトへの参照を追加することを意味します))。
dim ss as string 'tempstr, sqlstr whatever you want to call it
dim cn as object: set cn = createobject("adodb.connection")
cn.Connection = [connection string required for ODBC datasource]
cn.Open
dim rst as object: set rst = createobject("adodb.recordset")
rst.open "SELECT required_data_column_list FROM localTable [WHERE ...]" _
, currentproject.connection, adOpenStatic, adLockReadOnly
do while not rst.eof
ss = "UPDATE ODBC_TableName SET ColumnA = '" & rst.Fields(3) & "' [, ... ]
ss = ss & " WHERE ... "
cn.Execute ss
do while cn.State = adStateExecuting
loop
rst.movenext
loop
set rst = nothing 'these statements free up memory,
set cn = nothing 'given that these objects are unmanaged
お役に立てれば