【初心者向け】大項目から中項目への絞り込み入力方法とは?

このQ&Aのポイント
  • 初心者向けに、大項目から中項目への絞り込み入力方法をご紹介します。フォームの入力で、リストから大項目を選ぶと、自動で該当する中項目のリストが表示されます。簡単な操作で、効率的に情報を絞り込むことができます。
  • 具体的な手順は以下の通りです。まず、大項目のリストを表示するテーブルを準備します。次に、各大項目に対応する中項目のリストを表示するテーブルを作成します。フォームには、大項目を選択するフィールドと中項目を選択するフィールドを配置します。大項目が選択されれば、中項目のリストが自動で表示されるようになります。
  • 初心者の方でも扱いやすいシンプルな設計が特徴です。大項目から中項目への絞り込み入力を実現することで、必要な情報を的確に選択することができます。是非、お試しいただき、効率的なアクセス構築を実現しましょう!
回答を見る
  • ベストアンサー

アクセス:フォーム入力:【大項目→中項目への絞りこみ入力】方法を教えてください。

アクセス初心者です。よろしくお願いします。 【やりたいこと:次のような大項目→中項目への絞りこみ入力】 フォームの入力で、大項目をリストで選ぶと、次に小項目のリストが自動で出て入力できるようにしたい。 ◆まず、テーブルで「大項目コード」表があります。   1  A   2  B   3  … ◆別のテーブルで、 「Aの小項目」表  11  ○   12  ×   13  △     「Bの小項目」表  21  ●  23  ■  24  ▲ というようなものがあります。 そこで、フォームで「大項目」フィールドに「1」(=A)を入力すると「小項目」フィールドに自動でコンボボックスのようなもので「○、×、△」がリストが出てコード番号(11,12,13)が入力できる、同様に「大項目」に「2」(=B)と入力するとリスト「●、■、▲」で選んで入力したいのです。 私が初心者であることから、上記のようなアクセス構築の考え方そのものも邪道なものかどうか、不安があります。 要は、【大項目→中項目への絞りこみ入力】ができればいいのです。できますなら、できるだけシンプルな方法を教えてくだされば幸いです。 よろしくお願いいたします。

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

  • ベストアンサー
noname#60992
noname#60992
回答No.5

コンボボックスのプロパティは大体このままで大丈夫であると思います。 me.コンボ2.requeryについては 2番目のコンボボックスのプロパティのイベントのタブの変更時のところに何か今入っていたらそれを選んで消してください。 そのあとフォーカスを変更時に充てると、▼と・・・という四角が出てきますので、・・・のほうを選択して「コードビルダ」を選んでください。 そうすると Private Sub コンボ1_Change() End Sub と出てきますので、その間に Private Sub コンボ1_Change() me.コンボ2.requery End Sub と書いて画面を閉じていただければ大丈夫です。 最初のコンボボックスの名前= コンボ1 2番目のコンボボックスの名前= コンボ2 それで試してみてください。  説明が下手で申し訳ありません。

yastaro
質問者

お礼

お礼が遅くなりました。ありがとうございます。 できました、できました^^/ 完璧です! 何度もご指導くださいまして、心よりありがとうございます。

その他の回答 (4)

noname#60992
noname#60992
回答No.4

すみません、肝心なことを忘れていました。 フォームの最初のコンボボックスの変更時のイベントに me.コンボ2.requery と書いておいてください。 これは最初のコンボボックスの値が変更されたときに2番目のコンボボックスのリストを読み直すためにひつようでした。 申し訳ありませんでした。

yastaro
質問者

補足

ありがとうございます。もう一息のような気がしてきました^^。尚、引き続きご指導ください。 >プロパティのデータのタブで >(1)データの値集合ソースが作成したクエリになっていること。 ⇒「SELECT 中項目クエリ.中項目id, 中項目クエリ.中項目 FROM 中項目クエリ; 」私には表示内容がよく理解できません^^; >(2)列連結が中分類のIDが入っている列を指定していること。 ⇒「1」となっています。これも私には理解できません。「列連結=1」とは?左から一番目という意味ならOKです。 ★>フォームの最初のコンボボックスの変更時のイベントに me.コンボ2.requery・・・ ⇒実行時にエラーが出てしまいます^^;助けてください。 【エラーメッセージ内容】 「’me’マクロを見つけることができません。 マクロ(またはマクログループ)が存在しないか、新規マクロが保存されていません。”マクログループ名.マクロ”という構文でマクロ名を指定するときは、既存のマクログループ名を指定する必要があります。」 以上、よろしくお願いいたします。

noname#60992
noname#60992
回答No.3

今ちょっと作ってみましたが、私のアクセスではコントロールウイザードがちゃんと動きませんでした。 それはともかくとして、 2番目に作ったコンボボックスで以下のことを確認してください。 プロパティのデータのタブで (1)データの値集合ソースが作成したクエリになっていること。 (2)列連結が中分類のIDが入っている列を指定していること。 プロパティの書式のタブで (1)列数がクエリで選んだ列数あること (2)列幅が上記列数文確保されていること (これは最初のコンボボックスを見ると分かりますが、1cm,2.5cm,3cm のように設定します。) これをやってみてだめだったら、またご連絡ください。

noname#60992
noname#60992
回答No.2

テーブルとして マスタをいれる[大項目] マスタをいれる[中項目] データをいれる[データ] (仮に[データ]と名前を付けました。) みたいなものがありますでしょうか? このテーブル[データ]の項目の一つに中項目のIDを入れるフィールドを用意しておきます。 フォームを作る際は、レコードソースとしてこの[データ]テーブルを指定します。 フォーム上にまずコンボボックスを一つ配置し、大項目テーブルのレコードを表示させ、選択できるようにします。 選んだ値はあとで使用するにしておいても大丈夫ですし、[データ]テーブルに格納しても大丈夫です。 この段階で[中項目]テーブルのクエリをつくり、抽出条件にフォームの先ほどのコンボボックスの値を指定します。 フォームを実行させて、大項目を選択した後にこのクエリを実行させたときの動きを確認しておいてください。  コンボボックスにテーブル/クエリの値を表示させるためには、コントロールウィザードを使うのが楽ですのでその方法を説明します。 「テーブル/クエリの値を表示する」を選択する。 該当するクエリを選ぶ。 フィールドを選択する。 「次のフィールドに保存する」を選び、保存するフィールドを選ぶ。 これでできると思いますが、分かりにくい分で申し訳ありません。 理解できない部分はまた補足していただけたらできる限り説明いたします。 

yastaro
質問者

補足

お世話になります。何度も感謝申し上げます。 きっとお忙しい中のご回答を申し訳ありません。 以下、私の理解不足ならすみません。 ご指導にヒントをいただいて、「中項目」のテーブルをひとつのテーブルにまとめ、クエリにしました。 >この段階で[中項目]テーブルのクエリをつくり、 抽出条件にフォームの先ほどのコンボボックスの値を指定します。 ◆これは、「中項目クエリ」の大項目の抽出条件のところに【[Forms]![データ]![大項目id]】と入力するといいよってことなのでしょうか? ◆とりあえずやってみて、ここまではうまくできました。フォームの選んだ大項目の中の中項目がクエリで表示できます。 ◆そのあとの作業がうまくできません。フォーム「データ」の中で大項目を選んでも中項目のコンボボックスの設定がうまくできません。 ただただ私の不勉強と理解不足のためでしょうが、尚、ご指導いただけますでしょうか?よろしくお願い申し上げます。

noname#60992
noname#60992
回答No.1

中(小)項目のテーブルにどこの大項目に所属するのかというデータを入れておくと処理が簡単になります。  中項目のテーブルのクエリを作成し、フォーム上の大項目をいれた場所をクエリの抽出条件にいれれば、対象の中項目だけを選び出すクエリができます。 このクエリをフォーム上の中項目を選ぶコンボボックスのレコードソースとすればよいと思います。

yastaro
質問者

補足

私の質問の表現ミス 中項目と小項目を統一させず、混在させて失礼しました。 ご理解通り中(小)項目です。 ご指導内容、もう少し考えて理解を深めて御礼申し上げようと思っていたのですが、あと一歩です。もう少し突っ込んだご説明をいただけますでしょうか?クエリは大筋わかります。フォームへ持って生き方のイメージ?がわかりません。よろしくお願いいたします。

関連するQ&A

  • アクセス検索フォーム【大項目→中項目→小項目と絞り込みながら検索】する方法を教えてください。

    アクセス初心者です。 このサイトや手持ちのテキスト等でしばらく調べてがんばってみましたが、いろいろ試した不要なデータであふれかえってしまい拉致があかず、私が初心者であることからアクセス構築の考え方そのものにも不安があり、不勉強でお恥ずかしいのですがご質問させていただくことにしました。 お詳しい方ご教授願います。 やりたいことは、在庫管理のようなことで該当する在庫がいまどこにおいてあるのかを検索フォームを使って検索できるようにしたいのです。 在庫は大項目、中項目、小項目と分類しております。 検索フォームでコンボボックスなどを3つ配置し、大項目を一つ目のコンボボックスなどから選ぶと、次の二つ目のコンボボックスからは選んだ大項目から該当する中項目のリストが自動で選べ、中項目を選ぶと三つ目のコンボボックスからは選んだ中項目に該当する小項目のリストが自動で選べるような形にしたいと思っています。 大項目表テーブル 1 大項目1 2 大項目2 3 大項目3 というものを作って、 大項目1の中項目表テーブル 11 中項目A 12 中項目B 13 中項目C   このような中項目表テーブルは大項目1~3で3つ。 さらに、 中項目Aの小項目表テーブル 21 小項目あ 22 小項目い 23 小項目う   このような小項目表テーブルは中項目A~Cで9つ。 一応上記のような表は用意しました。 何年か前にマイクロソフトのMOS試験のアクセス2000には合格しましたが、それ以来アクセスをあまり触っておらず、いよいよ必要に背回れて困ってしまいました。不勉強で申し訳ありませんがよろしくお願いします。

  • アクセスのフォーム、コードを入れると名前が出るのはなぜ?

    アクセス初心者ですが、フォームを作成時、疑問に思って考えるほど混乱してしまいました。 例えば、 Aテーブル:日付、店コード、売上のフィールドを作る。(主キーなし) Bテーブル:店コード、店名(主キーは店コード) リレーションは店コード(B)→店コード(A)に結び、すべての整合性にチェック それぞれのテーブルに、数件のデータを入力 この状態で入力フォームをウィザードで作ったのです。 Aテーブルからすべてのフィールド、Bテーブルから生徒氏名を選び、ウィザード任せにフォームを作りました。 このとき、できたフォームで出席番号を入れると何もしないのに、自動的に生徒氏名が入ってしまいます。 人に聞くと当たり前でしょ、みたいに言われたのですが、なんとなくわかるようでわかりません。どうして自動的に入るのでしょうか?ふりがなの自動入力みたいな設定をしたというのならわかるのですが、何もしてないのに。 すみません、自分でも、リレーションとか整合性とかについて、あるいはまだフォームとテーブルの関係について、よくわかってないせいなのだろうとは思うのですが、そこの所も合わせ、どなたか、分かりやすく教えていただけますか?宜しくお願いします。

  • フォームの作り方 アクセス2000

    アクセス2000を使い始めた初心者です。 顧客群に関するテーブルAがすでにあります。 このテーブルは事情があって、フィールドを追加することはできません。 もうひとつのテーブルBを作って、こちらに情報を追加するためのフィールドをいくつか作ります。 やりたいことは、 入力用のフォームに、テーブルAの情報内容を表示させて、テーブルBの入力をしたいのです。 クエリを作ってリレーションを設定するのだろうと思うのですが、具体的に進め方がわかりません。 よろしくお願いします。

  • Accessでフォームへのフィールドの追加方法について

    よろしくお願いします Access2002にて名簿を作成しております。 テーブル「A」とテーブル「B」という2つのテーブルを作成し ウィザートを利用してAとBの混ざったフォーム「名簿」を作成しました。 その後テーブル「A」のフィールド「年齢」を増やしたのですが フォーム「名簿」へ「年齢」フィールドの追加の仕方がわかりません フォーム「名簿」のフィールドリストに「年齢」はありませんので、 まず「フィールドリスト」へ「年齢」フィールドを追加する必要が あると思うのですが、その方法を教えて下さい。 よろしくお願いします

  • フォームで主キー(No)を入力すると他の項目も自動的に表示

    ACCESS2000・フォームで主キー(No)を入力すると他の項目も自動的に表示させたい。 テーブルの構成は、以下のとおりです。 データベース名:報告書 テーブルA          | フォームA  フィールド1(数値)    |  フィールド1(数値)  フィールド2(テキスト)  |  フィールド2(テキスト)  フィールド3(テキスト)  |  フィールド3(テキスト) テーブルB          | フォームB  フィールド1(数値)    |  フィールド1(数値)  フィールド2(テキスト) |  フィールド2(テキスト)   フィールド3b(テキスト) |  フィールド3b(テキスト) 主キーはフィールド1です。 リレーションを組んでおり、テーブルAからテーブルEまでのフィールドは同じ物ならば(フィールド1=フィールド1のように)リレーションを設定しています。 これをフォーム上ででフィールド1(主キー)を入力すれば、他のフィールド2、フィールド3~も自動表示され、他のフォームもフィールド1(主キー)を選択すれば表示されるようにしたい。 ユニオンクエリなどを使うべきなのでしょうか? どなたか回答、宜しくお願いします。

  • アクセス フォームの設定

    テーブル【T-1】 フィールドA,主キー,数値型 フィールドB,テキスト型 フィールドC,テキスト型 フィールドD,テキスト型 フィールドE,テキスト型 フォーム【F-1】 テーブル【T-1】に入力用のフォーム,単票型 があります。 F-1でそれぞれのフィールドに対して入力スペースがあり(もちろんですが) A,B,C,D,Eと順番に入力していきます。 ここでエンターキーを押すと、次のレコードへ移るわけですが、 カーソルがEの位置にあるため、わざわざマウスでAの位置へ移動させないといけません。 同様に、入力項目がなく、A,B,Cと入力して次のレコードへ行くと、Cの位置にカーソルがあります。 これを、Aをホームポジションとして、次のレコードへ移ったときに 自動的にカーソルをAの位置にもってくるようにしたいのですが、 一体どうすればよろしいでしょうか?

  • Accessのフォームにテーブルの項目を追加するには

    フォーム作成途中にフィールドリストにないテーブルの項目をフィールドリストに追加するにはどうすればいいのでしょうか? 新たにフィールドリストに追加せずに、テーブル項目は追加するものなのでしょうか?

  • アクセスで、対話式?の入力フォーム

    こんにちは この度、エクセルで作成していたとある管理表を アクセスでつくることになりました アクセス初心者です。。 上司のリクエストが 入力フォームで項目が一覧に並んでいるのではなく、 質問項目が 1つあるいは数個画面に表示され クリック、または入力をして 決定ボタンを押すと 次の質問項目(新規画面)に進んでいくという形をとりたいそうです 例えば 画面に  「色は何色ですか?」 [赤][青] [決定] とあり、 赤を押して選択し、 決定ボタンを押すと 次の質問 「種類はなんですか」 [食べ物][乗り物] [決定] と画面が切り替わり、 それぞれ 管理テーブルの 色フィールドに「赤」と入力 種類フィールドに「食べ物」等と入力されるような感じです。 (意味が伝わるでしょうか。。?) どこか参考サイトでもあれば 教えていただけますか?

  • アクセスのフォームで簡単入力の仕方

    いつもお世話になっております。当方アクセス初心者です。フォームにテキストボックスを2個配置しました。1個にコードを打ち込むと別のテキストボックスにそれに該当する項目を表示させたいのですがどうすればいいのでしょうか?入力したデータを保存するテーブルが1つ、コードと項目を保持するテーブルが1つ、それぞれ用意しています。よろしくご教示願います。

  • ACCESS 入力フォーム 項目の並びについて

    テーブル1 コード_店名_項目_構成比 1_a_野球_10 1_a_テニス_20 1_a_ゴルフ_30 ・ ・ ・ テーブル2 コード_企業名 1_z このようなテーブルからフォームを作成中なのですが テーブル1、サブフォーム側の入力表示を原稿通りにしたのですが、 以下のように出来ないでしょうか? コード_店名_野球_テニス_ゴルフ

専門家に質問してみよう