Access データベースの経験はほとんどありませんが、同様の VBA マクロを Excel で作成しました。ある .mdb ファイルから別の .mdb ファイルのまったく同じテーブルに行をコピーしようとしています。ただし、まだ存在しない場合にのみインポートしたいと思います。誰かがこれを行うための最良の方法と、私が使用および変更できるコードを教えてもらえますか? 私はすでにスタックオーバーフローを調べましたが、うまくいく例が見つからないようです。
8 つの異なるテーブルがあり、これらの中に数百行あります。おそらく5〜20列です。
スクリプトを VBS 内で作成できれば、アクセスに読み込まずに更新を実行できるため、これは理想的です。
助けやアドバイスをありがとう、サイモン
編集 -
Zevの答えは仕事をしているようですが、このエラーが発生しています。また、site2内のMDBは、コピーしてsite1に入れているものです
Error: Expected end of statement
Code: 800A0401
Line: 17
Char: 13
コード (「update.vbs」として保存):
Dim eng
Set eng = CreateObject("DAO.DBEngine.120")
Set dest = eng.OpenDatabase("C:\Users\simon\Documents\garden games redesign\import script\Site1\ActinicCatalog.mdb")
Sub CopyTable()
Dim rs
Set rs = dest.OpenRecordset("Person")
Dim sWhere
For Each fld In rs.Fields
sWhere = sWhere & " AND " & fld.Name & " <> t1." & fld.Name
Next
sWhere = Mid(sWhere, 6)
Dim sql: sql= _
"INSERT INTO Person " & _
"SELECT * " & _
"FROM Person AS t1 IN ""C:\Users\simon\Documents\garden games redesign\import script\Site2\ActinicCatalog.mdb"" " & _
"WHERE " & sWhere
dest.Execute(sql)
End Sub
詳細については編集してください:
\Site1\ActinicCatalog.mdb - 宛先データベースです \Site2\ActinicCatalog.mdb - 元のデータベースです
これらのデータベースには約 20 の列があります