- ベストアンサー
ACCESS 型番で検索後、指定のフォームを開くには?
こんばんは。 アクセスを使い始めて間もない初心者です。 今度、会社でデータの管理を任されることになりました。 会社では商品の種別として、電気温水器・クッキングヒーター・床暖房機・融雪機の4種類扱っています。 テーブル(電気温水器マスター・クッキングヒーターマスター・床暖房機マスター・融雪機マスター)、入力フォーム(電気温水器フォーム・クッキングヒーターフォーム・床暖房機フォーム・融雪機フォーム)をそれぞれ作成して、新商品が出るたびに種類別にデータを入力しています。 データを入力する時は、その都度種別に合った入力フォームを開けば済むのですが、時々他の社員の方に「この型番の商品の詳細データが見たい。」と言われます。 過去に入力した型番など覚えているはずもなく、その都度テーブルを1個づつ開いて確認するため非常に手間がかかってしまいます。 できれば検索用のフォームを作成して、型番を入力してボタンをクリックすると、その型番を4つのテーブルから探し、その型番があるテーブルの入力フォームを開くようにしたいです。(もちろん開いた時にその型番のデータを表示するように。) テーブル、フォームが1個づつならなんとかできそうなんですが、複数のテーブル、フォームの場合のやり方が分かりません。 長文になってしまい、申し訳ありません。 アドバイスのほう、よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
型番を入れてボタンを押したら、 (1)その型番がテーブルaにあるか検索 テーブルbにあるか検索 テーブルcにあるか検索 … (2)あったら、サブフォームでそのテーブルを開く で出来ます。 検索はDlockup関数を使えばよいかと思います。 サブフォームを複数作って切り替えるか、 レコードソースを切り替えるかどちらかになると思います。 テーブルが製品で分かれているということはテーブルのフォーマットが違うのでしょうか? 違うのであれば、サブフォームをテーブル数分作るのが良いかと思います。
その他の回答 (3)
- temtecomai2
- ベストアンサー率61% (656/1071)
#3 です。 しいて挙げるとすれば、 テーブル名とフォーム名が記録されたテーブルを用意する。=> tblMaster tblMaster にあるレコード(現在は 4つだと思います)を順次ループしながら、製品種別のテーブル名を取り出して検索式に使う。 それでレコードがヒットしたら、tblMaster の同じレコードからフォーム名を取得する。
- temtecomai2
- ベストアンサー率61% (656/1071)
> このままでもいいんですが、オプションボタンやコマンドボタンを使わずに形式の入力だけで済む方法はありますでしょうか? 何か言ってる事がコロコロと変わって、結局最初の質問文のようになってませんかね・・・ であるなら #1 さんが回答しているように、プログラムの中で土臭く回すしかないんじゃなでしょうか。
- temtecomai2
- ベストアンサー率61% (656/1071)
オプションボタンやコンボボックスの話は最初の質問文に出てきませんでしたね。 検索フォームにてこれらの操作が必須であれば話は簡単になるんではないでしょうか。 製品種別とフォーム名の対応を記録するテーブルを作成し、検索フォームのコンボボックスに割り当てる。 ユーザーが製品種別を選択すると、それに対応するフォームを開く。 これだけで行けませんか? フォームは製品種別ごとに用意されているのでしょうし、フォームのレコードソース定義は検索フォームの各コントロールから検索を行うクエリにしておけば良いかと。
お礼
なんとか希望通りに作成することができました。 ありがとうございます。
補足
ご回答ありがとうございます。 テキストボックスで型式、オプションボタンで入力フォームを選択して検索し、指定のフォームとデータを呼び出すことはできました。 このままでもいいんですが、オプションボタンやコマンドボタンを使わずに形式の入力だけで済む方法はありますでしょうか?
お礼
なんとか希望通りに作成することができました。 ありがとうございます。
補足
早速のご回答ありがとうございます。 できれば別々に検索するのではなく、型番を1回検索するだけで行えれば...と思っています。 オプションボタンやコンボボックスでもできるんでしょうか? >テーブルが製品で分かれていると >いうことはテーブルのフォーマットが >違うのでしょうか? 4つのテーブルのフィールドはすべて違います。 同じならテーブル1個、フォーム1個ですむのですが。 理想は、 (1)検索用フォームを開く (2)型番を入力 (3)オプションボタン、またはコンボボックスで検索したい種別を選択 (4)検索ボタンで検索(型番がなければ何もおこらない) (5)同じ型番があれば、その種別のフォームを開き、かつその型番のデータを表示する。 です。分かりづらければまた補足いたしますので、よろしくお願い致します。