Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1005 / 9994 ←次へ | 前へ→

【12292】Re:ACCESSでクエリの抽出条件に変数を代入したいです
回答  かるびの  - 13/2/28(木) 2:01 -

引用なし
パスワード
    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個だけにしておき、
テーブルに「年度」フィールドや「月」フィールドを設けるという方法をとります。
年度別のデータがほしければ、クエリにより年度で抽出してやれば、
簡単に年度別のデータが取得できます。
1,324 hits

【12291】ACCESSでクエリの抽出条件に変数を代入したいです ゆう 13/2/27(水) 18:13 質問[未読]
【12292】Re:ACCESSでクエリの抽出条件に変数を代入... かるびの 13/2/28(木) 2:01 回答[未読]

1005 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078191
(SS)C-BOARD v3.8 is Free