• ベストアンサー

Accsee2003 フォームのコンボボックスの同期について

Access2003のフォームのコンボボックスで困っています。 フォームのコンボボックスで都道府県を選んだ次のコンボには該当都道府県の市町村を表示させたいのですが、うまくできません。 都道府県テーブルには都道府県のみ、市町村テーブルには市町村のみが入っていまして、都道府県IDでリレーションシップしてあります。 同じような質問がありまして何度かやってみましたが、エラーが出て実現できませんでした。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=233843 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1969695 ご教授いただければ幸いです。よろしくお願いいたします。

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

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

No1です。 仮に 市町村テーブル名=[T_市町村] 市町村テーブルのフィールド名 = [市町村ID]、[都道府県ID]、[市町村名]、、、 フォームの名前=[フォーム名] フォーム上のコンボボックスの名前を [コンボ都道府県]、[コンボ市町村] であるとします。 [コンボ市町村] のプロパティで 値集合タイプに    テーブル/クエリ 値集合ソースに    SELECT [T_市町村].[市町村名] FROM [T_市町村] WHERE [T_市町村].[都道府県ID] = [FORMS]![フォーム名]![コンボ都道府県] [コンボ都道府県]の更新後処理のイベントに ME.コンボ市町村.VALUE = "" ME.コンボ市町村.REQUERY とすればできると思います。 エラーの原因については、コンボボックスの名前が正しく記述されていないのだと思いますが、 1.コンボボックスのイベントの更新後処理のところが [イベント プロシージャ] となっていますか? これはビルだの選択のときに コードビルダを選んでください。 2.コンボボックスの名前が me.xxxxxx.requery の xxxxxx の部分となっていることを確認してください。 

kami21
質問者

お礼

ご回答ありがとうございました。 早速やってみましたが、 ”Me”マクロを見つけることができません。 マクロ(またはマクログループ)が存在しないか、新規マクロが保存されていません。 ”マクロ グループ名.マクロ名”という構文でマクロ名を指定するときは、既存のマクログループ名を指定する必要があります。 というエラーが出ました。 これは都道府県コンボを選択した後に出るエラーで、何度やり直しても同じでした。 市町村コンボのイベントの更新後処理のところを[イベント プロシージャ]にしても結果は同じでした。 コンボボックスの名前が間違いないことは何度も確認しました。 何かわかりましたらお願いしたいです。 よろしくお願いいたします。

その他の回答 (3)

noname#22222
noname#22222
回答No.4

質問者がやろうとしていることは、いたって簡単なことです。 回答者が答えられているように、書くべきコードは僅か1行です。 Private Sub コンボ_都道府県_AfterUpdate()   Me.コンボ_市町村.Requery End Sub この1行をミスしているとは考えがたいことです。 また、それぞれの[値集合ソース]も SELECT 都道府県.ID, 都道府県.名称 FROM 都道府県; SELECT 市町村.ID, 市町村.都道府県_ID, 市町村.名称 FROM 市町村 WHERE (((市町村.都道府県_ID)=Forms!XXXXX!コンボ_都道府県)); になっているでしょう。 Forms!XXXXX! <-- は、実際のフォーム名! さて、これだけの作業でミスをする場合、 **********  回答を誤解した場合 ********** Private Sub コンボ_都道府県_AfterUpdate()   Me.コンボ_市町村.RowSource = Me.都道府県 <--- この行は不要!   Me.コンボ_市町村.Requery End Sub と、誤解によって Me.コンボ_市町村.RowSource を作成する一文を挿入している! ***********  誤ってマクロを生成した *********** あるいは、プロシージャでなくマクロを作成しようとして中途半端なマクロが出来上がっている。 モジュールのマクロの確認も必要かと! ************  プロシージャをコピーした ************ もう一つ考えられるのはプロシージャのコピーです。 いかなることがあっても、プロシージャを丸ごとにコピーしてはなりません。 内部コードのみをコピーすることが肝心です。 生成したプロシージャのコピー・ペーストで移動することも不可です。 ※こんなところから、エラーの原因を探って下さい。

kami21
質問者

お礼

ご回答ありがとうございます。 フォームを最初から作り直したところ、うまくできました。 プロシージャを何度もコピー・ペーストしていたため、どこかおかしくなっていたようです。 これから勉強します。ありがとうございました。

noname#60992
noname#60992
回答No.3

ご確認いただきたいのですが、 [イベントプロシージャ]▼と・・・がのボタンが出てくると思いますが、その・・・のほうをクリックしていただくと、 private sub コンボ都道府県_afterupdate() end sub と出てきますので、その行間に ME.コンボ市町村.VALUE = "" ME.コンボ市町村.REQUERY とかいてありますか? その部分を forms.フォーム名.市町村.value = "" forms.フォーム名.市町村.requery と変えてもだめですか?

kami21
質問者

お礼

何度もありがとうございます。 変えただけではエラーが出ましたので、フォームを最初から作り直したところ、うまくできました。 何度もいじりすぎたせいか、どこかがおかしくなっていたようです。 お手数をおかけいたしました。ありがとうございました。

noname#60992
noname#60992
回答No.1

フォームの都道府県のコンボの値により市町村を限定するクエリを作り、 そのクエリを市町村を選ぶコンボのレコードソースとして、 都道府県のコンボの値が変更されたときに、市町村のコンボのrequeryをかける。 まあ表示されている最初の質問の答えそのものですけど。

kami21
質問者

補足

ご回答ありがとうございます。 書き忘れていましたが初心者ですのでエラーが出た時点で止まってしまいます。 質問の二つともにrequeryというのが出てきますが、そのとおりに実行すると”Me!市町村”マクロを見つけることができません。というエラーが出てしまいます。 具体的に教えていただければ大変ありがたいです。 よろしくお願いいたします。

関連するQ&A

  • コンボボックスを使った入力の改善

    コンボボックスを使った入力を全てのデータベースで利用しています。しかし、各コンボボックスがそれぞれ独立「単体動作」しているので、コンボボックスの初段目「最初」はレコード数が少ないのですが、2段目3段目になると選択候補が累積表示されるので、候補の数も多くなり使いづらさを感じるデータベースも増えました。この状況を改善したいと思っていますので、宜しくお願いします。尚、データベースで設定しているコンボボックス全てに言えることでもありますので、以下のケースを紹介させていただきますので、アドバイスをお願いしたいと思います。 [現状でのやり方] コンボボックス参照オブジェクトは以下の構成にて、コンボボックスは独立していて連動していません。なお、参照データの追加作業は別途作成したフォームを、データ入力フォームに配したコマンドボタンで開いて行っています。 [コンボボックス関連オブジェクト(例)] コンボボックス名:都道府県(値集合ソースで都道府県のみ選択) テーブル名:都道府県テーブル フィールド名:ID、都道府県 フォーム名(参照データ追加):都道府県追加フォーム ※「新規追加後の入力フォームへの即反映はアドバイスにより完結済」 コンボボックス名:市町村(値集合ソースで市町村のみ選択) テーブル名:市町村 フィールド名:ID、市町村 フォーム名(参照データ追加):市町村追加フォーム ※「新規追加後の入力フォームへの即反映はアドバイスにより完結済」 [改善させたいこと] コンボボックス「都道府県」で東京都を選択したとき、次のコンボボックス「市町村」では東京都の市町村だけが次の候補として表示させたいと思っています。又、現在は蓄積データの絞り込み検索で設定していますが、選択コンボボックスの次のコンボボックスを自動プルダウンさせ、候補も同時に表示させ入力できればと考えています。 以上ですが、宜しくお願いします。

  • Access・画像でコンボボックスを操作する際に

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=1223250 で、画像を押すと、コンボボックスをドロップダウン、はできたのですが、 そのクリックを行うと、下に隠れていたコンボボックスの▼が画像の上に出てきてしまいます!(>_<) これは回避することはできないのでしょうか?

  • Access 住所 コンボボックス

    こんにちは、 Access2003で質問があります。 コンボボックス?が2つあり、 1つ目:都道府県 2つ目:市町村 で 1つ目のコンボボックスを東京都にすると 2つ目に東京都の市町村が抽出されて、そこから該当する市町村を選択できるようにしたいと考えています。 どのようにすればよいのでしょうか? 何かお分かりの方がいましたら教えてください。よろしくお願いします。

  • Access2000のフォームに関する悩み

    アクセス2000で以下のようなデーターベースの構築に悩んでいます。 『各人がいつどの街へ行ったかを記録するデータベース』です。 ・登録テーブル(登録ID、登録者、登録日) ・行先テーブル(行先ID、登録ID、都道府県、市町村、日時) というようなテーブルを作成し、登録テーブルと行先テーブルをリレーションシップで結びます。 登録テーブルを元にした登録フォームを作成し、行先テーブルを元に表形式の行先フォームを作成し、行先フォームを登録フォームのサブフォームとして組み込みます。 尚、都道府県と市町村の入力は各マスタテーブルを作成し、コンボボックスから選択させ、クエリを使って都道府県から市町村の絞込みを実施させます。 ここで、今回の悩みですが、以下の(1)(2)を至急解決しなければならないことです。 (1)データを入力していくと市町村の絞込みができない(表示されないとか前のデータが表示される) (2)テーブルにはデータが入力されているが、フォーム上では空欄になってしまう。 (1)は行先フォーム上では解決できております。 (2)については私の腕ではなすすべもなく途方に暮れている状態です。 どなたか、助けて下さい。よろしくお願いします。

  • vb6のコンボボックスの操作について

    おはようございます。 vb6+MDBの環境下で、コンボボックスについて質問です。 マスタとなるテーブルA(都道府県など)と、一般的(?)なデータを日々貯めていくテーブルBがあり、 Bに、Aのキーとなる値が保存されています。 テーブルデータBの表示・更新画面を作っているのですが、 テーブルAの内容を画面上のコンボボックスに選択項目としてADDして表示するところまでは出来たのですが、以下のことを実現するには、コンボボックスにどういう記述で実現するのかわかりません。 1.テーブルBに持っているAの都道府県コードに該当する項目を、Bのデータ選択時に表示したい。 【テーブルA】 Aのキーコード,都道府県名 【テーブルB】 Bのキーコード,Aのキーコード,住所… このような場合、イベント時にコンボボックスをどのように処理するようにソースを書けば実現できますか?

  • Accessについて。フォームでデータ入力

    超基本的な質問ですみません。 仮に下記のような構造のデータベースがあったとします。 テーブル 都道府県名 フィールド 都道府県 テーブル 住所    フィールド 都道府県 市町村 テーブル 顧客    フィールド 都道府県 市町村 顧客にデータを入れていくために"顧客情報入力"というフォームを作ります。 "都道府県"をコンボボックスで選択しました。 市町村のコンボボックスに上の"都道府県"で選択した都道府県の"市町村"だけを表示させるためにはどうしたら良いのでしょうか。 クエリについてはある程度理解していたつもりなのですが、頭が真っ白になってしまいました。

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

    以前、コンボボックスについて質問させてもらった者です。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=968767 さらに知りたいことがあって質問させてもらいます。ボックスAで特定の選択肢を選んだ場合のみボックスBが選択出来なくなる方法は分かりましたが、では、そのボックスAの特定の選択肢を選んでボックスBを選択出来なくした後、Bの選択は出来なくなっていますが、ボックスBの中にある選択肢をプログラム部分で自動で入力してサーブレットに飛ばすような状態にするためにはどのようにしたら良いのでしょうか?とにかく、ボックスBにNULLでも良いので何かしらサーブレットに飛ばして認識させたいんです。

  • Access フォーム コンボボックス

    フォーム上のコンボボックスの選択したデータをテーブルに保存するにはどのようにすれば宜しいのでしょうか? 実際のものは、社員が複数人表示されていまして、その社員一人一人が1日ごとの出勤が可能か不可能かをコンボボックスから選択しテーブルに書き込みたいのですが、その社員一覧のテキストボックスと出勤可・不のコンボ(コントロールソースにてテーブルの各日付ごとに設定)をフォームに作ったところ、社員一覧と社員に対するコンボがずらっと表示さるのですが、コンボを選択しようとしますと下部に「このコントロールは式○○に連結しているため編集できません。」と表示されます。 長文になり、尚且つかなり分かりづらい説明で申し訳ございませんが宜しくお願い致します。

  • 困ってます!Accessフォームのコンボボックス

    初心者です。とーっても困っています・・・。 顧客データを登録しているのですが、テーブルを元に登録フォームを作成しました。 商品がたくさんあって、4つのコードに分かれています。フォームの中に[A][B][C][D]と4つのコンボボックスを作成し、絞込み検索ができるようにはしました。 が、しかし、選んだデータがテーブルに表示されません。例えば[A]のコンボボックスの中から[1010]を選択、テーブルを見ると、他のテキストボックスに入力した情報は保存されているけど、コンボで選んだデータは空白です。 誰か助けてください!!よろしくお願いします。

  • ファイルメーカーでコンボボックスの絞込み

    Accessのデータベースはいくつか作ったことがありますがファイルメーカーは初心者です。 例えば「都道府県」「市町村」というフィールドがある全国地名テーブルがあるとします。 「都道府県」 「市町村」 大阪府     大阪市 大阪府     堺市 大阪府     吹田市 奈良県     奈良市 奈良県     生駒市 ・ ・ 別途「住所」テーブルのコンボボックスの中身をこのテーブルにした場合、 「都道府県」コンボボックスの「大阪府」を選択すると、「市町村」コンボボックスの中身が「大阪市」「堺市」「吹田市」といった大阪府内のみに絞り込むことはファイルメーカーで可能なのでしょうか。 Accessではクエリを使えば出来ますが、いまいちファイルメーカーでのやり方がわかりません。 上手く説明できなくてすみません・・