こんにちは。
ともけんと申します。
現在、VB上でMDB1のテーブルAをMDB2のテーブルAに上書きしようと
模索中ですが、良い方法が見つかりません。
どなたかご教授頂ければ幸いです。
OS:XP
VB:VB6
Access:2000
になります。
言葉足らずかもしれませんが、よろしくお願い致します。
ADO か DAO で、mdb2側に接続して、
DELETE FROM [テーブル]
INSERT INTO [テーブル] SELECT * FROM [mdb1].[テーブル]
という感じにするとか。
魔界の仮面弁士さん、
回答ありがとうございます。
質問なんですが、
>ADO か DAO で、mdb2側に接続して、
> DELETE FROM [テーブル]
> INSERT INTO [テーブル] SELECT * FROM [mdb1].[テーブル]
>という感じにするとか。
まず、MDB2のテーブルを削除してからMDB1のテーブルをINSERTする
ということですよね?
①INSERT文はFROMの後でなくても良いのですか?
②[mdb1]に入るのは、下記の例で言うと"DB_obj"のことですか?
(例:Set DB_obj = DBEngine.Workspaces(0).OpenDatabase(DBPath))
※ちなみにMDB2は常に接続し、MDB1は上書きする時のみ接続します。
以上、よろしくお願い致します。
> まず、MDB2のテーブルを削除してから
削除に関しては、テーブル自体を DROP する手法と、
テーブルの中身を DELETE する手法とがあります。
データ件数が多いときは、DROP の方が高速なのですが、その分、
INDEX の再定義などが必要となります。好きな方を選んでください。
> INSERT文はFROMの後でなくても良いのですか?
? 質問の意味が良く分かりませんが、正しい SQL になっているなら
問題無いと思いますよ。「削除の SQL」と「INSERT の SQL」の 2つを、
順に発行してみてください。
> [mdb1]に入るのは、下記の例で言うと"DB_obj"のことですか?
mdb1側を配置してある物理パスです。たとえば、
FROM [C:\folder\mdb1.mdb].[TableA]
という感じですね。
こんにちは。
レコードの削除はできたのですが、INSERTがうまくいきません。
そこで質問なんですが、
>INSERT INTO [TableA] SELECT * FROM [C:\folder\mdb1.mdb].[TableA]
で、"[]"は必要なんですか?
ご教授のほど、よろしくお願い致します。
> INSERTがうまくいきません。
単に「うまくいかない」とだけ言われても、そちらの状況が
まったく分からないので、これ以上のアドバイスはできません。(^_^;)
(SQL にスペルミスがあるのか、環境側に問題があるのか…)
最終的に どんなSQLを書いて、それがどのような結果になるのでしょう?
> で、"[]"は必要なんですか?
特殊文字(ピリオドとか)を含まないなら、[ ] を省略できます。
ですが、つけておいた方が問題は少ないでしょう。
>魔界の仮面弁士さん
できました!!
"INSERT INTO " & TableName & " SELECT * FROM [mdb1.mdb]." & TableName & ";"
としたら、正常に動作しました。
質問に答えて頂きありがとうございました。
何かありましたら、これからもよろしくお願いします。
ツイート | ![]() |