アクセス初心者です。よろしくお願いします。
【やりたいこと:次のような大項目→中項目への絞りこみ入力】
フォームの入力で、大項目をリストで選ぶと、次に小項目のリストが自動で出て入力できるようにしたい。
◆まず、テーブルで「大項目コード」表があります。
1 A
2 B
3 …
◆別のテーブルで、
「Aの小項目」表
11 ○
12 ×
13 △
「Bの小項目」表
21 ●
23 ■
24 ▲
というようなものがあります。
そこで、フォームで「大項目」フィールドに「1」(=A)を入力すると「小項目」フィールドに自動でコンボボックスのようなもので「○、×、△」がリストが出てコード番号(11,12,13)が入力できる、同様に「大項目」に「2」(=B)と入力するとリスト「●、■、▲」で選んで入力したいのです。
私が初心者であることから、上記のようなアクセス構築の考え方そのものも邪道なものかどうか、不安があります。
要は、【大項目→中項目への絞りこみ入力】ができればいいのです。できますなら、できるだけシンプルな方法を教えてくだされば幸いです。
よろしくお願いいたします。
No.5ベストアンサー
- 回答日時:
コンボボックスのプロパティは大体このままで大丈夫であると思います。
me.コンボ2.requeryについては
2番目のコンボボックスのプロパティのイベントのタブの変更時のところに何か今入っていたらそれを選んで消してください。 そのあとフォーカスを変更時に充てると、▼と・・・という四角が出てきますので、・・・のほうを選択して「コードビルダ」を選んでください。
そうすると
Private Sub コンボ1_Change()
End Sub
と出てきますので、その間に
Private Sub コンボ1_Change()
me.コンボ2.requery
End Sub
と書いて画面を閉じていただければ大丈夫です。
最初のコンボボックスの名前= コンボ1
2番目のコンボボックスの名前= コンボ2
それで試してみてください。
説明が下手で申し訳ありません。
お礼が遅くなりました。ありがとうございます。
できました、できました^^/ 完璧です!
何度もご指導くださいまして、心よりありがとうございます。
No.4
- 回答日時:
すみません、肝心なことを忘れていました。
フォームの最初のコンボボックスの変更時のイベントに
me.コンボ2.requery
と書いておいてください。 これは最初のコンボボックスの値が変更されたときに2番目のコンボボックスのリストを読み直すためにひつようでした。
申し訳ありませんでした。
この回答への補足
ありがとうございます。もう一息のような気がしてきました^^。尚、引き続きご指導ください。
>プロパティのデータのタブで
>(1)データの値集合ソースが作成したクエリになっていること。
⇒「SELECT 中項目クエリ.中項目id, 中項目クエリ.中項目 FROM 中項目クエリ; 」私には表示内容がよく理解できません^^;
>(2)列連結が中分類のIDが入っている列を指定していること。
⇒「1」となっています。これも私には理解できません。「列連結=1」とは?左から一番目という意味ならOKです。
★>フォームの最初のコンボボックスの変更時のイベントに me.コンボ2.requery・・・
⇒実行時にエラーが出てしまいます^^;助けてください。
【エラーメッセージ内容】
「’me’マクロを見つけることができません。
マクロ(またはマクログループ)が存在しないか、新規マクロが保存されていません。”マクログループ名.マクロ”という構文でマクロ名を指定するときは、既存のマクログループ名を指定する必要があります。」
以上、よろしくお願いいたします。
No.3
- 回答日時:
今ちょっと作ってみましたが、私のアクセスではコントロールウイザードがちゃんと動きませんでした。
それはともかくとして、2番目に作ったコンボボックスで以下のことを確認してください。
プロパティのデータのタブで
(1)データの値集合ソースが作成したクエリになっていること。
(2)列連結が中分類のIDが入っている列を指定していること。
プロパティの書式のタブで
(1)列数がクエリで選んだ列数あること
(2)列幅が上記列数文確保されていること
(これは最初のコンボボックスを見ると分かりますが、1cm,2.5cm,3cm のように設定します。)
これをやってみてだめだったら、またご連絡ください。
No.2
- 回答日時:
テーブルとして
マスタをいれる[大項目]
マスタをいれる[中項目]
データをいれる[データ] (仮に[データ]と名前を付けました。)
みたいなものがありますでしょうか?
このテーブル[データ]の項目の一つに中項目のIDを入れるフィールドを用意しておきます。
フォームを作る際は、レコードソースとしてこの[データ]テーブルを指定します。
フォーム上にまずコンボボックスを一つ配置し、大項目テーブルのレコードを表示させ、選択できるようにします。 選んだ値はあとで使用するにしておいても大丈夫ですし、[データ]テーブルに格納しても大丈夫です。
この段階で[中項目]テーブルのクエリをつくり、抽出条件にフォームの先ほどのコンボボックスの値を指定します。 フォームを実行させて、大項目を選択した後にこのクエリを実行させたときの動きを確認しておいてください。
コンボボックスにテーブル/クエリの値を表示させるためには、コントロールウィザードを使うのが楽ですのでその方法を説明します。
「テーブル/クエリの値を表示する」を選択する。
該当するクエリを選ぶ。
フィールドを選択する。
「次のフィールドに保存する」を選び、保存するフィールドを選ぶ。
これでできると思いますが、分かりにくい分で申し訳ありません。 理解できない部分はまた補足していただけたらできる限り説明いたします。
この回答への補足
お世話になります。何度も感謝申し上げます。
きっとお忙しい中のご回答を申し訳ありません。
以下、私の理解不足ならすみません。
ご指導にヒントをいただいて、「中項目」のテーブルをひとつのテーブルにまとめ、クエリにしました。
>この段階で[中項目]テーブルのクエリをつくり、
抽出条件にフォームの先ほどのコンボボックスの値を指定します。
◆これは、「中項目クエリ」の大項目の抽出条件のところに【[Forms]![データ]![大項目id]】と入力するといいよってことなのでしょうか?
◆とりあえずやってみて、ここまではうまくできました。フォームの選んだ大項目の中の中項目がクエリで表示できます。
◆そのあとの作業がうまくできません。フォーム「データ」の中で大項目を選んでも中項目のコンボボックスの設定がうまくできません。
ただただ私の不勉強と理解不足のためでしょうが、尚、ご指導いただけますでしょうか?よろしくお願い申し上げます。
No.1
- 回答日時:
中(小)項目のテーブルにどこの大項目に所属するのかというデータを入れておくと処理が簡単になります。
中項目のテーブルのクエリを作成し、フォーム上の大項目をいれた場所をクエリの抽出条件にいれれば、対象の中項目だけを選び出すクエリができます。
このクエリをフォーム上の中項目を選ぶコンボボックスのレコードソースとすればよいと思います。
この回答への補足
私の質問の表現ミス
中項目と小項目を統一させず、混在させて失礼しました。
ご理解通り中(小)項目です。
ご指導内容、もう少し考えて理解を深めて御礼申し上げようと思っていたのですが、あと一歩です。もう少し突っ込んだご説明をいただけますでしょうか?クエリは大筋わかります。フォームへ持って生き方のイメージ?がわかりません。よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ソフトウェア) Googleフォーム、効率的な入れ方 2 2022/10/03 22:44
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) ExcelVBAでリストの項目に必要数と同じ手配数を分配していくマクロを作りたいです。 1 2022/07/29 18:36
- その他(クラウドサービス・オンラインストレージ) おすすめのパスワードマネージャは? 1 2023/02/28 20:09
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのコンボボックスでリス...
-
ACCESSクエリ抽出条件について
-
.flex-direction プロパティは...
-
帳票フォームでのあるコンボボ...
-
Accessのフォーム(コンボボッ...
-
コンボボックスのボタンの大き...
-
accessのルックアップを階層表...
-
アクセスでのコンボボックス複...
-
更新クエリで変数は使えない?
-
accessでオートコンプリート機...
-
Accessのコンボボックスの値が...
-
ACCESS リストボックスの字の色...
-
リストボックスの時はリンク先...
-
ACCESSでコンボボックスにSQLで...
-
ACCESSのリストボックス抽出に...
-
Access サブフォームでの選択行...
-
エクセルで、抽出したデータだ...
-
ACCESSでVBAから選択クエリの抽...
-
AccessのWHERE句において、変数...
-
未審査請求包袋抽出表作成とは...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのコンボボックスでリス...
-
Accessのコンボボックスの値が...
-
ACCESSでコンボボックスにSQLで...
-
Oracleで文字列型の時間を引き...
-
ACCESS リストボックスの字の色...
-
ACCESSクエリ抽出条件について
-
帳票フォームでのあるコンボボ...
-
accessでオートコンプリート機...
-
accessでのリストボックス選択...
-
Accessのコンボボックスの”すべ...
-
パススルークエリのデータ件数...
-
リストボックスの時はリンク先...
-
Accessのフォーム(コンボボッ...
-
コンボボックスのボタンの大き...
-
.flex-direction プロパティは...
-
更新クエリで変数は使えない?
-
Accessフォーム 大分類→小分類...
-
アクセス:フォーム入力:【大...
-
Accessのコンボボックスのデフ...
-
自動入力
おすすめ情報