- ベストアンサー
構造が同じ別テーブルInsert Into する場合
追加クエリをVBA上のSQLで作成しています。 A.MDBとB.MDBに同名のTable_Aがあり、フィールドも同じです。。 これを重複をチェックするためにField_Aでジョインさせていますが、 テーブル名もフィールド名も同じなために区別ができません。 どのようにして区別するとよいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1です。リンクを張って INSERT INTO Table_A1 SELECT Table_A.* FROM Table_A LEFT JOIN Table_A1 ON [Table_A].[ID]=[Table_A1].[ID] WHERE ((([Table_A1].[ID]) Is Null)); みたいなSQL文でいかがでしょう
その他の回答 (2)
>リンクしなくてもJoinって可能なんでしょうか? ちょっと考えて下さい。リンクしないでJoinすることを要求されたら、データベース(エンジン)はどこを探しに行けば良いでしょうか? いくつものデータベースに同じ名前のテーブルがあったり、ネットワークが広範囲に拡がっていたり。全部丸なげでデータベースに面倒を見てくれってのは無理です。
補足
アクションクエリで外部DBに書き出す場合、IN句を 使いますが、そんなのができないかなぁ。と思った 次第です。 今回はリンクでいけたので助かりました。 ありがとうございました。
質問が明快でないため回答がないように見受けました。 VBAということなのでAccessの中での話でしょうか。 A.MDBからB.MDBのTable_Aにリンクを張れば、Accessは自動的に Table_A1 として名前を付け替え、SQL文は 例:SELECT DownLoadLog.TgtURLID, Table_A1.TgtURLID FROM DownLoadLog INNER JOIN Table_A1 ON DownLoadLog.LogID = Table_A1.LogID; のように、二つの名前で出来ると考えます。 問題点を具体的に、場合によってはソースを提示するなどして補足されてはいかがでしょう。
補足
VBA+MDBファイルということなのでAccessでもExcelでもWordでも何 でもかまいません。 Table_Aに伝票IDが存在したとして、A.MDBからB.MDBに伝票IDが 存在しないものだけをアクションクエリでExportできないかと思 います。 リンクテーブルにする方法はやっていなかったので試 してみたいとおもます。
お礼
リンクテーブルでいけました。 データの有無チェックはやっぱり、同MDBでないと 無理なんでしょうねぇ。。(リンクにしない場合) リンクしなくてもJoinって可能なんでしょうか?