• ベストアンサー

データ更新後にDlookupによるデータ表示

困っています。フォームで、フィールド[氏名コード]に入力したら、マスターテーブル「名前表」(フィールド名:[名前コード],[名前])を参照して、テキストボックス[氏名]に名前を表示するようにしたいと思います。テキスト[氏名]のデータプロパティに =Dlookup([名前],[名前表],[氏名コード]=[名前コード])としたら、最初は、うまく表示されますが、2回目にデータ更新したら、すぐに更新後のデータが表示されません。一度、フォームを閉じて、また開いたら更新後のデータが表示されますが・・・・更新後のイベントなど使って、すぐ表示されるようにできないでしょうか?よろしくお願い致します。

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

>フォームで、フィールド[氏名コード]に入力したら、 >マスターテーブル「名前表」(フィールド名:[名前コード],[名前])を参照して、 >テキストボックス[氏名]に名前を表示するようにしたい こういうことはクエリだけでできます DLookupはクエリのような働きをする関数ですがクエリの代わりに使うものではありません 両テーブルを結合したクエリをフォームのソースにすればいいだけのことです

fusigi2
質問者

お礼

ありがとうございました。早くから回答頂いていましたが、先生のクエリをあれやこれや試しているうちに日にちが立ってしまいました。クエリでは、訂正、追加ができなくて困っていました。あれやこれや、サイトを調べているうちに解決できました。要は私の語彙説明不足でした。データを入力したら、対応するIDのマスターテーブルの項目を参照表示したかったのですが、オートコンプリートという概念を知りませんでした。ComboBoxを使う方法というのを知りまして、快適に作動するようになりました。ご教示頂き、有り難うございました。

関連するQ&A

  • 【Access97】DLookupについて

     Access97を使って今、データベースを作成していますが、行き詰まってしまいました。  まず大まかな構成を書くと… <テーブル> 【○○班データ】テーブル ・「データナンバー」フィールド ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド 【部材マスター】テーブル ・「部材名」フィールド ・「部材ナンバー」フィールド ・「部材コード」フィールド <クエリー> 【○○班データクエリー】 「○○班データ」テーブルを元に選択クエリーを作成(全てのフィールド) <フォーム> 上記のクエリーを元に作成。 ここからが質問内容になるのですが、「部材名」をコンボボックスで入力したら、Dlookup関数をテキストボックスのコントロールソースに記述して「部材ナンバー」と「部材コード」が表示されるようにはできました。 ですが、フォームで表示された「部材ナンバー」や「部材コード」がクエリーやテーブルには反映(入力)されておらず、どうしたらいいか手詰まりになっています。 もし、対処法を御存知の方がいらっしゃったら、是非とも御教示をお願いします。 念の為にテキストボックスのコントロールソースで記述したDLookup関数を書いておきます。 「部材ナンバー」の呼び出し =DLookUp("[部材ナンバー]","[部材マスター]","[部材名]='" & [部材名] & "'") 「部材コード」の呼び出し =DLookUp("[部材コード]","[部材マスター]","[部材名]='" & [部材名] & "'")

  • AccessのDLookupについて

    AccessのDLookupについての質問です。 いろいろ調べたのですがわからなかったので教えてください。 テーブル「社員」…ID、社員コード、氏名、所属、回数 フォーム…テーブルと同項目 フォームで社員コードを入力すると、自動的に氏名、所属が表示されるようにしました。 しかし、所属が変更になった社員氏名がうまく表示できません。 ~例~ ID_社員コード_氏名 _所属_回数 1_1234   _山田 _東京_1 2_1234   _山田 _東京_2 3_1234   _山田 _大阪_3 とあったときに、表示したいのはID_3のデータなのですが、ID_1のデータが表示になってしまうのです。(回数が最大の氏名、所属を表示したい) x = Nz(DMax("回数", "社員", "社員コード=" & [社員コード]), 0) Me!氏名 = DLookup("氏名", "社員", "社員コード=" & [社員コード]) _ & " and 回数=" & x) としています。エラーは出ません。 どこが変なのでしょう? よろしくおねがいします。

  • アクセス DLookUpについて

    職員番号入力後、自動で部署コードを入力できるようにしたいのですが、このアクセスのフォームで、正常に動くフォームと動かないフォームがあり困っております。どこが悪いか御教示お願いできませんでしょうか。 -------------------------------------------------------- 使用テーブル T_職員名簿 : ID、氏名漢字、氏名カナ、部署コード、部署名 イベントプロシ―ジャ内容 Private Sub 職員番号_AfterUpdate() Me.[部署コード] = DLookup("部署コード", "T_職員名簿", "職員番号= " & Me![職員番号] & "") End Sub エラー内容 イベントプロパティに指定した式更新後処理でエラーが発生しました。 --------------------------------------------------------

  • Access2000のDLOOKUPについて

    Access2000にて収支管理のDBを作成中です。 フォームのDLOOKUPの設定についてお聞きしたいのですが、 テーブル 「00_Account code」に 「Account code」と「Account code テキスト」があります。 これを 「01_収支テーブル入力_フォーム」にて「Account code」入力時に「00_Account code」テーブルから「Account code テキスト」抽出しようと思い下記のような式を入れています。 =DLookUp("[Account code テキスト]","[00_Account code]","[Account code] =[Forms]![01_収支テーブル入力_フォーム]![Account code] ") しかしフォームにて[Account code]を入力してエンターをしても表示されず、一度フォームを閉じてから再度開くと表示されるという現象におちいっています。 これを入力→エンター時に表示させる方法はありますでしょうか? 何かの設定かと思うのですが・・・ぶつかっています。 どなたかお教え願えると助かります。よろしくお願いいたします。

  • DLookupがうまく出来ません

    アクセス2000を使ってます。 顧客台帳のフォームにCAコードのテーブルから「担当者」「リスト順」のデータを顧客台帳の営業部員コードのフィールドに営業部員コードNOを入力したら自動的に入力されるようにしたいのですがうまく出来ません。 担当者=DLookup("担当者","CAコード","営業部員コード="&営業部員コード) リスト順=DLookup("担当者","CAコード","営業部員コード="&営業部員コード) で設定しましたが自動入力されません。 ちなみに担当者・営業部員コード等はテキスト型ですが、営業部員コードにマウスを移動した時にはEmpty値って出ます。 どのようにしたら良いのでしょうか? 私は、アクセスは全くの初心者ですので詳しく説明していただけると助かります。 宜しくお願い致します。

  • Dlookupで結果が表示されたりされなかったりする

    いつもお世話になっております Access2007を最近使い始め、以下のようなことをしようとしております。 フォームを作成して、IDという名前のついたリストボックス内にテーブルのデータが2列分表示されるようにしました。 <テーブル> ID 名前 詳細 1 山田 東京都 2 佐藤 神奈川県 3 田中 千葉県 その後、同じフォーム上にテキストボックスを作成して リストボックスで選択したデータの詳細部分が表示されるように テキストボックス内に以下の式を入れました。 =DLookUp("[詳細] ","テーブル","[ID]= " & [Forms]![フォーム]![ID]) すると、テキストボックス内に結果が表示される行とされない行があります。 式のどこかが悪いと思うのですが、どこが悪いのか分かりません。 お手数ですが、ご教示願えればと思っております。 足りない情報がありましたら提示いたしますのでお申し付けください。 よろしくお願いいたします。

  • アクセス Dlookup関数の表示が更新されない

    access2000です。 データ入力用のフォームでDlookupを使い、あるテキストボックスに商品番号を入力すると、隣のテキストボックスに、商品番号からテーブルを検索して該当する商品名を表示するようにしました。 商品番号を入力するテキストボックスには更新後処理でリクエリするマクロを設定しています。 ところが、番号を入力してenterを押し次のテキストボックスにカーソルが移動しても商品名が出るはずのテキストボックスに何も表示されません。 しかし、クリックして商品名のテキストボックスをカーソルを移動した瞬間にちゃんと表示されるのです。 今までに何度かこの方法でうまくいっているので、原因がつかめません。超初心者の質問ですがよろしくお願いいたします。

  • DLookup関数を使ってサブフォームにデータを参照させたい

    DLookup関数を使ってサブフォームにデータを参照させたい いつも大変お世話になっております。 ACCESS2003使用中の初心者です。 現在アンケートフォームを作成中なのですが、 コンボボックス(?でしょうか?)に社員IDを入力すると、 サブフォームに社員情報(所属、性別など)を表示できるようにしたいと思っております。 現在、質問表テーブル    社員情報テーブル(各テーブルはリレーションされてます)        質問入力フォーム    社員情報サブフォーム があります。 質問入力フォームの社員IDの欄にIDを入力するとサブフォームに表示されるようにしたいのですが、 DLookup関数を使うことはわかったのですが、どのように式を組み立てて良いのかがわかりません。 順番や""の使い方に悩みます。 補足情報として、社員IDは数値型、他はテキスト型の設定になっています。 申し訳ありませんが、ご教授ください。    

  • Access Dlookup関数について

    Dlookupで悩んでいます。 ExcelのVlookと違い、“数字”のコードでなければ引っ張ってこれないのでしょうか? 以下、がその内容です。 「T_得意先マスタ」の得意先コードフィールドに aaa というコードがあり、得意先名フィールドに ○○商事 とあります。 どうやってもできないのです。 なぜか、aaa ではなく、数字(例. 123)にすると出ます。 教えてください。 Private Sub 得意先コード_AfterUpdate() Dim a As Variant, b As String b = "得意先コード = " & Me![得意先コード] a = DLookup("得意先名", "T_得意先マスタ", b) If IsNull(a) = True Then Me.テキスト1.Value = "該当がありません。": Me![得意先コード] = Null Else Me.テキスト1.Value = a End If End Sub

  • マイクロソフトアクセス Dlookupの使い方

    先日、同じ質問をした者です。別角度からのトライをしてみました。 (経緯) Table1とTable2を作りました。Table1には5レコードを入力済みです。 tabale2からFoam2を作りました。で、table2のField2にDlookupの定義を書いてみました。単純に、Field1を選んだらField2がコピーされてくるだけです。(予定では・・・) Foam2でField1を選ぶ事は出来るのですが、Field2に移動しても何も表示されません。Field3に移動するとエラーがでます。debugを選ぶとdlookup分が黄色に反転してます。 参考書片手に苦戦しましたが変化無しです。アドバイスをお待ちしています! ●エラー Run-time error'3464'. datatype mismatch in criteria expression ●書いた定義 Private Sub Text6_Click() If Not IsNull(bakk) Then Field1 = DLookup("Field1", "Table1", "Field1=" & Field1) End If End Sub ●テーブル定義 Table1 Field1 (Text) Fleld2 (Text) Field3 (Text) Table2 Field1 (Table1のField1をコンボボックスで選択) Field2 (Table1のField2を自動で表示したい) Field3 (自分でテキストを入力) データタイプはTextで10文字指定です。

専門家に質問してみよう