- 締切済み
レコードセットの結合
A.MDBからRS_Aというレコードセット、B.MDBからRS_Bというレコードセットを作成し、このふたつのレコードセットを一つにしたいと思います。 これは可能でしょうか? どのような方法を採ればよろしいでしょうか? とりあえずはDAOで予定しています。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nicotinism
- ベストアンサー率70% (1019/1452)
例えばC.mdb で結合するとして Sub test() Dim strSql As String 'テーブル構造だけをインポート DoCmd.TransferDatabase acImport, "Microsoft Access", _ "c:\data\A.mdb", acTable, "元テーブル名", "新テーブル名", True 'A.mdb から strSql = "insert into 新テーブル名 " & _ " (フィールド1,フィールド2,フィールド3)" & _ " select フィールド1,フィールド2,フィールド3 FROM 元テーブル名" & _ " in ''[ms access; database=c:\data\A.mdb;]" & _ " where フィールド1 =10" CurrentDb.Execute strSql, dbFailOnError 'B.mdbから strSql = "insert into 新テーブル名 " & _ " (フィールド1,フィールド2,フィールド3)" & _ " select フィールド1,フィールド2,フィールド3 FROM 元テーブル名" & _ " in ''[ms access; database=c:\data\B.mdb;]" & _ " where フィールド1 =10" CurrentDb.Execute strSql, dbFailOnError End Sub のようにSQL文で処理したほうがレコードセットを回すよりも速いと思います。 where 句の所は " where フィールド1数値型 =10" " where フィールド1文字型 ='10'" " where フィールド1日付型 =#2006/09/13#" です。
お礼
ご回答ありがとうございます。 一つのプロシージャーの中でふたつのレコードセットを結合は無理ってことなのでしょうか? ご回答の内容はアクションクエリで第3のmdbに書き出すってことですよね? 書き漏らしていましたが、当然、レコードセットの構造は2つとも同じです。