• ベストアンサー

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

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

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

  • ベストアンサー
  • nnfuji
  • ベストアンサー率28% (200/701)
回答No.1

まず、都道府県名や市町村名はコードを付けて管理しましょう。 【都道府県】テーブル 都道府県コード,数値型 都道府県名,テキスト型 【市町村名】テーブル 都道府県コード,数値型 市町村コード,数値型 市町村名,テキスト型 【顧客】テーブル 都道府県コード,数値型 市町村コード,数値型 顧客コード,数値型 顧客名,テキスト型 というテーブルを作り、顧客情報入力フォームには 都道府県のコンボボックス データソース,「都道府県」テーブル 市町村のコンボボックス データソース,市町村クエリー 次に、市町村クエリーを作成します。 SELECT 市町村コード,市町村名 FROM 市町村名 WHERE 都道府県コード=Forms!顧客情報入力!都道府県 以上のオブジェクトを作成すれば選択した都道府県の市町村しか表示されないはずです。 手元にAccessが無いので、細かい部分でエラーがでるかもしれませんが、ご自分で修正していってください。 また、都道府県や市町村名は自治省コードという体系で定義されています。ネットで探せばExcel形式のファイルが見つかるかもしれませんので、頑張って探してみてください。

camille_ka
質問者

お礼

丁寧なご回答ありがとうございました。

関連するQ&A

  • フォームのプロパティを設定したい(Access2000)

    Access2000 XPです。 都道府県名が1レコードに1つずつ入っているテーブルと 各都道府県名のテーブルが47コあります。 新規でフォームを作成し(フォームのレコードソースはまだ未設定) コンボボックスを1つ置いて、値集合ソースに都道府県テーブルを設定し コンボボックスで選ばれた都道府県にフォームのレコードソースを変更しようと思っています。 Me.RecordSource=コンボボックス.text 単純にこれで良いと思うのですがエラー(入力された値は、フィールド又はコントロールで定義されている入力規則に従っていません)が出て全然更新されません。 どなたか分かる方、解決法をお願いします。。。

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

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

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

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

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

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

  • access,フォームで最新のコンボ内容が反映不可

    フォーム入力時、顧客や商品データが無い場合、フォームを開いたままで、そのテーブルを開き、顧客や商品データを入力、閉じます。 フォームでは、顧客や商品データはコンボボックスで選ぶ用にしていますが、それにテーブルに新たに入力したそのデータが出てきません。 フィールド→更新、やフォームを閉じ開きすれば、現れます。 これを、例えばボタンを作成し、テーブルにデータ追加後、ワンクリックで、フォームのコンボボックスに新入力データを反映させるにはどうすれば良いのでしょうか(SQLの方が良いか?)。 また、フォームのコンボボックスのデータは、フォームを開いた時のテーブルやクエリのデータそのままで、コンボボックス選択時に再読み込みなどはしないのでしょうか? 正確にはコンボボックスのデータは順の関係でクエリで整順させたものです。 access2000でwindows2000です。 宜しくお願いいたします。

  • Accessデータ並べ替えをハイブリッドにしたい

    [使用しているツール] Access 2007 PROFFESSONAL [やっていること(現状)] 1つのテーブルで複数のクエリ(複数のフィールドの並べ替えが必要な為)と複数(クエリと同数)のフォームを作成して、フォームの数だけコマンドボタンを作成してフォームを一覧表示で開いています。 [やりたいこと] 1つのテーブルで「1つのクエリ」による複数のフィールド(名)を切替えて、「1つのフォーム」で表示(一覧)させたいと思っています。 例えば、テーブル名:顧客名簿(取引先、県名、商品名、入庫日)、クエリ名:顧客名簿クエリ、フォーム名:顧客名簿一覧としたとき、(取引先、県名、商品名、入庫日)をコンボボックス等で切り替えることで、指定したフィールド(名)で並び替えられたデータを「フォーム名:顧客名簿一覧」に表示させられないでしょう。 [考えたこと] コンボボックス(名前:コンボ1)を作成し値集合ソースに「”取引先”;”県名”・・・・。」と入力、クエリ「顧客名簿クエリ」の抽出条件欄にビルダを起動させて「・・・コンボ1」を指定、フォーム「顧客名簿一覧」のレコードソースにクエリ「顧客名簿クエリ」を選択しました。しかし、フォーム「顧客名簿一覧」を開いても、データは抽出できずデータなしの表示で先へ進めていません。 以上ですが、宜しくお願いします。

  • Access2003のフォームのコンボボックスは入力が必須なのでしょうか?

    会員管理のデータベースを作っています。 新規入力画面のフォームに5つのコンボボックスがあります。 広告媒体やコース、担当者を選択するコンボです。 新規入力して、「レコードの保存」「レポートを開く」クエリを組んだボタンで 入力後に顧客名や諸情報の入ったレポートを出しているのですが コンボボックスが1つでも未選択だと、空のレポートが開いてしまいます。 未選択コンボがあっても、where条件で氏名でひぱって、氏名+入っている情報だけでレポートを出したいのですが・・・。 未選択コンボがあると、テーブルには保存できてもレポートには反映されないものなのでしょうか?

  • accessのコンボボックスのことで質問です。

    accessを勉強しているのですが、ちょっとしたことで分からなくなってしまいました・・。 質問の内容なのですが、まずフォーム上にコンボボックスAとコンボボックスBを配置するとします。 レコードソースには仮に[情報テーブル]というテーブルが選択されているとします。 コンボボックスAには[情報テーブル]のフィールド名が、 例えば[顧客NO]、[商品]、[値段]というフィールド名が入っているとし、フィールドにはそれぞれ10件ずつデータが入力されています。 そしてコンボボックスAで[顧客NO]を選択するとコンボボックスBに[顧客NO]の10件のデータが挿入され、選択できるようにしたいのです。 他のフィールド名を選んだときにも同じようにコンボボックスBにフィールドのデータが入るようにしたいと思っています。 コンボボックスAにテーブル名を入れることはできたのですが、 コンボボックスAで選択されたフィールドのデータを、コンボボックスBで選択できるようにするというやり方がわからないのです・・。 accessは2002を使っています。 よろしくお願いします。

  • Accessのフォームとテーブルについて教えてください。

    Access2003を使用しています。 既存のフォームAにフィールド3個を増やしました。 フォームAはテーブル(1)と連動していました。 追加したフィールドはテーブル(6)のものです。 ところがフォーム上で追加フィールドに入力が出来なくなりました。3フィールドのうち、ひとつはコンボボックスです。表示はされますが確定ができません。 フォームAのSQLステートメントではテーブル(1)・(6)以外にテーブル(2)・(3)・(4)・(5)が結合されています。 フォームAからするとテーブル(2)・(3)・(4)・(5)のデータはIDの名称を見るための参照用です。 テーブル(6)は、追加フィールドのコンボボックスが参照用で、他の2追加フィールドは、フォームから入力してテーブル(6)に反映させたいものです。 テーブル(6)の画面では入力できます。 フォーム上からは入力できません。 設定が何か欠けているからでしょうか? 他の質問では2つのテーブルをひとつのフォームにする場合は、クエリを別に設けた方がいいとなっています。フォームが出来上がっているので、できればクエリを設けずに行いたいのですが、よくない方法でしょうか? 手順なども踏まえて教えていただけると助かります。 よろしくお願いいたします。

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

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

専門家に質問してみよう