|
1レコード目から最終レコードまで順次処理を進めていくわけですから、
ループ処理ですね。
「For ・・・ Next」や「Do Until・・・ Loop」などの構文を使います。
「For ・・・ Next」文を使うなら、レコードセットのRecordCountプロパティ、
「「Do Until・・・ Loop」を使うなら、レコードセットのEOFプロパティ
も使うことになるでしょう。
テーブルにおけるレコードの値を取得するためには、レコードセットを使います。
レコードセットには、DAOとADOの2種類があります。
それぞれ一長一短がありますが、ちなみに私はDAO派です。
DAOの場合、DatabaseオブジェクトのOpenRecordsetメソッドにより
レコードセットを取得します。
そして、「rs!フィールド名.Value」というコードで
(rsはレコードセットを格納した変数)レコードの値を取得できます。
「クエリの実行」において実行されるクエリがどんなクエリなのかわかりませんが、
テーブル作成クエリですかね。
クエリの種類が何であるにせよ、各回で実行されるクエリは、全く同じものではなく、
一部だけが微妙に異なるのでしょうから、
VBAでSQL文を生成して、そのSQL文を実行させることになります。
生成するSQL文は、テーブル作成クエリなら「SELECT...INTO...」文ですね。
SQL文の実行は、DatabaseオブジェクトのExecuteメソッドです。
ところで、テーブルをたくさん作るようですが、
何のためにたくさんテーブルを作成するんでしょうか。
エクセルでは、ワークシートを年度別とか月別とかで作ったりしますが、
データベースにおいては、年度別とか月別にテーブルを分けるのは、やってはいけないことです。
このような場合、データベースでは、
テーブルは1個だけにしておき、
テーブルに「年度」フィールドや「月」フィールドを設けるという方法をとります。
年度別のデータがほしければ、クエリにより年度で抽出してやれば、
簡単に年度別のデータが取得できます。
|
|