• 締切済み
  • すぐに回答を!

Accessコンボボックスとテキストボックス連携

Access初心者です。よろしくお願い致します。 コンボボックスとテキストボックスの連携がうまくいかずに苦戦しています。 Accessオブジェクト <テーブル>  T_住所録   ∟ID、名前、住所、電話番号、アドレス  T_住所確認テーブル   ∟名前、住所 <クエリ>  Q_ラベル_住所録  Q_住所確認テーブル  Q_入力_住所確認テーブル <フォーム>  F_入力_住所確認テーブル   ∟コンボボックス(名前)、テキストボックス(住所) とあり、 「Q_住所確認テーブル」では、 「T_住所録:名前」=「T_住所確認テーブル:名前」 「T_住所録:住所」=「T_住所確認テーブル:住所」 を、つなげてあります。 フォームの「F_入力_住所確認テーブル」では、コンボボックスをクリックすると名前が選択でき、選択するとその名前の人の住所がテキストボックスに表示されるようにしたいのですがうまくできません。 ネットや書籍などを見ていろいろ試したのですが、ことごとく失敗しています。 「Me」とかダメでした。 ExcelのVBAは経験があるのですが、Accessはデータベースを少々編集した程度なので知識は浅いです。 なのでとても初歩的な質問かもしれませんが、どなたかご教授いただけますと幸いです。 とても勝手ながら、すごく急いでいて、どうにかしたいともがいているのですがどうにもならず焦っています。どうぞよろしくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数1700
  • ありがとう数1

みんなの回答

  • 回答No.3
  • keda3
  • ベストアンサー率33% (1/3)

コンボボックスで名前の選択ができて、テキストボックスに名前が抽出できているのでしたら、、 コンボボックスのプロパティーで「すべて」タグ の列数 を2にして 名前と住所が表示できるようにしておきます。 そして おなじくプロパティーの 「データ」タブの連結列を 2にすると、2列目の 住所がテキストボックスに表示されます。 「データ:タブの連結列を 1にすると 1列目の 名前が表示されます。

共感・感謝の気持ちを伝えよう!

関連するQ&A

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

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

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

    こんにちは、Accessのフォームにコンボボックスを設置して、以下のような事ができないかと悩んでおります。よろしくお願い致します。 フォーム内には、部署名・氏名・住所・商品名など、クエリの列名をテキストボックスにて設置してあります。 フォーム内に別の(客先名専用)クエリでコンボボックスを設置し、コントロールソースには会社名を選択しています。 フォームビューでそのコンボボックスからひとつの会社名を選択すると、別の(客先名専用)クエリからでも、フォーム内にあるテキストボックス名と同じ列名であればテキストボックスに表示が可能ではないかと思っています。が、現在の状態だとコントロールソースで選択した会社名のみの表示だけです。どこかで設定する機能があるのか難しいVBでの設定しかないのか、それもわかりません。是非、この方法がおわかりになられる方ご教示下さいます様お願い致します。わかりずらい説明で申し訳ございませんが、よろしくお願い致します。

  • Access2003のコンボボックスで

    テーブルにある ID 名前 誕生日 住所 データをフォームで IDをコンボボックスで選択し テキストボックスA,B,Cに 名前、誕生日、住所を表示させたいのですが どの様な処理を行なえばよろしいのでしょうか?

  • 回答No.2
  • ky2605
  • ベストアンサー率100% (2/2)

> サンプルコードは「Dim cn As New ADODB.Connection」のところでまずエラーになってしまいます。 エラーは判りますか?  ユーザー定義型は定義されていません。 などのエラーでしたら、 icrosoft ActiveX Data Objects ** Library が参照されているか確認ください。 Access2010の環境だと、6.1があると思います。 http://www.tsware.jp/tips/tips_334.htm テスト環境で、Access2010はあるので動作試験してみましたが、サンプルコードはそのまま動作しましたので、これの参照がクリアできれば動作するかと思います。 IDと連携していない件ですが、コンボボックスに名前が出てくるのですから、それでテーブルを検索してこれると思います。 コンボ0.Column(n) ←これのnの値を0から増やしてみてください。 どこかで、値としてコンボボックスに表示されているそのものが出てくると思います。 もし、1で名前が出るようなら sql = "SELECT [住所] FROM [T_住所録] WHERE [名前] = """ & コンボ0.Column(1) & """;" として rs.Open sql, cn, adOpenKeyset, adLockBatchOptimistic へ流せば、結果が返ってきて、 テキスト2.Value = rs![住所] で住所が表示されるかと思います。

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • ky2605
  • ベストアンサー率100% (2/2)

Accessのバージョンが書かれていないので、勝手に2000で回答させていただきますが… 方法として、コンボボックスをクリックした時のイベントに、VBAを仕込むのはどうでしょうか? ----------------------------- Private Sub コンボ0_Click() Dim sql As String Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Set cn = Application.CurrentProject.Connection sql = "SELECT [住所] FROM [T_住所録] WHERE [ID] = " & コンボ0.Value & ";" Debug.Print sql rs.Open sql, cn, adOpenKeyset, adLockBatchOptimistic If rs.EOF = True Then テキスト2.Value = "住所データありません" Else テキスト2.Value = rs![住所] End If End Sub ----------------------------- コンボボックスの名前、住所を表示したいテキストボックスの名前は、そちらの環境に合わせて変えてください。 流れとしては、 1.クリックしたコンボボックスから条件を拾い出して、問い合わせSQLを作成 2.T_住所録テーブルからその条件で住所のレコードを抽出 3.住所を表示したいテキストボックスにその値を格納 とすれば、希望の動作になるのではないでしょうか? コンボボックスは名前とIDが連携している条件になっていますが、もし、現状のコンボボックスは名前だけで、IDと連携していないのでしたら WHERE [名前] = """ & コンボ0.Value & """;" とすれば、名前でも検索できるかと思います。 ハズしてたら申し訳ないです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。Accessのバージョンは「2010」です。ご提供いただいたサンプルコードは「Dim cn As New ADODB.Connection」のところでまずエラーになってしまいます。解決方法をご教授いただけますと幸いです。また、IDとは連携していません。

関連するQ&A

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

    こんにちは、Accessのフォームにテキストボックスとコンボボックスを設置して、以下のような事ができないかと悩んでおります。 フォーム内には、テキストボックスとコンボボックスが設置してありまして、コンボボックス内にDB(会社名テーブル)から取得した全ての会社名が入っています。 しかし、そのレコード数が300件近くあるため、コンボボックス内から探し出すのに手間が掛かります。 そこで、コンボボックスの隣にテキストボックスを設置し、テキストボックス更新後に会社名テーブルの検索を行い、条件に合った会社名だけをコンボボックス内に入れることを考えているのですが、上手く行きません。 動作のイメージとしては下記のようになります。 (1)初期表示時はテキストボックス内に何も入力されていないので、全レコードがコンボボックス内に表示される。 (2)テキストボックスに「有限」と入力して、テキストボックスからフォーカスを移動させると、コンボボックス内に「有限」が会社名に含まれているレコードのみが入っている。 (3)テキストボックスを空白に戻すと、コンボボックス内には全レコードが表示 以上、どなたかご教授よろしくお願いします。

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

    フォームにテキストボックスを3ケ用意し、テキストボックス名をtxt1,txt2,txt3としました。これにコマンドスイッチを作成し、機能を再クエリと設定しました。 フォームのサブフォームに再クエリの結果を表示するようにしました。 クエリのテキストボックス1の抽出条件は 条件  [Forms]![フォーム名]![txt1] または [Forms]![フォーム名]![txt1] Is Null    [Forms]![フォーム名]![txt1] Is Null テキストボックス2の抽出条件は 条件  [Forms]![フォーム名]![txt2] Is Null または [Forms]![フォーム名]![txt2]  [Forms]![フォーム名]![txt2] Is Null テキストボックス3の抽出条件は 条件  [Forms]![フォーム名]![txt3] Is Null または [Forms]![フォーム名]![txt3] Is Null [Forms]![フォーム名]![txt3] と設定し、テキストボックスにデータを入力し実行すると 正しい結果が得られるのですが、テキストボックスをコンボボックスに変更し、コンボボックス名をtxt1,txt2,txt3 とすると、抽出されません。 コンボボックスをテキストボックスのように扱うのには どうするのでしょうか。教えてください。

  • 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)フォーム「印刷」のリストボックスは全レコードが表示されている。

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

    ACCESSでコンボボックスを使っているときに たまに入力できなくなってしまう時があり困っています。 例えばA,B,Cという3つのデータを選択できるコンボボックスがあり、 現在、Aが選択されていてBに変更しようとした時に コンボボックスの表示部分が突然空欄(または選択されているのに表示されていない)になってしまいます。 その後、どれを選択してもコンボボックスには何も表示されなくなってしまいます。 この現象が起こるとなぜか同じフォーム内のボタンなどにも不都合が起こるようになってしまいます。 (テキストボックスのデータを削除するボタンがあるのですがおしてもなにも起こらなくなってしまいました) いろいろ試しているのですが全く原因がわかりません。 どのようなところに原因がありそうかなどあれば教えてください。 宜しくお願いします。

  • Accessレポートでコンボボックスが動かない

    Access2010のレポートでコンボボックスを使いたいのですが、コンボボックスが正しく表示されず困っています。 表示されないというのは、コンボボックスのリストを選択する逆三角形が表示されず、またリストも全く表示されません。つまりテキストボックスのように空のの四角い箱が表示されてしまいます。 表示したいリストはあるテーブルから引っ張っているのですが、全く同じことをリストボックスでやろうとするとすべての項目がうまく表示できることは確認しました。 またフォームの方ではコンボボックスをから項目が選択できることも確認できています。 レポートではコンボボックスが使えないような仕様になっているのでしょうか? お分かりになる方教えていただけますでしょうか?

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

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

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

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

  • ACCESS コンボボックス 抽出 テキストボックスに表示

    初めての質問を投稿させていただきます。l ACCESSのVBAにて分からないことがあるので、 質問を投稿させていただきました。 以下のようなテーブルがあります。 名称:番号:管理番号:価格 cake|NO.1|C1|200 cake|NO.2|C2|200 chocolate|NO.1|C3|300 chocolate|NO.2|C4|300 chocolate|NO.3|C5|300 cookie|(空白)|C6|100 フォーム上に、コンボボックスが二つ設置されており 最初のコンボボックスでは、cake、chocolate、cookieを選択することができます。 また、二つ目のコンボボックスでは最初のコンボボックスで選択した名称に対する番号を選ぶことが出来ます。 ------------------以下が疑問点です------------------------- このフォームにはそれ以外にテキストボックスが設定されています。 名称と番号を設定した後に管理番号(重複なし)をテキストボックスに表示。 その後、管理番号を元に価格もテキストボックスに表示したいと考えておりますが、どのようなプログラムを組めばよろしいでしょうか?

  • VBでコンボボックスとテキストボックスの連係

    VBでフォームにデータコンボボックスとテキストボックスを一つづつ作り、データコンボボックスで値を選択し、その値に対する値をテキストボックスに表示させたいんですがどうすればいいでしょうか? データコンボボックスで選択する元になるテーブルは ID | 商品 1 | みかん 2 | ばなな 3 | りんご と、上記のような形のテーブルをもちいています。 例えばデータコンボボックスで「1」を選択した場合テキストボックスに「みかん」と表示させたいです。

  • Accessで家計簿を作っているのですが・・・(再

    いつもおせわになっております。 現在、Accessで家計簿なるものを作っているのですが・・・ まずマスタテーブルから入力データが存在する日付をクエリで抽出し、それをフォームのテキストボックス1のコントロールソースに指定して、そのテキストボックス1に表示されている日付を元にフィルタ機能を使ってその日に入力されたデータ一覧をサブフォームで表示するという方式を取っているのですが・・・(解かり難くてすみません この方式だとクエリのレコードを移動するとサブフォームの表示内容も対応してその日のが抽出されます。 しかし、データがたくさん蓄積されてくると一日ずつ(1レコードずつ)移動すると手間がかかってイライラしそうです。 で、同じフォームにコンボボックス1を追加し、上記にもあるマスタテーブルから入力されている日付を抜き出した日付一覧を取得してあるクエリを値集合ソースに指定してみました。 クリック時のイベント等もちゃんと設定したのですが、うまく動作してくれません。 コンボボックス1をクリックして選択したら、クエリをコントロールソースとするテキストボックス1の表示内容がコンボボックス1で選択されたものに変更される、みたいなことって出来ないのでしょうか? コンボボックス1だけにしてテキストボックス1を消すとコンボボックス1で選択した日付の内容をサブフォームで表示することは出来たのですが、それだとコマンドボタンを押して次のフィールドに移動し、かつコンボボックス1の表示内容も自動変更というのが出来なかったので・・・ 長文でスミマセンが、どなたかお知恵の拝借お願いします。