ACCESSでフォーム入力内容から自動で表示させる

このQ&Aのポイント
  • Accessを使用して、フォームに入力した銀行コードと支店コードに一致する銀行マスタテーブルの支店名を自動的に表示させる方法について教えてください。
  • 顧客情報を管理するAccessデータベースには、顧客テーブルと銀行マスタテーブルがあります。銀行コードと支店コードをフォームに入力すると、該当する銀行マスタテーブルの支店名を表示させる方法を教えてください。
  • Accessのフォームで銀行コードと支店コードを入力すると、対応する銀行マスタテーブルの支店名を表示させたいです。重複する支店コードがある場合にも正しく表示される方法を教えてください。
回答を見る
  • ベストアンサー

ACCESSでフォーム入力内容から自動で表示させる

顧客の口座を管理するものをAccessで作成しています。 顧客テーブルに氏名等の情報があり、別に銀行マスタテーブルとして金融機関の情報がID、銀行コード、銀行名、支店コード、支店名、と入力されているものがあります。 銀行マスタテーブルは以下の形です 銀行コード 銀行名 支店コード 支店名 1 みずほ 1 東京営業部 1 みずほ 4 丸の内中央 1 みずほ 5 丸の内 5 UFJ 5 大阪 あらかじめ、氏名等の情報は入力してあり、これから口座情報を登録していくのですが、フォームに銀行コード、支店コードを入力した際に、その下に配置したテキストボックスに銀行名、支店名を表示させたいと考えています。 銀行コードの方は値が重複しても対応する銀行名は同じなので =DLookUp("[銀行名]","銀行マスタ","[銀行コード] = " & [Forms]![H25]![銀行コード]) でなんとかできたのですが、支店コードは各金融機関毎に割り振られ、重複するものがあるため最上段のものが表示されてしまいます。(UFJの支店コード5を表示させたいのに、みずほの支店コード5が出てきてしまう。) そこで、複数条件で検索できるよう以下のようにしてみたのですが、うまくいきませんでした。 =DLookUp("[銀行名]","銀行マスタ","[銀行コード] = " & [Forms]![H25]![銀行コード]' And 支店コード = #" & [Forms]![H25]![支店コード] "#") イメージとしては、そのフォームに入力した銀行コードかつ支店コードが一致する銀行マスタテーブルの支店名を、フォームに配置したテキストボックスへ表示させれればいいのかなと考えてみたのですが。(上の例で言うと、銀行コードが5で支店コードが5だからテキストボックスに「大阪」と出したい。) 関数でもVBAでも構いませんので、どなたかご教示ください。 よろしくお願いいたします。

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

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

=DLookUp("[銀行名]","銀行マスタ","[銀行コード] = " & [Forms]![H25]![銀行コード]' And 支店コード = #" & [Forms]![H25]![支店コード] "#") ↓ =DLookUp("[銀行名]","銀行マスタ","[銀行コード] = " & [Forms]![H25]![銀行コード] & " And 支店コード =" & [Forms]![H25]![支店コード]) では。

ryoza0130
質問者

お礼

回答ありがとうございました。 おかげさまで無事に出来ました。 "や'、#の意味など勉強し直します。

関連するQ&A

  • ACCESS フォームの入力で

    フォームの入力でコード番号を入力すると項目が自動入力出来るようにしたくて 2つ目のテキストボックスのコントロールソースに=DLookUp("[商品名]","テーブル2","[商品コード] = [コード] ")と入力したのですが 1つ目のテキストボックスに入力すると そのときは2つ目のテキストボックスは白紙で 一度フォームを閉じてから立ち上げると2つ目のテキストボックスにも入力されています。 これは閉じないと入力されないのでしょうか? 1つ目を入力した後に表示されるようにしたいのですが・・・。 よろしくお願いします。

  • Access非連結フォームから複数レコード挿入

    お世話になっております。 Access2003を使用しております。 <テーブル ”商品マスターT”> code   shouhin =========================== 1    チョコ 2    ラムネ 3    ジュース 4    団子 5    ガム <フォーム "商品入力フォーム"(非連結・単票フォーム)>      商品コード       商品名 1行目 [非連結(テキスト0)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト0])] 2行目 [非連結(テキスト1)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト1])] 3行目 [非連結(テキスト2)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト2])] 4行目 [非連結(テキスト3)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト3])] 5行目 [非連結(テキスト4)] [=DLookUp("shouhin","商品マスターT","code=" & [テキスト4])]  商品コードを入力すると商品マスターTより商品名を引っ張ってきます。 <テーブル "履歴T"> code2   shouhin2 ==============================  データは空です 上記のものがあるときに商品入力フォームで入力した行数分だけ テーブル履歴Tにレコード追加したいのですが・・・ そういったことは可能でしょうか?非連結フォームから複数レコード追加は難しいでしょうか? 以上宜しくお願いします。

  • アクセスのフォームに簡単入力の仕方(その2)

    以前「フォームにテキストボックスを2個配置しました。1個にコードを打ち込むと別のテキストボックスにそれに該当する項目を表示させたいのですがどうすればいいのでしょうか?入力したデータを保存するテーブルが1つ、コードと項目を保持するテーブルが1つ、それぞれ用意しています。」と質問したところ、コントロールソースにDLookupを入れるようにご教示いただきましたが、テーブルにデータを反映させるには、どうすればよいのでしょうか?いつも申し訳ありませんがご教示願います(涙)

  • Access2010フォーム関数からテーブル入力

    アクセス2010について過去からの質問があまりないようですので 浅学ながら質問させていただきます。 フォームのテキストボックス内にて DlookUp関数で返した値を、 "Aテーブル"へ自動で入力したいのですが、 そのような関数はあるのでしょうか? また、このような操作は Dlookupを記述しているコントロールソースから 改行でコードを入力すればよいのでしょうか? ご教示いただければ幸甚です。 よろしくお願いいたします。

  • Access97で自動入力と反映が違うテーブルの場合

    こんにちは、前の質問などでフォームへの自動入力は何とかできるようになったのですが、今度はその入力したデータを他のテーブルBに反映させたいのですが、どうしたら良いのでしょうか? テーブルA 店舗コード 店舗名 ※テーブルAの管理者は私ではなく、ネットワークで私のPCと「テーブルのリンク」でつながっています。 テーブルB 店舗コード 店舗名 商品番号 他に店の情報フィールドをいくつか作成 フォームC 店舗コード 店舗名 商品番号 他に店の情報テキストボックスをいくつか作成 フォームCで、店舗コードを入力したら店舗名が自動的に入力される方法は、フォームCのレコードソースをテーブルAにして、店舗コードの更新後処理をイベントプロシージャにして、下記イベントコードを設定しました。 Private Sub 店舗コード_AfterUpdate() Me![店舗名]=DLookup("店舗名","テーブルA","店舗コード=" & Me![店舗コード] & " ") End Sub そして、フォームの残りのテキストボックスに、店と商品に関するデータを入力し、入力した全てのデータをテーブルBに反映させたいのですが、どうしたら良いのでしょうか? 自動入力の方法でDLookupを使用したのがいけなかったのでしょうか? また、できればテーブルBは商品番号順に並びかえられているのですが、入力したら商品番号のリストの一番下に挿入されるという形にしたいのです。 どうかよろしくお願いします。

  • Access97 テキストボックスを利用したあいまい検索フォーム

    Acces97にて下記のようなデータベースを使用しております。  テーブル:銀行コード一覧(銀行コード、銀行名、支店コード、支店名、支店住所)  クエリー:Q-銀行名検索、Q-支店名検索  フォーム:F-銀行名検索、F-支店名検索 今は検索したいフィールド毎にクエリーとフォームが作ってあり、同じようなクエリーとフォームが複数ある状態です。  <クエリー>   (1)Q-銀行名検索→フィールド「銀行名」に【Like "*" & [調べたい銀行名の一部入力] & "*"】設定   (2)Q-支店名検索→フィールド「支店名」に【Like "*" & [調べたい支店名の一部入力] & "*"】設定   ・・・以下同様のクエリー複数あり  <フォーム>   (1)F-銀行名検索にQ-銀行名検索を設定   (2)F-支店名検索にQ-支店名検索を設定   ・・・以下同様のフォーム複数あり 今回作りたいのは、1つのフォーム内に検索したいフィールド分の検索ボタンを作り、検索したい項目をテキストボックス内に入力後該当ボタンをクリックすることによって入力した項目を含むデータが抽出されるというフォームです。 例えば、"東京"と入力し「支店名」ボタンをクリックすると『東京営業部』『東京中央』等"東京"を含むデータが抽出される といった具合です。 部署内にAccess作成事例集なるものがあり、それを元に下記のように作成してみました。 フォーム名を「F-銀行コード一覧」・テキストボックス名を「検索」として、「支店名」ボタンのマクロに [Forms]![F-銀行コード一覧]![検索]=[銀行コード一覧]![支店名] というアクション(フィルタの実行→Where条件式)を設定。しかし、これでは『東京』のみしか抽出されませんでした。 Like関数を利用するのかと思い Like "*"&[Forms]![F-銀行コード一覧]![検索]&"*"=[銀行コード一覧]![支店名] としてみましたが設定できませんでした。 どのようなアクションを設定したらフォームでのあいまい検索ができるのでしょうか?

  • 検索、入力フォームの作り方

    ACCESS2007(2010)でフォームから検索する方法を教えてください。 ■製品マスタ(製品コード,製品名) 001 あああ 002 いいい 003 ううう ■製品情報(製品コード,色名,重さ,サイズ) 001 青色 重い 200 002 赤色 軽い 300 があります。 フォームヘッダ、詳細のどちらでもいいのですが 製品コードに「001」と入力すると、製品名「あああ」が出てきてその情報、「青色」、「重い」・・・ を出したいです。 「003」と入力した場合は対応する製品情報が無いので「ううう」で製品名が出てきて新規情報を入力します。 「004」の場合は製品マスタに存在しないので、エラーメッセージ等「製品が存在しません」を出したいです。 サブフォームを使う?とかいろいろ調べましたが分かりませんでした。 お願いします。 フォームのイメージは 製品コード(テキストボックス) 製品名(テキストボックス[ReadOnly] or ラベル) 色名(テキストボックス) 重さ(テキストボックス) サイズ(テキストボックス) という感じです。 製品コード、製品名はヘッダにきてもかまいません。

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

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

  • 【Access97】DLookupについて

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

  • ACCESS 定型入力プロパティの設定で

    ACCESS2013を使用しています。 フォーム上のテキストボックスのプロパティ「定型入力」で、テーブルの値をセットすることは 可能でしょうか。固定であれば簡単なのですが、変動を考慮しての対応です。 例)1234-65-0001 ⇒ 部門コード-期-0000 と表現すると   部門コードと期の箇所にテーブルの値をセットしたいのです。   Forms!F_画面!文書番号.InputMask = DLookup("部門コード", "M_部門")¥- DLookup("期",     "M_部門")¥- 0000;0;_       ※¥の半角文字を入力すると、\ になるため質問上は全角にしております。   では構文エラーとなります。Dlookupの頭に” を付けたりもしましたが、   うまくいきません。   以上 よろしくお願いいたします。  

専門家に質問してみよう