• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクセスVBAで3つのテキストボックスの連動表示)

アクセスVBAで3つのテキストボックスの連動表示

SpeedKingの回答

  • ベストアンサー
  • SpeedKing
  • ベストアンサー率50% (6/12)
回答No.1

口座番号が入力後に、2つのテキストボックスに入力するのであれば、以下のprocedureでできると思います。 Option Compare Database Private Sub テキスト0_AfterUpdate() Me.テキスト2=DLookup("銀行名","取引銀行","口座番号='" & Me.テキスト0.value & "'") Me.テキスト4=DLookup("支店名","取引銀行","口座番号='" & Me.テキスト0.value & "'") End Sub パフォーマンスが悪い場合には以下のようにしてください。 Option Compare Database Private Sub テキスト0_AfterUpdate() Dim strText As String Dim rs As recordset strText = "select 銀行名,支店名 FROM 取引銀行 where 口座番号 ='" & Me.テキスト0.value & "'" Set rs = CurrentDb.Openrecordset(strText, dbOpenSnapshot)'参照専用レコードセット Me.テキスト2=rs("銀行名") Me.テキスト4=rs("支店名") End Sub RecordSource:フォーム、レポートの元になるレコードの集合、つまりはテーブル、クエリーなど ControlSourse:フォーム、レポートのコントロールに表示するためのRecordSourceのフィールドのこと(非連結の場合にはControlSourseは値が存在する関数式でも可) と思っておけば良いのでは。 値集合タイプ、値集合ソース:リストボックス、コンボボックスで表示に使用するソースで、テーブル、クエリーのレコード形式、もしくは、値リストのこと。値リストを指定すると値を並べて記載することでレコード形式に読み込んでくれる。 したがって、一つの値しか表示できないテキストボックスには上記プロパティは必要ないことになるので表示されません。

関連するQ&A

  • アクセスVBAで、フォームに情報を表示したい。

    アクセス2000のVBAの質問です。どうぞよろしく。 ●「取引銀行」テーブルをつくりました。銀行名、支店名、口座番号を入力してつくりました。 フィールド名も上記の通りです。 ●フォームをつくり、口座番号入力用テキストボックス(テキスト0)、銀行名を表示するテキストボックス(テキスト2)、支店名表示用テキストボックス(テキスト4)の3つを作りました。 ●入力用テキストボックスに1つ口座番号を入れると、その口座番号の銀行名をテキスト2に表示し、支店名をテキスト4に表示するにはどうコーディングすればいいのでしょうか。 Option Compare Database Public db As database Public qd As querydef Private Sub テキスト0_AfterUpdate() Set db = CurrentDb Set qd = db.querydef("SQL_Q") Dim strText As String strText = テキスト0.Text qd.SQL_Q = "SELECT 銀行名 FROM 取引銀行 " _ & "WHERE 口座番号 = '" & strText & "'" Me.RecordSource = "SQL_Q" テキスト2.SetFocus Me!テキスト2.ControlSource = "銀行名" (支店名表示部分は略す) End Sub ある本の例を見て上記のように組んで実行しましたが、銀行名は表示されません(#NAMEのエラー) 入力した口座番号がstrTextにセットされているのは確認できました。 またRecordSourceとControlSourseの区別がよく理解できていません。値集合タイプ、値集合ソースというのはなぜテキストボックスの プロパティにないのでしょうか。

  • フォームの再表示に関して

    過去の質問にも同じようなものがありましたので、参考にしながらやってみたのですが、うまくいかなかったので質問させて頂きます。 Windows2000・アクセス2000を利用しています。フォーム上で非連結のテキストボックス1つとサブフォームを作成しています。テキストボックスに[No]を入力で指定すると、テキストボックス更新時にサブフォームの内容が、その[No]のデータのみに抽出されて再表示するようにしたいと思っています。 SQLで並べ替えと抽出をしています。コードは下記のような感じで作成しています。 Private Sub 検索No_AfterUpdate() Dim Db As Database Dim Qd As QueryDef Dim No As Integer Dim Sql_Str As String Set Db = CurrentDb Set Qd = Db.QueryDefs("Q_抽出") No = [検索No].Value Sql_Str = "SELECT T_テンプレート明細.*" & _ " FROM T_テンプレート明細 INNER JOIN T_テンプレート ON T_テンプレート明細.テンプレートNo = T_テンプレート.テンプレートNo" & _ " WHERE [T_テンプレート明細].[テンプレートNo] = " & No & _ " ORDER BY [T_テンプレート明細].[テンプレートNo], [T_テンプレート明細].[テンプレートID];" Qd.Sql = Sql_Str サブフォーム名.Requery Qd.Close Db.Close End Sub サブフォームをrequeryすれば再表示するのかなと思っているのですが・・・・テキストボックスに更新をかけた後にクエリを確認するとSQLは一応指定出来ているようです。簡単な説明で分かりにくいかもしれませんがよろしくお願い致します。

  • 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でも構いませんので、どなたかご教示ください。 よろしくお願いいたします。

  • mysqlからテキストボックスへの表示について

    PHP+MYSQLで勉強しながらWebアプリを作成しています。 フォームのテキストボックスに値を入力し、それをDBにUPDATEし、 UPDATEした内容を表示するのですが、UPDATEした結果を表示させることは 出来ました。 1点次の段階で詰まっているのですが、 UPDATEしたデータをテキストボックスに表示させる事は できるのでしょうか(SQLでSELECT文を使用するなどして) なにぶん初心者なもので、もし参考になるコードがあるような URL等も教えていただければ幸いです。 (JavaScriptは現在無知なので、使用しておりません。)

    • ベストアンサー
    • PHP
  • テキストボックスとコンボボックス

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

  • 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-銀行コード一覧]![検索]&"*"=[銀行コード一覧]![支店名] としてみましたが設定できませんでした。 どのようなアクションを設定したらフォームでのあいまい検索ができるのでしょうか?

  • AccessでSQL*PlusのようにSQLの結果を表示させたい

    SQLでUPDATE, DELETE, INSERTのような結果セットを返さない場合は、 DoCmd.RunSQL?で済みますが、結果セットを返す場合は、どのようにすればよいのでしょうか? やりたいことは、AccessでSQL*Plusやpsqlのように抽出した結果を一覧に表示させるか、フォームに結果を表示させたいです。 テキストボックスに入力したSQLを クエリオブジェクト?(仮にクエリ1という名前にします)に書き込み それをフォームのRecordSourceにクエリ1をセットする方法が使えれば 単にRecordSourceにSQLを直接書くより早い気がするのですが、 皆さんはどのようにしていますか。

  • Access テキストボックス内の制御について

    テキストボックス内に郵便番号を入力すると、次のテキストボックスに 該当住所を表示させるようにしています。 その後、郵便番号の入力ボックスからTABキーにてカーソルを移動すると、 住所をすべて選択した状態でカーソルが移ってしまうので、 そのまま番地の入力をしようとすると、せっかくの住所がすべて消えてしまいます。 セレクトしないようにする(住所の右端にカーソルが点滅している状態)には、 プロパティで、なにかを直さないといけないと思うのですが、わかりません。 どなたかおしえてください。

  • VBAでコンボボックスとテキストボックスの連動

    業務命令でVBAの勉強を始めました。 フォームの作成を始めたところなのですが、早くもつまづいてしまい、先に進めません。 どうかご教授をお願いいたします。 現在Book1でユーザーフォームを作成しています。 別なブックBook2のSheet1にあるデータでコンボボックス とテキストボックスを連動させたいと考えております。 Book2のSheet1では、A列に会社名、B列に会社ID、C列に電話番号の表があります。 ComboBox1で会社名を選択したときに、TextBox1にその会社の会社ID、TextBox2に電話番号を表示させるにはどのようにしたらいいのでしょうか? ネットで検索しながらフォーム作成をしており、似たような条件のコードを自分なりに修正してやってみましたがどうやっても動作しません。 どうかよろしくお願いいたします。

  • Access VBAボタンでテキストボックスを入力

    access2010を使用しております。 フォームでボタンをクリックしたときに、テキストボックスを書換える コードを作りたいのですが、 Private Sub コマンド111_Click() ME!テキストボックス.value= "あああ" End Sub としても、テキストボックスは書き換わりません。 でも、ボタンをクリックした後にそのテキストボックスをクリックすると ちゃんと「あああ」と入力されています。 つまり、ボタンをクリックしても入力はされても表示がされず、 ただ、テキストボックスをクリックすると「あああ」と表示されると言った具合です。 また、テキストボックスをクリックする以外にも 違うレコードに移動してもとのレコードに戻ってもおなじように 表示されます。 これを押した時に表示を変更させるには どのようにすればよろしいでしょうか?