アクセスのコンボボックス重複解消方法

このQ&Aのポイント
  • アクセスのコンボボックスの値集合タイプが「テーブル/クエリ」の場合、重複なしで値を表示する方法について教えてください。
  • 現在作成しているコンボボックスが6個あり、2個目以降からどのようにするかわかりません。コンボ1の値をコンボ2で反映し、さらにコンボ2の値の重複をなくし、コンボ3で反映させる方法を教えてください。
  • 参考にしたサイト(http://www.accessclub.jp/beginer/cd/part_07.htm)の方法ではコンボボックスが2個までしかなかったため、現在作っている6個以上のコンボボックスでの重複解消方法についてご教授ください。
回答を見る
  • ベストアンサー

アクセスのコンボボックスの重複をなくすには?

初歩的な質問ですいませんが、教えてください。 アクセスの参考書や、初心者向けサイト等を見て、 コンボボックスで値集合タイプが「テーブル/クエリ」のとき値集合ソースの値を重複させないで表示する方法はわかったのですが、どの書籍もコンボボックスが2個までしかのっていないんです。 現在私が作らなければならないのはコンボボックスが6個在るもので2個目以降からどのようにしたらいいかわかりません。 コンボ1で抽出した値をコンボ2で反映させて、さらにコンボ2の値の重複をなくし、さらにコンボ3で反映させて・・・とやっていくにはどうしたらいいのでしょうか。 ちなみに http://www.accessclub.jp/beginer/cd/part_07.htm 上記サイトの方法を参考に作成しています。 よろしくお願いします。

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

  • ベストアンサー
  • vantage
  • ベストアンサー率60% (310/514)
回答No.1

言葉で説明するのは大変なんですけど、やってみますね。 参考にされているURLの中ほど、「コンボ2」のクエリビルダの画像に注目して下さい。 「コンボ2」でリストに表示したいのは<タイトル名>であり、その抽出条件は“アーティスト名が「コンボ1」の値と一致している”ということですよね。 コンボボックスを更に増やしたい場合は、増えたコンボボックスの値集合ソースの“抽出条件の種類”がどんどん増えていくと言うことです。具体的にはクエリビルダの表の部分の列が横にどんどん追加されていく感じになります。 例を挙げてみましょう。 住所と個人名が登録されたデータテーブルから、特定の個人を選び出すとして、 [都道府県][市区町村][町名][番地][ビル名][部屋番号][個人名] というフィールドがあるテーブルで、 「コンボ1」のリストはテーブルから[都道府県]を抽出しました。 ここで“東京都”と選択します。 「コンボ2」のリストはテーブルから[市区町村]を抽出します。 ただし、都道府県は“東京都”であることが条件です。 ここで“新宿区”と選択します。 「コンボ3」のリストはテーブルから[町名]を抽出します。 ただし、都道府県は“東京都”であり、市区町村は“新宿区”であることが条件です。 ここで“新宿1丁目”と選択します。 「コンボ4」のリストはテーブルから[番地]を抽出します。 ただし、都道府県は“東京都”であり、市区町村は“新宿区”、町名は“新宿1丁目”であることが条件です。 ここで“2番地”と選択します。 ・・・・このような調子でどんどん抽出条件が追加されていきます。「コンボ6」まで選ぶと[個人名]が導き出される理屈は分かって貰えますよね。 これを各コンボボックスの値集合ソースとして、クエリビルダで設定するようにしてみて下さい。 その後の処理のポイントは、 「コンボ1」が選択された直後に「コンボ2」を再クエリーする、 「コンボ2」が選択された直後に「コンボ3」を再クエリーする…… というように、順ぐりに再クエリーを行わなければいけません。 (抽出条件が選択の都度変動しているわけですから、変動後にクエリーを再度実行しないといけないわけです) 処理のポイントその2は、例えば 「コンボ1」が“東京都”で、 「コンボ2」が“新宿区”と入力した後に、 「コンボ1」の値を“大阪府”に変更したらどうなるでしょう? “大阪府新宿区”というのは存在しませんよね? こういう抽出条件では「コンボ3」にリストは出てきませんよね。 ですので、本来は「コンボ2」を選択した直後に「コンボ1」は変更できないように編集ロックをかける必要があります。(これも順繰りに行います) しかし、これはURLの例のようなマクロだけのやり方では実現出来ません。どうしてもVBAを使用する必要があります。 プログラムの運用では、使う人に『そういう変更はしないでね!』と教えるのが簡単ですが、本来はきちんと入力操作をプログラム制御した方がよいですね。 というわけで、長々と概念だけを説明しましたが、 こういった文字だけのやり取りでは具体的な方法についてお伝えするのには限界があります。 ぜひ参考書などで詳細な設定方法などを、引き続き勉強するようにして下さい。 こういった“やりたい処理は具体的にはっきりしているのに、その設定の方法が分からない”という方には「逆引き事典」のような書籍をお薦めします。 http://www.amazon.co.jp/exec/obidos/ASIN/4798003786/qid=1059054138/sr=1-1/ref=sr_1_2_1/249-8740779-5804304 では、頑張って下さい。

mamaki513
質問者

お礼

ありがとうございました。 逆引き辞典ですかーー!! 参考になりそうです!!

関連するQ&A

  • Access コンボボックスについて

    フォーム1の中にコンボボックス1、 検索結果用のサブフォームを作りました。 コンボボックス1は日付抽出用で、 プロパティは 値集合タイプ・・・テーブル/クエリ にしてあり、 2005-01  ・  ・  ・ 2005-12 となります。 「すべて」検索したいときには、どのように設定したら 良いのかを教えていただけないでしょうか? よろしくお願いします

  • コンボボックス全ての値を取得させるには

    アクセスでクエリの抽出条件にコンボボックスで取得した値を反映させ、テーブルを 作成しエクスポートさせるマクロを組んでいるのですが、 ひとつひとつ実行させるのが手間なので、コンボボックス全ての値を取得させ クエリの抽出条件にひとつひとつ反映させてテーブル作成・エクスポート というマクロを組みたいのですが可能でしょうか?

  • ACCESSでコンボボックスが作れません

    ACCESS2000のフォーム内に抽出クエリを元にしたコンボボックスを作成しようとしているのですが、「1つ以上の必要なパラメータの値が設定されていません」と表示され作成できません。元になる抽出クエリを開くと、コンボボックスに表示したいデータが表示されているのですが、上記エラーがでてコンボボックスが作成できない状態です。どなたか解消方法がおわかりの方教えてください。宜しくお願いします。

  • [Access2003]コンボボックスのプロパティの「値集合タイプ」について

    [Access2003]コンボボックスのプロパティの「値集合タイプ」について 今、参考書でAccess2003のフォームのコントロールの作成について勉強しています。『コンボボックスのプロパティ』の「すべて」の中の「値集合タイプ」の・・・・ 「テーブル/クエリ」、「値リスト」、「フィールドリスト」は、少しの説明だけで理解できなかったです。 Access初心者なので簡潔に「テーブル/クエリ」、「値リスト」、「フィールドリスト」を教えてくださったら助かります。

  • ACCESS2013 コンボボックスの警告について

    (1)コンボボックスに一度値を入力及び選択をして確定する。 (2)再度(1)のコンボボックスの内容を削除して空欄の状態に戻す。 (3)他のフィールド等にカーソル等を移すと、(2)のコンボボックスに対して警告メッセージが出でしまう。 'xxxxトランザクション.xxxxカラム'フィールドに値を入力してください。 上記(3)の警告メッセージが出ないようにしたいのですが どのように対応すればよろしいでしょうか? ※フォームはxxxxトランザクションがデータソース(ダイナセット)になっています。 ※コンボボックスはxxxxマスタテーブルが値集合(テーブル/クエリ)となっています。

  • 入力した値をコンボボックスにすぐに反映させる方法

    テーブルでコンボボックスから選んでデータを入力したい場合、コンボボックスの内容を他のテーブルやクエリあるいは値リストから抽出する方法はわかりますが、コンボボックスの内容に該当するものが無い場合、一覧から選ばずに、手入力することにしたいと思っています。そこで、手入力した後次のレコードに移動した時にコンボボックスの内容に手入力した内容がすぐに反映するようにしたいのですが、うまい方法は無いでしょうか?私としてはいちいち他のテーブルを開いて入力したりせずにしたいのですが・・・

  • ACCESS2000 コンボボックスによるデータ入力

    2つのテーブルがあります。 1つのテーブルは、顧客テーブルとし「氏名」「住所」「TEL」「担当者」とします。 もう1つは、担当者テーブルとし「ID」「担当者」 フォームで、 1つめの「担当者」のところをコンボボックスにしました。 プロパティは、 コントロールソース→担当者 値集合タイプ→テーブル/クエリ 値集合ソース→担当者テーブル としました。 顧客テーブルの「担当者」フィールドは、担当者テーブルから取得したいの です。 しかし、フォームで開きコンボボックスで値を変えようとしますが、 データが固定していて顧客テーブルに入力されません。 ほかのボックスは入力OKです。 リレーションは、担当者フィールド同士で設定してもしなくても 入力は可になりません。 状況がつかみづらいですが、わかる方教えてください。

  • 同一値集合ソースの複数コンボボックスでプルダウンメニューに既入力値を再表示させない

    まだ6ヶ月程度のAccess初心者です。データ入力上の誤入力を避けたいのですが方法がわからず悩んでいます。初心者で、未だ基本的な理解ができていないためだと思いますが、どなたか解決法をご教授いただければありがたく存じます。  1つのフォーム上に複数のコンボボックスを用意して、同じ値集合ソース(テーブル)を参照して入力をしようとしています。  このとき、まず、コンボボックス1に、参照しているテーブルから”DATA1”という値を入力したとき、次のコンボボックス2のプルダウンメニューには、先の”DATA1”を表示しないように、SQLステートメント:クエリビルダの抽出条件を設定しようと考えています。  このフォームにはコンボボックスを全部で4つ用意して、順次入力の都度、入力済みのデータはプルダウンメニューに表示しないようにし、重複を避けたいというのが目的です。    コンボボックス2の値集合ソースとして設定する際に、SQLステートメント:クエリビルダの抽出条件に記載したものは次のようなものです。 <>[Forms]![フォーム1]![コンボボックス1]  And  <> [Forms]![フォーム1]![コンボボックス3]  And  <>[Forms]![フォーム1]![コンボボックス4]  ほかのコンボボックス3~4にも、自分以外のコンボボックスと重複させないつもりで、それぞれ抽出条件を入力しました。  さて、実際にこれで動かしてみると、1回目はうまくいって喜んだのですが、入力値をDeleteして再入力を試みたところ、リストボックスが何も表示されない状態になり、悩んでいます。  何か設定上で不足している、あるいは論理上で考え違いをしているのだと思いますが、何とか解決したいと切に思っています。何卒よろしくお願いします。

  • ACCESS97のコンボボックスについて

    入社して、名刺を貰う機会が多い為、名刺を管理するものを初歩的な参考書を見てACCESS97で作りたいと思います。テーブルで数名の氏名・会社名・部署名・役職・住所を作りました。良く分からなかったので、この1つのテーブルを基にパラメータを使って検索する「検索用画面」と新しいレコードが表示される「新規入力画面」をクエリーとフォームを別々に作りました。検索用画面は、これで良しとします。しかし、新規入力画面は、同会社名が多いので、コンボボックスを作り今まで登録したものからも選べる様にもしたいです。新しいレコードでは、表示されませんが、▼で前のレコード(既に入力してあるデータ)に戻ると、エラーメッセージで「このフィールドに入力した値が不正です。例えば、数値型のフィールドに文字列を入力しました。」と出てきてしまいます。コンボボックスいうのは、コンボボックスウィザードで「テーブルまたはクエリーを表示する」を選び、表示させたいものを選ぶだけでは、いけないのでしょうか・・。くだらない質問で申し訳ありませんが、回答の方宜しくお願いします。

  • Access2003でコンボボックスからデータを抽出したい

    自己啓発でAccess2003を勉強しています。 Access2003でコンボボックスで名前を選択して、データ(住所)を抽出したものをリストボックスに表示させたいのですがどこがまちがっているかわかりません。こんなことで3週間ぐらい悩んでいます。 回答またはアドバイスをお願いします。 もしくはもっと簡単なやりかたがあればお願いします。 (1)「氏名」、「住所」のテーブルを作成。テーブル名は「01データ」 (2)「氏名」、「住所」のクエリを作成。クエリ名は「クエリ1」 (3)フォームでコンボボックスとリストを作成。フォーム名は「印刷」 ⇒コンボボックスの名前は「検索」。 ⇒値集合ソースはSELECT [01データ].ID, [01データ].氏名 FROM 01データ; これで「氏名」が選択できた。 (4)クエリの「氏名」抽出条件にLike [forms]![印刷]![検索] (5)検索するマクロを作成。マクロ名「M検索」 アクションは 全レコードの表示 フィルタの実行 ⇒Where条件は[Forms]![印刷]![検索]=[クエリ1]![氏名] (6)マクロ「M検索」をコンボボックスのプロパティ「イベント」タブから変更時に設定する。 (7)フォーム「印刷」を開き、コンボボックスで氏名を選択すると『クエリ1!氏名』と表示されてしまいます。 (8)フォーム「印刷」のリストボックスは全レコードが表示されている。

専門家に質問してみよう