ローカル PC に Access 2007 データベースがあり、ネットワーク上に別のデータベースがあります。
ローカル: c:\mydatabase.accdb ネットワーク: \server\share\publicdatabase.accdb
両方のデータベースには2つの同一のテーブルがあります。それらを呼び出してTable1
、Table2
私のプロセスでは、データを PICK データベースから区切りテキスト ファイルにエクスポートしてから、Access にインポートします。
現在、ローカル データベースのテーブルを更新してから、Access でテーブルをローカル データベースからネットワーク データベースにコピー/貼り付けします。これをVBAで実現したいと考えています。
ネットワークデータベースでテーブルをクリアしてから更新を「プル」するために使用される次のコードを見つけましたが、PCから実行してネットワークデータベーステーブルをクリアしてから更新を「プッシュ」する必要があります。
Dim AccessConn As New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Test Files\database.mdb")
AccessConn.Open()
Dim AccessCommand As New System.Data.OleDb.OleDbCommand("DELETE * FROM [Catlog]", AccessConn)
AccessCommand.ExecuteNonQuery()
AccessCommand.CommandText = "INSERT INTO [Table1] SELECT * FROM [MS Access;DATABASE=C:\Test Files\database.mdb;].[Table1]"
AccessCommand.ExecuteNonQuery()
AccessConn.Close()
また、それほど問題がなければ、ネットワークデータベースが更新可能であることを最初に確認するためのチェックをどのように含めることができますか? (他のユーザーがまだ開いていない)
ありがとうございました!!
編集:これはこれまでのところ機能します:
With Access.DoCmd
.RunSQL "Delete FROM Table1 IN '\\server\share\publicdatabase.accdb'"
.RunSQL "Insert INTO Table1 IN '\\server\share\publicdatabase.accdb' SELECT * FROM Table1"
End With