• 締切済み

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

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

みんなの回答

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

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

  • ky2605
  • ベストアンサー率100% (2/2)
回答No.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![住所] で住所が表示されるかと思います。

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

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 & """;" とすれば、名前でも検索できるかと思います。 ハズしてたら申し訳ないです。

goronyangogo55
質問者

お礼

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

関連するQ&A

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

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

  • Access2003のコンボボックスで

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

  • コンボBOXとテキストBOXの連携の仕方

    コンボBOXとテキストBOXの連携の仕方を教えてください。 データテーブルに ID 色 1 赤 2 白 3 黄 4 青 というデータがあります。 メインフォームのID用コンボBOXにデータテーブルのIDリストを表示して選択できるように設定しました。 IDコンボBOXの横に、色用テキストBOXを作って、コンボに「1」と入れたらテキストBOXに「赤」と自動的に表示させたいのですがどのようにすればよいか教えてください。

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

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

  • ACCESS2000 コンボボックス

    こんにちわ。 コンボボックスを教えて下さい。 テーブル T_分類(1) ・分類(1)  オートNo ・分類(1)名 テキスト テーブル T_分類(2) ・分類(2)  オートNo ・分類(1)  数値 ・分類(2)名 テキスト 2つのテーブルを作成して、フォームも作成しております。 入力する時、分類(1)も(2)テキストボックスで選ぶようにしています。 それで、分類(1)を選ぶと、分類(2)のテキストボックスに分類(1)の分しか表示しないようにしたいのですが・・。 どのようにすればよいでしょうか? 初心者な者で、分かりやすく教えていただければ有りがたいです。

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

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

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

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

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

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

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

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

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

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

専門家に質問してみよう