Access VBA質問箱 IV

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

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


278 / 2272 ツリー ←次へ | 前へ→

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

【12291】ACCESSでクエリの抽出条件に変数を代入し...
質問  ゆう  - 13/2/27(水) 18:13 -

引用なし
パスワード
   はじめまして
Access勉強中の超初心者です。

ACCESS VBAを使用して、
Aテーブルの1列目に入っている値を1行ごとに取得し変数に入れて、その変数をクエリの条件に入れて
実行→テーブルを作成したいのですが、どのようにすればよいでしょうか?

1行目の値取得→変数に代入→クエリを実行→テーブル作成(テーブル名は1行目の値)
2行目に移動...............
最終行まできたら処理を終える

といった感じです。

フォームのコントロールを使用してみたり
いろいろ挑戦はしてみたものの、まったくうまくいかず投稿させていただきました

どうぞ宜しくお願いいたします。

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

278 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078190
(SS)C-BOARD v3.8 is Free