• ベストアンサー

access 検索結果をテキストボックスに表示させる方法

過去の質問見たのですが、どうもうまくできません。 現在の状況ですが、 「商品」「詳細」テーブルがあります。 各レコードの商品にはユニークなコードを付番してあります。 現在、詳細フォームを作成中です。 この、詳細フォーム上にテキストボックスを作成、コード入力をします。 次に検索ボタンを押した時、同じ詳細フォーム上の「名称」「規格」・・などのフィールドに商品テーブルの内容を自動入力させたいのです。 意味、わかりますでしょうか。 なんか、色々試して混乱してきてしまいました。 初心者です。よろしくお願いします。

  • htsc
  • お礼率100% (9/9)

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

始めのテキストボックスをコンボボックスにすれば簡単です。 コンボボックスの 2 列目のデータの値を取得する方法 http://support.microsoft.com/default.aspx?scid=kb;ja;879798 それ以外だと、検索ボタンのクリックイベントで フィールド名=Dblookup("フィールド名","テーブル名","[コード]='" & Me.テキストボックス名 & "'") で各フィールドに値をセットになります。

htsc
質問者

お礼

商品データが1000件をゆうに超えているので、コンボボックスで選択は避けたかったのです。 教えて頂いた方法DLookup(Dblookupとなっていたのでエラーとなり少し悩みましたが)でうまくいきました。 これまでは他のフォームにデータを受け渡したりしてややこしいことになってました。 これは便利です。目からうろことはこういう事を言うのですね。 ありがとうございました!!

その他の回答 (1)

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

#1の方の書いてあるようにコンボボックスを使うのが簡単です。 コンボボックスを作る際にウィザードが出ますので詳細テーブルを指定し順次進めれば出来ます。 例えば ウィザードで詳細テーブルからコード・名称・規格・単価を選択しコンボボックス自体はコードを保存するとして フォーム上の名称・規格・単価の各テキストボックスにレコードの内容を表示させるには コンボボックスの更新後処理でコンボボックス名をコンボ1とした場合 Private Sub コンボ1_AfterUpdate()  名称=コンボ1.Column(1) 規格=コンボ1.Column(2)  単価=コンボ1.Column(3) End Sub で各テキストボックスに表示させることが出来ます。 コンボの列幅・行数等はプロパティで設定できますので試してみてください。

htsc
質問者

お礼

ありがとうございます。 コンボボックスの使い方も勉強になりました。 今回はDLookupを使うこととさせていただきました。 また何かわからないことがあったらお願いします。

関連するQ&A

  • Accessのフォームの詳細カテゴリーでのテキストボックスについて

    Accessで以下のようなフォームを作成しました。 -------------ヘッダー---------------------------- [名前] [所属コード] [ 詳細 ] -------------詳細-------------------------------- あいう [ ] [ ] かきく [ ] [ ] さしす [ ] [ ] 名前と所属コードはテーブルにフィールド定義しています。 ここで、所属コードが入力されると、そのコードからほかの テーブルを検索し詳細に内容を出力しようとしているのですが 詳細に値をセットすると全レコードの詳細のテキストボックス に内容がセットされてしまいます。 「あいう」の所属コードが入力されたら「あいう」の詳細テキスト ボックスのみに値を入れることはできないのでしょうか? やはり、新たにクエリを作って詳細を紐付けるか「詳細」を同じ テーブルのフィールドとして定義するしかないのでしょうか? ご教授願います。

  • Accessコンボボックスについて(初心者)

    例えば以下のような2フィールドのテーブルがあり 商品コード 商品名 1111  パソコン   ・     ・   ・     ・ フォームでひとつのコンボボックスを作る際このテーブルを参照し、2フィールドとも表示され、なおかつ入力出来るようにしたいのですが・・。 表示はするものの入力となると商品コードのフィールドのデータしか入力出来ません。 要は商品コードを入力すれば同じレコードの商品名が入力出来るようになれば良いので、別のやり方があればかまわないのですが・・。 良きアドバイスをお願いします。

  • Access テキストボックスのフォームデザイン変更について

    はじめまして。最近になってAccessの基本の「キ」を勉強し始めました。 サイトを見ながら、課題になっているデータベースを作成しているのですがその中で、引っかかってしまった 下らない操作があります;; フォームデザインにて、「テキストボックスを追加して下さい」という指示があったのですが ツールボックスから「テキストボックス」を選択して、フォームに乗せると、下記のようになります。 尚、< > ←これは、フィールドの名称?みたいなもので、[ ] ←これが入力フォームみたいなものです。 フォームヘッダー ------------------ <商品CD> <商品名> <単価> <数量> <テキスト10> [非連結] <備考> 詳細 ------------------ [商品CD]    [商品名]   [単価]   [数量]                    [備考] <テキスト10>というのと、[非連結]というのが新しく追加されたテキストボックスなのですが、 フィールドで言う名称と、実際の入力フォームが横並びになってしまっています。 これを、他と同じように、名称はヘッダーに、入力フォームは詳細に置きたいのですがどのようにすればいいのでしょうか? プロパティを見てみたり、ShiftやCtrlやAlt等を押しながらも試しましたがどうにも出来なくてかなり困ってします…(>_<) 検索もしたのですが解決方法がわからず、どのようにしたらいいかご存知の方いらっしゃいましたらご教授願います。 よろしくお願いいたします。 (尚、この文章はフォントがMSPゴシックで作成しているのでそれ以外の方は上の図がかなりずれて見えると思います。すみません)

  • AccessのフォームのテキストボックスにLOOKUPで表示したい

    かなり初心者です。 Accessに【顧客テーブル】と【担当者テーブル】を作成しました、それぞれに【担当者コード】というフィールドを作っています。この【顧客テーブル】に顧客情報をフォームで入力していきたいのですが、顧客テーブルの【担当者コード】フィールドに担当者コードを入力した際、【担当者テーブル】の担当者名がExcelのLOOKUPと同じように表示できると思ってやりましたがうまくいきません。 テキストボックスのコントロールソースに =VLOOKUP([担当者コード](フォームのテキストボックスの名前),[T_担当者テーブル],[T_担当者テーブル]![社員名])・・・と入れたら、#Name?エラーが出ます。 Lookupは使えませんか?他に方法ありますか? よろしくお願いします。

  • テキストボックスにクエリ結果を表示させたい

    フォームにテキストボックスAがあり、そこに入力した文字(下記テーブルのフィールド1の文字)をクエリーの「抽出条件」にし、同じフォーム上のテキストボックスBに表示しようと思っています。 クエリを開くとパラメータの入力を求めてきて、入力するとうまく抽出されます。 テーブルは フィールド1|フィールド2   A   |  10   B   |  20   C   |  30   D   |  40 のような簡単なものです。 テキストボックスBのコントロールソースに 「=[○×クエリ]![フィールド2]とやっても「#Name?」と表示されてしまいます。 どのようにやればよいのでしょうか?

  • AccessのフォームのテキストボックスにLOOKUPで表示したい

    かなり初心者です。 Accessに"顧客テーブル"と"担当者テーブル"を作成しました。この顧客テーブルに顧客情報をフォームで入力していきたいのですが、顧客テーブルの担当者コードフィールドに担当者コードを入力した際、担当者テーブルの担当者名がExcelのLOOKUPと同じように表示できると思ってやりましたがうまくいきません。 テキストボックスのコントロールソースに =VLOOKUP([担当者コード],[担当者テーブル]![社員コード],[担当者テーブル]![社員名])・・・と入れたら、#Name?エラーが出ます。 Lookupは使えませんか?他に方法ありますか? よろしくお願いします。

  • アクセスVBA テキストボックス入力値からの参照

    マイクロソフトアクセス初心者です。 現在、アクセスでデータベースを作成しています。 2つのフォーム(フォーム(1)、フォーム(2))、2つのテーブル(入力情報、マスタ)、2つのテーブルをもとにした1つのレポートを作成しています。 『フォーム(1)』のテキストボックスAに入力された値を、Dlookup関数で『フォーム(2)』のテキストボックスBに数値を参照しています。 『フォーム(2)』のテキストボックスに表示された値を、『フォーム(2)』に設置されたコマンドボタンをクリックすると、VBAで『テーブル入力情報』のフィールドAに入力されるようにしています。フィールドAについてのマスタとなるテーブルが『テーブルマスタ』です。 リレーションシップを設定せず、ただ単に値を入力することは出来るのですが、レポートを作成するにあたって、『テーブル入力情報』と『テーブルマスタ』のフィールドAに1(テーブルマスタ)対多(テーブル入力情報)のリレーションシップを設定したいと思っています。 リレーションシップを設定し、テキストボックスBに表示された数値を『テーブル入力情報』に入力する際、『テーブルマスタ』から該当するデータを選択して『テーブル入力情報』に入力されるようにしたいと思うのですが、現状では、リレーションシップを設定すると、入力値が真っ白になってしまい、レポートにも入力したデータが反映されません。 ちなみに、入力する際はフィールドA=Me.テキストボックスBのようにしています。 何か良い解決策がありましたら、是非教えていただけませんでしょうか? 分かり難い文章かと思いますが、どうぞ宜しくお願い申し上げます。

  • Access コンボボックスを使って抽出

    Access2000・Windows2000を使用しています。 レコードの抽出をしたいと思います。テーブルは1つ、フィールドには日付・商品名・業者名・単価・・・とあります。フォームで「商品名から抽出(コンボボックスから商品を1つ選ぶ)」または「業者名から抽出(コンボボックスから業者を1つ選ぶ)」(コンボボックスから商品を1つ選ぶ)出来るようにし、なおかつ今月のレコードのみ表示させたいのですが、まずそのテーブルを1つ作成した時点でつまづいてしまっています。 どなたかご教授お願いします。

  • テキストボックスの入力で困っています

    アクセス2010で請求書を作成しています 請求データベースの入力フォーム上の(商品コード)テキストボックス(非連結)に入力して、その値を使い、Dlookupで商品コードデータベースから商品名を入力フォーム上の(商品名)テキストボックスに表示させています 商品コードデータベース上で商品コードを長整数型で設定してあります 商品コードには、40011などの整数型の範囲を超えたデータがあります いろいろな理由から、商品コードは主キーに設定せず、インクリメント型でもありません 入力フォーム上の(商品コード)テキストボックスに整数型の範囲(-32768から32767)なら正常に動作します しかし整数型の範囲を超えて入力すると、「このフィールドに入力した値が正しくありません」が表示され、先に進めません 申し訳ありませんが、何か打開策をお知らせいただけると幸いです

  • 【Access】 テキストボックスへの入力

    毎回お世話になっております。 現在、フォームの編集をしております。 フォームはヘッダー部分と詳細部分に分かれており、ヘッダーの部分に「テキストボックスAに取引先コードを入力し、検索ボタンを押すと、同ヘッダーのテキストボックスBに該当する取引先情報が表示される」仕組みになっています。 詳細の部分には、新規の顧客情報を入力するテキストボックスが並んでおり、各レコードをテーブルに保存できるようになっています。 現在解決したい点なのですが、ヘッダーのテキストボックスBに表示された取引先情報を、ボタンを押す等の何らかの方法で、詳細の中のテキストボックスCに入力されるような仕組みが出来れば、と考えております。 (テキストボックスCのコントロールソースを変更する方法も考えましたが、各項目のソースはクエリとリンクしているので、この方法は止めました。) アイディアをお持ちの方、アドバイスを頂けますと幸甚です。 宜しくお願いします。

専門家に質問してみよう