Accessのコンボボックスのデフォルト表示

このQ&Aのポイント
  • Access初心者のために、フォームのコンボボックスで未選択時にコメントを表示する方法について教えてください。
  • VBAでコンボボックスのデフォルト値を設定しようとした際にエラーが出ます。解決策を教えてください。
  • Access 2013を使用しています。2013でも未選択時にデフォルトコメントを表示する方法を教えてください。
回答を見る
  • ベストアンサー

Accessのコンボボックスのデフォルト表示

Access初心者です。 フォームのコンボボックスですが、ウェブフォームでよく見られるように、未選択時に「---選択してください---」というコメントを表示できないでしょうか。 「---選択してください---」はデータとして入らないような解決法でお願いします。 VBAでMe!コンボボックス名.Value = "AAA"というふうにやってみましたが、どうもValueはテーブルのデータ型と同じでないとダメみたいです。テーブルの当該フィールドには例えば都道府県IDのように、数値だけしか格納しない予定ですので、これでは「このフィールドに入力した値が正しくありません」というエラーが出ます。 なお使っているのは2013です。いい解決法がないでしょうか。よろしくお願いたします。

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

  • ベストアンサー
回答No.3

都道府県テーブル を変更することが可能なら、 下記のようにするのが一番簡単でしょう。 m_prefecture prefecture_ID prefecture_name 0 ---選択してください--- 1 北海道 2 青森県 3 岩手県 コンボボックス 名前 cb都道府県 値集合ソース SELECT m_prefecture.prefecture_ID, m_prefecture.prefecture_name FROM m_prefecture; 規定値 0 連結列 1 列数 2 列幅 0cm フォームの 更新前処理 で、 Private Sub Form_BeforeUpdate(Cancel As Integer) If Nz(Me.cb都道府県) = 0 Then Cancel = True MsgBox "都道府県を選択してください。" Me.cb都道府県.SetFocus End If End Sub

paihuai
質問者

お礼

ありがとうございます。 これでとりあえず希望通りの処理が実現できて、よかったです。 やはり、phpとかと同じように行かないのですね。 丁寧に教えていただき、本当にありがとうございました。

その他の回答 (2)

回答No.2

フィールドには、都道府県ID が格納されているが、表示は都道府県名 という設定ですね。 このように格納データと表示が異なる場合は、書式プロパティは無視されますので、前回の回答は使えませんね。 設定により対処法が異なるので、下記の情報をご提示ください。 そのコンボボックスは連結コントロールですか。非連結コントロールですか。 連結の場合、フォームは帳票フォームですか。単票フォームですか。 また、 未入力の場合、ボックス部に「---選択してください---」と表示するのに加えて、 ドロップダウンリストの先頭に「---選択してください---」と表示もさせたいですか。

paihuai
質問者

補足

ありがとうございます。お答えします。 コンボボックスは連結コントロールです。 フォームは単票形式です。 「---選択してください---」の表示方法ですが、 例えばこのページ http://www.metalart.co.jp/saiyo/contact.html  の都道府県入力欄をご確認ください。 それと同じことを実現したいと思います。 よろしくお願いたします。

回答No.1

コンボボックスのコントロールソースは数値型のフィールドだとして、 書式プロパティを下記のように設定します。 0;-0;0;"---選択してください---" コンボボックスの幅は、「---選択してください---」が表示できる幅にしてください。 ちなみに、フィールドがテキスト型の場合は、 &;"---選択してください---" となります。

paihuai
質問者

補足

ご回答ありがとうございます。 ご教示いただいたとおりにやってみましたが、左寄せだったコンボボックス内の内容が右寄せになるだけでした。 状況を補足しますと、コンボボックスでは 都道府県ID(整数)、都道府県名(文字列)によって構成されている都道府県テーブルをコントロールソースとしていて、値集合ソースは SELECT m_prefecture.prefecture_name FROM m_prefecture;  となっています。 列数は1で、連結列は0です。 これにより、表示は都道府県名、データは都道府県IDとなっています。 再度教示お願い出来ますか。

関連するQ&A

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

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

  • Access コンボボックスの絞り込み後の表示

    Access2002を使用しております。 コンボボックスAに連動したデータを絞り込みさせるコンボボックスBがありますが、一旦入力後は、コンボボックスAの値にかかわらずコンボボックスBに入力したデータを表示させるにはどうしたらよいでしょうか? 例として、次の3つのテーブルを基にデータベースを作成しております: メインテーブル フィールド名: ID 社名 担当者 社名テーブル ID   社名   住所 etc... ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1    A社 2    B社  担当者テーブル ID   社名ID   担当者名  電話番号 etc... ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 1    1      木村 2    2      佐藤 3    1      田中 4    2      斎藤 メインテーブルを基にしてフォームを作成し、 「メイン」というフォーム名にして 「社名」「担当者」をフィールドのコントロールをコンボボックスに変更しました。 「社名」フィールドの値集合ソースを「社名テーブル」から引き出し SELECT [社名テーブル].ID, [社名テーブル].社名 FROM 社名テーブル; 列数2  で設定し、社名をコンボボックスで選択できるようにしました。 そして 「担当者」フィールドの値集合ソースを「担当者テーブル」から引き出し SELECT 担当者テーブル.ID, 担当者テーブル.担当者名, 担当者テーブル.社名 FROM 担当者テーブル WHERE (((担当者テーブル.社名)=forms!メイン.社名)); で設定しました。 「社名」フィールドの「更新後処理」で Private Sub 社名_AfterUpdate()     Me!担当者.Requery End Sub を設定しました。 「メイン」フォームをフォームビューで開き、「社名」コンボボックスで「A社」を選択すると 「担当者」コンボボックスで「木村」と「田中」が表示されるので、「木村」を選択します。 次のレコードに移り、「社名」コンボボックスで「B社」を選択すると 「担当者」コンボボックスで「佐藤」「斎藤」が表示されるので、「佐藤」を選択します。 さて、「佐藤」を入力した時点で、前のレコード(「A社」「木村」を選択)に戻ると 「担当者」欄が空欄で表示されます。 メインテーブルには全てデータは入力されています。 データ入力時は「担当者」コンボボックスは「社名」コンボボックスで選択した値に連動させたいのですが、 このようにデータ入力済みの場合は 最初のコンボボックスの値にかかわらず(この場合は直近に選択した社名がA社・B社のいずれかであろうとも) 入力済みのデータ(「木村」「佐藤」)がフォームに表示されるようにしたいのですが 何か良い方法はないでしょうか? 出来れば入力専用と読み取り専用のフォームを2つ使用するのではなく、1つのフォームで事足りればありがたいのですが・・・

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

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

  • Access テキストボックスとコンボボックス

    Access初心者で、勉強がてらデータ登録フォームを作成しています。 フォーム上にコンボボックスを設置し、 テーブルに保存されているデータを検索できるようにしたのち、 テキストボックスのコントロールソースには簡単に 「=[コンボボックス].[column](2)」としています。(それぞれの名前は仮称です) 後から、テキストボックスひとつで 「コンボボックスからの検索結果を表示させる」と 「テキスト入力も可能とする」 を共存させたいと思い始めたのですが、可能になりますでしょうか。 ただし「コンボボックスからの検索結果表示」をしたテキストボックスに対し、 その情報をフォーム上で書き換えたとしても、テーブル側のデータ書き換えは行いたくありません。 よろしくお願いいたします。

  • Accessのコンボボックスの値が消える

    お伺いいたします Accessのフォーム(フォーム請求実績)上に置いたコンボボックスで ユーザーリスト(テーブル)から目的のデータを 選択出来るように設定していますが、 目的のデータをクリックすると、コンボボックスに一瞬、表示された後、消えて空欄になります。 目的のデータ(販売先名)で販売実績表(クエリ)の中の販売先別のデータを抽出(Filter)させていますが目的のデータの抽出はできるのですが、 コンボボックスの表示が消えるので困っています。 因みに、請求実績データ(選択クエリ)の販売店フィールドの抽出条件欄には [forms]![フォーム請求実績]![コンボボックス1]で 抽出するようにしています。 ぐだぐだと長い説明で解りにくいと思いますが要は コンボボックスのデータを選択してもコンボボックスに表示されないのです。 こんな経験された方よろしくアドバイスお願いいたします。

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

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

  • access コンボボックス初期表示について

    ACCESS VBA コンボボックス 初期表示について。質問します。m(__)m 教えてください。 VBAのフォームロードでコンボボックスに初期表示 させたいのですが、初期表示させいたい内容というのが、テーブルにある例えば列名AAA、列名BBBがあるとして  列名AAAの中で「3」を持っている、列名BBBの名前を初期表示させたいのです。 テーブル名 CCC AAA...BBB. ...1 ......あ.... ...2.......い.... ...3.......う.... ...4 ......え... このテーブル「CCC」でいえば3を指定して、「う」をフォームロードでコンボボックスに初期表示させたいのですがどうやればいいのでしょうか? いまの状態はコンボボックスに「あ・い・う・え」の順番で取っきていて「あ」が初期表示になっています。 コードの書き方がわかりません。教えてください テーブルCCCはフォームのプロパティのコントロールソースでつなげてあります。 ↑という風に質問させていただいて 回答していただいた内容は //何番目のデータを初期表示したいか決め、FORM LOAD時にその値をLISTINDEXにセットすれば良いのでは? //即ち //Private Sub Form_Load() //Combo1.ListIndex = 2 //End Sub //のようにプログラムを書けば良いと思います。但し、初期値は”0”なので注意が必要です。 としていただいたのですが、私の質問が説明が足りていなくて改めて質問させていただきます。 テーブルの中身はそのときそのときで入れ替わります。 テーブル名 CCC  AAA...BBB..........................................AAA..BBB ...1 ......あ....左の並びのときもあれば.......3.......か ...2.......い....右のように並びが変わる.......1.......け  ...3.......う......時があります。....................2.......さ ...4 ......え................................................4.......な このときに「3」を指定して、3に対応するBBBの行をフォームロードでコンボボックスに初期表示させたいのですがどうやればいいのでしょうか?

  • Access2000 コンボボックス内の並べ替え

    フォーム上で指定した条件で選択クエリを作り、クエリのデータを フォーム上のコンボボックスに表示するようにしました。 (選択クエリのフィールド:   「ID」、「名称」、「条件(指定の状況により数が変わる)」) 選択クエリを見ると「ID」が昇順で並んでいるのですが、 フォームのコンボボックスは「名称」が昇順で表示されます。 コンボボックス上でも「ID」が昇順になるようにするには どうすればよいのでしょうか? よろしくお願いします。

  • accessでコンボボックスの内容を変える方法を教えて下さい。

    accessのフォームにてデータ入力画面を作成しています。 フィールド入力にコンボボックスを用いてリスト選択にしたいのですが、リストの量が膨大になってしまう為、その前のフィールド値によってリスト用テーブルを切り換えて使いたいと思っています。簡単に出来る方法があれば教えて下さい。

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

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