• 締切済み

Accessフォームに値を自動挿入したいんです

どなたか教えてください! フォームであるテキストボックスに値を入力すると、他のテキストボックスに自動的に値が表示されることって出来ますか?また、どうやって設定するのでしょうか? 私が作成したいのは以下のとおりです。 「国別」データベースと「メール受信履歴」データベースを作成します。 「国別」データベースには「国名」「州名(アジア州やヨーロッパ州など)」の2つのフィールドがあります。 また、「メール受信履歴」データベースには「受信日付」「メールアドレス」「国名」「州名」の4つのフィールドがあります。「国名」には「コンボボックス」を使用して「国別」データベースの「国別」を参照するように設定しています。 そして、フォームで「国別」テキストボックスと「州別」テキストボックスを作成し、「国別」テキストボックスを選択したら自動的に「州別」テキストボックスに州名を表示したいのです。 説明が分かりづらいと思いますがよろしくお願いします<(_ _)>

みんなの回答

  • yoisho
  • ベストアンサー率64% (331/516)
回答No.2

ご質問のとおりの処理でしたら、国別コンボボックスの更新後処理イベントに、VBA でテキストボックスの表示を更新する内容を書いてやればよいとは思いますが・・・・。 ここでは、別の提案をさせてください。 「国別テーブル」と「メール受信履歴テーブル」の両方に、「国別」と「州別」の二つのフィールドデータを重複して入れるのは、データベース全体として効率がよくないと思います。 Accessのようなリレーショナルデータベースでは、一意に付随して決まってしまうデータを重複して持つことは、後々のデータの整合性を考えても、望ましくありません。 以下、提案です。 「メール受信履歴テーブル」には、「受信履歴ID」(主キーとしてレコードを固有に識別できるデータがあった方がよい)、「受信日付」、「メールアドレス」、「国別ID」の4つのフィールドを、そして「国別テーブル」には、「国別ID」、「国名」、「州名」の3つのフィールドを、定義し、各テーブルを「国別ID」で関連付けては、いかがでしょうか? 具体的には、まず、上記のように、二つのテーブルを作ります。(「国別テーブル」には、できるだけデータを入力しておいてください。) 次に、クエリーをデザインビューで新規作成します。 「メール受信履歴テーブル」と「国別テーブル」をクエリーに追加し、それぞれを「国別ID」で結合します。 上記のクエリーをコントロールソースとして、フォームを作り、そこに各フィールドに対応したテキストボックスやコンボボックスを配置します。(オートフォームウィザードでも良い。) 国別コンボボックス(国別IDがコントロールソースになる。フォームウィザードで、テキストボックスになっていたら、書式→コントロールの種類の変更でコンボボックスにする。)の書式タブで、列数を2に、列幅を0(ゼロ)cmに、また、データタブで、集合値タイプを テーブル/クエリーに、集合値ソースを国別テーブルに、連結列を1にします。 以上で、特にイベント処理をしなくても、州名も連動して更新されるようになります。

  • snisizaw
  • ベストアンサー率0% (0/0)
回答No.1

imu_kaさん、こんにちは。 さて、まず確認していただきたいのは、「国別」(国名?)コンボボックスのプロパティです。 「データ」タブの「値集合ソース」ではどのような値が指定されてますか? 以下のようにプロパティを設定していけば良いと思います。 「値集合ソース」に「国別」データベース(テーブルですよね?)の「国名」と「州名」を指定します。 次に、「書式」タブの「列数」を「2」にして、「列幅」を「州名」が0cmになるように指定します。つまり、「国名」、「州名」の順で「値集合ソース」を指定している場合は、「3cm;0cm」と「列幅」を指定します(1番目の値はコンボボックス選択時のデータ表示幅なので、お好きな値をどうぞ)。 そして、「イベント」タブの「クリック時」で「イベント プロシージャ」を選択し、「…」ボタンをクリックします。すると、コードが書かれたウィンドウが開かれます。ここには以下のように記述します。 Private Sub 【「国名」コンボボックス名】_Click() 【「州名」テキストボックス名】.Value = 【「国名」コンボボックス名】.Column(1) End Sub 1行目(Private~)、3行目(End Sub)は自動で書かれているはずなので、2行目を書き足してください。【】でくくられた部分は、imu_kaさんが付けた名前を入れてください。 コードが書かれたウィンドウを閉じて、フォームを保存し、実行してみてください。 これで、「国名」コンボボックス選択時に自動的に「州名」テキストボックスに値がセットされるはずです。

関連するQ&A

  • AccessのVBAにおいて,アクセスフォームに表示されている「値」を

    AccessのVBAにおいて,アクセスフォームに表示されている「値」を変数の中に格納したい。  例えば,オートフォームの単票形式でフォームを作成した場合,「番号」「製品」といったフィールドが2個あるテーブルを使うと,「番号」「製品」という名前のテキストボックスが2個ほどできます。 (フィールド名やテキストボックス名は問題ではありません。) このフォーム上に「ボタン」を配置し,このボタンをクリックした時に,「製品」というテキストボックスの内容を,メッセージボックスで表示させたい。 MsgBox (Me.製品.Text) と書いてもエラーとなります。 実際には,このフォームで欲しいデータを見つけた時,ボタンクリックで,テキストボックスに表示されている内容をグローバル変数に格納したいのですが,方法が分かりません。 Access 初心者です。どなたかよろしくお願いします。

  • Accessのフォームで…

    Access 2010のフォームのリストボックスで、あるテーブルのフィールドの値を選択した場合に、同じテーブルの同じレコードにある違うフィールドの値を、テキストボックスに読み込みたいのですが、どうすれば出来ますでしょうか? VBAのサンプルソース等でも構いません。回答お願いしますm(_ _)m

  • Accessで、フォームからフォームへ値を引き継ぐやり方

    フォームからフォームへ値を引き継ぐやり方を教えて下さい。 たとえば、フォームAのテキストボックスに対して取引先コードを入れるような場合に、 取引先検索専用画面(フォームB)で検索して、選択したレコードのデータをフォームAのテキストボックスに入れたいのです。 心優しい方、宜しくお願いいたします。

  • Accessのフォームについて教えて下さい

    Access 2010のフォームについてお教え下さい。 テーブルにはテーブル名T1、フィールド「ID」、「Price」というテキストボックス。2フィールドがあります。 テーブルの各データは、 ID,Price 001,100 002,200 003,300 フォームにはにフォーム名F1、「cmb」というコンボボックスと、「price」というテキストボックスが配置されています。 「cmb」のデータは値集合ソースで、「SELECT T1.ID FROM T1;」と指定しています。 「cmb」で選択したデータのプライスを「Price」テキストボックスに表示したいと思います。 例えば、「001」を選択したら、「100」と表示されるようにしたいと思います。 色々調べているのですが、どうやってやるのかわかりません。どのように実現したらよろしいでしょうか? よろしくお願いいたします。

  • Access フォームからの検索について

    初歩的な質問で申し訳ありませんが教えて下さい。 Access2000を使っています。 フォームに作ったテキストボックスに、入力した値又は文字と、特定のフィールドと比較し一致した場合にそのレコードをフォームに表示する方法はないでしょうか? いろいろと、web上のQ&Aなども見ましたが、思った動作をしませでした。 考えているのは、   ・テキストボックスにある値を入力し、『Enter』を押すとテキストボックスに入力した値と特定のフィールドと一致したレコードをフォームに表示 ・一致しない場合はメッセージボックスで一致しない旨を表示 です。 ・完全一致のみ表示 VBAでの動作を考えていますが、合わせて他の方法があれば教示頂ければと思います。 以上、お手数をお掛け致しますがよろしくお願い致します。

  • ACCESSでフォームを作ってるのですが

    宜しくお願いします。 ACCESSのフォームでクエリのフィールドを テキストボックスに表示させたいのですが、 テキストボックスのプロパティのどこを いじればよいのでしょうか? 教えてください。

  • Accessのフォームにて

    Accessの配達管理のフォーム(表形式、ある条件にて抽出済み)にて ●日付 ●顧客ID  ・  ・ ●配達者CD 上記のフィールドがあるとします。 このフォームのヘッダー部分に非連結のテキストボックスA、Bを作成し、 テキストボックスAに配達者CDを入力すると、 テキストボックスBに配達者名が表示される。 フッター部分に「印刷」ボタンを作成し、これをクリックすると、 フォーム一覧の配達者CDにヘッダー部分のテキストボックスAの 配達者CDが入力されるというシステムを作りたいのですが、 テキストボックスAの配達者CDを参照させて、テキストボックスBに 配達者名を表示させるというのがうまくいきません。 テーブルにて、配達者マスタ ●配達者CD ●配達者名 は、作成しています。 よろしくお願いいたします。

  • C# 別なフォームへ値を渡す (初心者です)

    メインのフォームからサブのフォームを呼び出して、 サブのフォ-ムからさらにクラスを呼び出し、 クラスからメインのテキストボックスのテキストに書き込むプログラムを作成中です。 ですが、テキストボックスがパブリックにも関わらず、表示されません。 デバックで見る限り、テキストボックスのテキストには値が入っているのですが、 フォームを見ると表示されていません。 知恵をお貸しください。

  • ACCESSのフォームとテーブルの連携について

    ACCESSのフォームとテーブルの連携について 説明がややこしくて大変申し訳ないのですが、教えてください テーブルが1つあります。 そのテーブルを元にフォームが作成されています。 そおフォームの一つのフィールド((コンボボックス)→[テスト]フィールド名とします)でOK と NG と選択できるように値集合ソースを設定しています。 そしてここからが本題なのですが、 そのフォーム上では使用しない(見せたくない)フィールド([いろは]フィールド名とします。)がテーブルに1つあるのですが 例えばフォームの[テスト]に仮に OK と選択して保存したら、 テーブルの[いろは]に 快調 と自動反映させることは可能でしょうか?

  • Access2003で質問

    (1)テーブルで「氏名」、「住所」のデータベースを作成。 (2)フォームで「氏名」、「住所」のテキストボックスを作成 (3) (2)で作ったフォームで(1)で作ったデータベースを表示させたい のですが、(2)のテキストボックスで「#Name?」と表示されてしまいます。 (1)で作ったデータベースを(2)で作成したテキストボックスに表示させ方を教えてください。

専門家に質問してみよう