こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

フォームを開くボタンを1個でコントロールしたい

「やりたいこと、ご指導頂きたいこと」
1,現在の運用方法(下記)ではコマンドボタンが4個と多く、使いづらいのでコマンドボタンを1個で完結できる方法が知りたいです。
2,個人的なお願いですが「マクロ」で対応できる方法があれば、そちらでお願いしたいと思います。理由は、VBAのスキルが低レベルで話にならない為。但し、不可の場合は、可能な方法でご指導願います。

「現在の運用方法の紹介」
企業の連絡情報帳をアクセスで運用しています。尚、フィールドの数は10ありますが、質問内容には検索項目の4個を紹介させて貰っています。

運用の概要ですが、検索専用フォームにコンボボックスを4個つくり、コンボボックスで企業リストテーブルを参照させて希望のフィールド(会社名、製品名、商品名、得意技)を選択させています。選択後はコンボボックスの横に配したコマンドボタン4個を使って個別フォームを開いている。運用の背景ですが、絞込検索では都合が悪い事情がある為です。

「各オブジェクトの紹介」

1,テーブル名:企業リスト

2,フォーム名:検索専用フォーム(レコードソースなし)

3,コンボボックスの名前:会社名、製品名、商品名、得意技
・企業リストの各該当フィールドを値集合ソースにて参照

4,企業リストクエリ
・会社名(検索専用フォームのコンボボックス「会社名」を抽出条件に)
・製品名(検索専用フォームのコンボボックス「製品名」を抽出条件に)
・商品名(検索専用フォームのコンボボックス「商品名」を抽出条件に)
・得意技(検索専用フォームのコンボボックス「得意技」を抽出条件に)

5,フォーム名
・会社名検索結果(レコードソースに会社名クエリ参照)
・製品名検索結果(レコードソースに製品名クエリ参照)
・商品名検索結果(レコードソースに商品名クエリ参照)
・得意技検索結果(レコードソースに得意技クエリ参照)

以上ですが、他に細かな設定(ファイル操作・選択文字の選択後の消去・等々)もありますが割愛して居ります。どうか宜しくお願いします。

投稿日時 - 2017-01-03 09:15:24

QNo.9276277

困ってます

質問者が選んだベストアンサー

企業リストクエリに検索条件を 添付のように追記します
(1)には[forms]![検索専用フォーム]![会社名]
(2)には[forms]![検索専用フォーム]![製品名]
(3)には[forms]![検索専用フォーム]![商品名]
(4)には[forms]![検索専用フォーム]![得意技]
※抽出条件行は複数あり、同一行に記述するとAND条件
 異なる行に記述するとOR条件です・
1,テーブル名:企業リスト
このテーブルだけですか製品名、商品名、得意技のテーブルも存在すると思うのですが
でないと企業は1製品、1商品、1得意技しか登録できないことになります
企業リストの項目名(フィールド名)を列記てください
まさかと思いますが、会社名、製品名、商品名、得意技

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2017-01-04 16:56:56

お礼

ご親切に対応頂きまして、本当に有難うございました。
図解まで案内いただきましたので、完成に向けて早速実施させて頂きます。
本当に有難うございました。

投稿日時 - 2017-01-05 14:58:48

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

ID連結はここでは不要ですので、フォームのプロパティで親フィールドと子フィールドのIDの記述を省いてください。フォームの中にサブフォームの形でフォームを埋めたいだけで、親フォームと関連付する普通の利用方法を使いません。
マクロの値の代入の書き方は、ご質問の通り、下記のようになります。これをそれぞれのフォームに合うように4つ作ります。一つのマクロにサブマクロの形で4つ作ればOKです。
代入先(アイテム)に「Forms![検索専用フォーム]![サブフォーム名].Form.RecordSource」を書いて、代入する値(式)に"対応する検索結果のフォーム名"を選びます。ここでの式は、文節ですので、ダブルクォーテーションで括ります。
できた4つのサブマクロまたはマクロをコンボボックスの更新後処理に登録します。

投稿日時 - 2017-01-03 19:03:49

ANo.1

検索専用フォームの下部を大きくとって、そこにサブフォームを作り、4つのコンボボックスの更新後処理で、サブフォームのソースに対応するフォーム名を代入する方法とすると、コマンドボタンは不要になります。
マクロを作るときにすべてのマクロの表示を選択して、値の代入を選択します。
代入先に「Forms![検索専用フォーム]![サブフォーム名].Form.RecordSource」を書いて、代入する値に"対応する検索結果のフォーム名"を選びます。同様のものを各コンボボックス用に4つ作って、それぞれのコンボボックスの更新後処理に登録しておきます。
こうすると、コンボボックスを選択する都度にサブフォームの内容がチェンジします。

投稿日時 - 2017-01-03 09:43:50

補足

「早速アドバイス頂きまして有難うございます。理解不足で申し訳ないですが、以下の内容作業で止まっています。」

1,フォーム面積を拡大してヴィザードで既存の検索結果用フォームを選択、ID連結を選択してサブフォームを作成しました。

「更にご指導のお願いです」
1,コンボボックスの更新後処理でマクロの作成を選択し、アクションで「値の代入」を選択する。値の代入では(アイテム)と(式)の記入が必用ですが、ご指導いただきました「Forms![フォーム名]![サブフォーム名].Form.RecordSource」の記述は(アイテム)でしょうか、それとも(式)への記述でしょうか。尚、残ったもう一方(アイティム)又は(式)への記述方法も教えて下さい。

2,上記1,以外に行う作業はありますでしょうか。

低レベルな質問で申し訳ございません。宜しくお願いします。

投稿日時 - 2017-01-03 14:34:18

あなたにオススメの質問