- 締切済み
クエリのループ処理がしたいです
生薬のデータベースを作っています。生薬の薬材料を主と部分に分けて管理しています。イチョウ(主)の葉(部分)や根(部分)、楓(主)の葉(部分)といった具合です。処方箋ではこのような色んな組み合わせが登場してきますので、それらの割合を統計しようと思っています。テーブルのリレーションは、処方箋ID、成分IDをさらに構成部分ID(主と部分)とリンクしたもの、そして薬材料名IDのあるテーブルです。クエリーで、成分IDのうち、指定した主が登場するものだけを出し、そのIDを使って、別のクエリで今度は指定した主以外、つまり、その主に使われている部分のみが出てるようにします。 それをさらにまた別のクエリでグループ・バイにして登場回数を見ています。 この方法では3つもクエリーを使うし、主の条件も毎回手入力でしないといけないので、生薬名IDの主の部分のID番号だけを、ループ処理で自動にこの処理をして、エクセルに出力したいです。 大まかな説明で分かりにくいですが、この作業のベース(もしくは参考)になるようなVBAを教えてもらいたいです。 ちなみにVBAは初めて2週間ほどの超初心者です。 よろしくご教授お願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
質問の要領に関する私見。 (1)専門領域的用語はなるべく、控える 異業界、未経験分野の人は質問を読んでいて、用語に気をとられて コンピュター的な骨子に構成しにくい。 恐れをなす人もいるかもしれない。 (2)テーブルやクエリが4つ以上も出てきて、どれをさしているか頭に入 れにくい。 今後もしご質問があれば、コンピュター的なモデル実例にでも置き換える工夫をお願いしたい。コンピュターの勉強はこれを伴うべきものです。 ------- 質問内容ですが、アクセスの人間の(手で)の操作が、 沢山のケースを処理しなければならず、 面倒で時間がかかる、 間違いやすい場合、 それを解決するのは、VBAによる自動化しかないと思う。 クエリはつまるところSQL文の実行です。 SQL文は文字列であって、その文字列をプログラムの中で、システム関連の SE・プログラマが文字列を作っています。SQLサーバーなどで開発していれば、検索やファイルの読み・書き込みはそういうケースばかりのようです。 アクセスでは「パラメータクエリ」で大きな話題ですが、SQL文が前面に出る・主体のシステムでは、”SELECT””FROM" ”WHERE"というような語句以外は変数(ただしSTRING型)で定義され、そのつど中身がプログラム実行時にセットされ、それらが&で結合し表現されているのが頻出します。実行のつど都合のよいSQL文が作成され、実行されます。 場合によってはINPUTBOXで必要なフィールド名を人間が答えて、織り込む 型も複雑さを避けるために必要かもしれない。 アクセスでも、 (1)SQL文を正面から作って実行するタイプの勉強と、それを実務で少しずつ増やして、手操作型から離れていく。 普通の操作によって処理するとき、アクセスが作るSQL文が非常に勉強に なると思います。エクセルのマクロの記録に似て役立つでしょう。 (2)VBAの制御構造になれる。 のがよいと思います。 しかし理系の方かも知れませんが、しばらくこの件に読書や勉強を集中し、6ヶ月や1年は覚悟しておいたほうがよいかもしれない。 なんでも周りに聞ける人がないと難しいものです。