Access VBA質問箱 IV

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

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


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

【13020】複数の抽出条件 TAKA 16/5/28(土) 19:27 質問[未読]
【13032】Re:複数の抽出条件 亀マスター 16/6/6(月) 23:23 発言[未読]
【13043】Re:複数の抽出条件 TAKA 16/6/19(日) 23:06 回答[未読]
【13044】Re:複数の抽出条件 亀マスター 16/6/20(月) 0:42 発言[未読]
【13047】Re:複数の抽出条件 TAKA 16/6/21(火) 1:06 回答[未読]

【13020】複数の抽出条件
質問  TAKA  - 16/5/28(土) 19:27 -

引用なし
パスワード
   accessは初心者でわからないことばかりなんですが、access2007を使ってます。
仕事でラベル作成用に使用しているデータなのですが、フォーム上のテキスト入力でコードを入力してデータを呼び出します。
構成としてはI_品目番号、I_色番号、I_条長番号と順に入力しています。
各テーブルはT_品目情報、T_カラー、T_条長となっており、クエリのQ_ラベルにて抽出条件をそれぞれ次のようにしています。
Left(([Forms]![F_ラベル]![入力コード]),8)  Mid(([Forms]![F_ラベル]![入力コード]),9,4)  Right(([Forms]![F_ラベル]![入力コード]),2)

今回会社のシステムの変更により製品の品目番号のみが全く違う番号に変わってしまうため、このままでは使えなくなるので変更が必要になりました。
そこでT_品目情報に新たにAX番号というフィールドを追加し、AX番号、I_色番号、I_条長番号と入力して呼び出せるようにしたいと思ってます。
しばらくはどちらでも呼び出せるようにしたいため、同じフォームに新しいコードも入力できるように新たに追加して作ってみたのですが抽出条件が悪いのか、そのフォームを開くと応答不能になりかなり時間がかかってしまします。
復帰して新しいコードを入力してみると一応呼び出しはできたのですがこれでは使えません。
抽出条件条件の次の列(2列目)に新しいコードの条件をすべて入力しました。
上の[入力コード]の部分を[AX]というテキストを指定しています。
この方法ではだめなのでしょうか?

情報不足かもしれませんがアドバイス等ありましたらよろしくお願いします。

【13032】Re:複数の抽出条件
発言  亀マスター  - 16/6/6(月) 23:23 -

引用なし
パスワード
   コメントが付かないようですね。
なんとなくやろうとしていることはわかるのですが、テーブル、クエリ、フォームの構成をもう少し詳しく書いてもらわないと難しいのかもしれません。

データの呼び出しですが、抽出条件を入力する欄を設けた単票フォームのようなもので、現状は[入力コード]と[AX]というテキストボックスがヘッダーかフッターにでも配置されているという感じでしょうか。フォームを開いて固まるということは、元になっているクエリの抽出条件の記述に問題があるということなのでしょう。

ところで、クエリの抽出条件でLEFTやMIDを使っていますが、これだとレコードの数だけ関数を呼び出すことになるので、レコード数が増えると重くならないのかと思います。T_品目情報、T_カラー、T_条長のID(?)を指定していると思うのですが、入力フォームに別々に指定して、関数を使わず直接指定した方がいい気がします。どうしても入力を1箇所しかしたくないなら、フォーム上にテキストボックスを3つ配置して、そこにLEFTやMIDの結果を入れるようにして、これを参照させるとか。

【13043】Re:複数の抽出条件
回答  TAKA  - 16/6/19(日) 23:06 -

引用なし
パスワード
   回答ありがとうございます。返事遅くなりすみません。
ヘッダーにある各テキストボックスには品名、色、条長という3つがセットになったコードを入力しないといけないため、こういった抽出条件の設定になっています。
一つのクエリではダメだということで[入力コード]と[AX]テキストボックス用にクエリを二つに分けてそれぞれの抽出条件の設定をすることにしました。
動作速度的には問題なくできたのですが、二つのクエリを同じフォームに表示するように結びつける方法が分からず一つしか表示させることが出来ませんでした。結局はそれぞれのテキストボックスのマクロのコードで
Me.RecordSource ="クエリ名"で動作させることで対応しています。
これで問題なければいいのですが。

【13044】Re:複数の抽出条件
発言  亀マスター  - 16/6/20(月) 0:42 -

引用なし
パスワード
   >動作速度的には問題なくできたのですが、二つのクエリを同じフォームに表示するように結びつける方法が分からず一つしか表示させることが出来ませんでした。結局はそれぞれのテキストボックスのマクロのコードで
>Me.RecordSource ="クエリ名"で動作させることで対応しています。
>これで問題なければいいのですが。

レコードソースに複数のクエリを指定することはできないので、VBAで動的に変更するのは正しいやり方ですよ。

ところで、以前の質問の後、上記のような修正をして問題なくなったということでしょうか。それとも、まだ応答不能が発生する状態なのでしょうか。

【13047】Re:複数の抽出条件
回答  TAKA  - 16/6/21(火) 1:06 -

引用なし
パスワード
   >ところで、以前の質問の後、上記のような修正をして問題なくなったということでしょうか。それとも、まだ応答不能が発生する状態なのでしょうか。

一つのフォームに二つのクエリを結びつけることは出来ないんですね。

二つのクエリに分けてからは問題なく、スムーズに呼び出し可能となりました。
これで使っていこうと思います。ありがとうございました。

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