![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
アクセス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の区別がよく理解できていません。値集合タイプ、値集合ソースというのはなぜテキストボックスの
プロパティにないのでしょうか。
No.2ベストアンサー
- 回答日時:
御疲れ様です
>●入力用テキストボックスに1つ口座番号を入れると、その口座番号の銀行名をテキスト2に表示し、支店名をテキスト4に表示するにはどうコーディングすればいいのでしょうか。
上記の掲題だけでしたら、下記コードにて実現できると思います
'----------------------------------------
Private Sub テキスト0_AfterUpdate()
Dim RS As DAO.Recordset
Dim strSQL As String
If IsNull(Me.テキスト0.Value) = True Then
Me.テキスト2.Value = Null
Else
strSQL = "SELECT 銀行名 FROM 取引銀行 WHERE 口座番号 = '" & Me.テキスト0.Value & "'"
Set RS = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
If RS.EOF = False Then
Me.テキスト2.Value = RS("銀行名").Value
End If
Set RS = Nothing
End If
End Sub
'----------------------------------------
※参照設定にて「Microsoft DAO Libraryにチェックが必要です
たぶん、VisualBasicとの違いに戸惑いを感じているのだと思います。
テキストボックスコントロールなど典型的ですね。
例えば、VBならばNULLは入力できないが、Accessは入力できるとか、
VBなら値参照はTextプロパティをACCESSならValueプロパティを使用するなど...
VBとAccessのコントロールは似て非なるものと思った方が理解しやすいと思います。
(かといって、AccessのコントロールをVBに貼り付けても同じような使用方法は出来ないんですけどね...)
あと、Accessのテキストボックスのプロパティ「Text」と「Value」の違いですが、
「Text」はフォーカスがあたっている時、表示している値が取得できます、
「Value」は確定した値を取得できます。
参考になれば
No.1
- 回答日時:
いくつか間違いがあるので
> Option Compare Database
> Public db As database
> Public qd As querydef
> Private Sub テキスト0_AfterUpdate()
> Set db = CurrentDb
> Set qd = db.querydef("SQL_Q")
Ser qd = db.querydefs("SQL_Q")
これを行うためにはあらかじめ「SQL_Q」と言う名前のクエリーを作成しておく
必要があります。(中身は適当で構いません。)
> Dim strText As String
> strText = テキスト0.Text
> qd.SQL_Q = "SELECT 銀行名 FROM 取引銀行 " & "WHERE 口座番号 = '" & strText & "'"
qd.SQL = "SELECT 銀行名 FROM 取引銀行 " & "WHERE 口座番号 = '" & strText & "'"
> Me.RecordSource = "SQL_Q"
> テキスト2.SetFocus
> Me!テキスト2.ControlSource = "銀行名"
> End Sub
レコードソース(RecordSource)はフォーム(レポート)で扱うテーブルやクエリーを指定する項目で
コントロールソース(ControlSource)はそのコントロールに表示したい情報を
指定する項目で、式やレコードソース内に存在するフィールド名を指定します。
値集合タイプ、値集合ソースはコンボボックスなどのリスト表示に使用するテーブルなど
を指定するための項目です。
テキストボックスに何故無いかと言うことについては、そう言う仕様だからとしか
説明のしようがありません。(少なくとも私には)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Visual Basic(VBA) ユーザーフォームで銀行に対応した支店コードの入力ができません Sheet1のA列に銀行名、B列に銀行 5 2022/07/28 17:50
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- 銀行・ネットバンキング・信用金庫 商品を購入してこのように表示されたのですが、支店には行けないので、みずほ銀行に行ってこの口座番号で振 3 2022/12/11 19:22
- au(KDDI) auじぶん銀行について auじぶん銀行の○○支店のほうに振込してくださいとメッセージ、ハガキが届きま 4 2023/04/27 22:14
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- Access(アクセス) Accessテキストボックス内に2つのフィールドの値を比較して大きい方の値を表示させる方法 1 2022/09/09 10:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のアプリケーションのテキス...
-
VBSでMid関数を使ったらエラー...
-
VB.NETで数十行のプログラムを...
-
IP Address 入力フォームについて
-
'2465'指定した式で参照してい...
-
VB6.0 でメニューを作りたいん...
-
エディットボックス内での追記
-
テキストボックスの中身をリセ...
-
テキストにマウスを置くと同じ...
-
アクセスVBAで、フォームに...
-
[FLASH]シンボルにHTMLを読み込...
-
エクセルの図形挿入のVBAにて
-
RPG(AS400)の本、サイトってあ...
-
ぷかぷかレイちゃん
-
htmlテキスト内に音声再生ボタ...
-
pdfのテキスト全文コピー、テキ...
-
VBAで改行の入ったデータの正規...
-
python ボタンを押すと複数の関...
-
VBScriptでMsgBoxのYesNoボック...
-
DataTableの件数を取得したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスの中身をリセ...
-
変数に256文字以上のテキストを...
-
テキストボックスにセルの値を...
-
別のアプリケーションのテキス...
-
全てのテキストボックスをセル...
-
'2465'指定した式で参照してい...
-
POIでのテキストボックス作成に...
-
VB6.0 でメニューを作りたいん...
-
pdfのテキスト全文コピー、テキ...
-
Access2000 実行時エラー '3061':
-
VBSでMid関数を使ったらエラー...
-
VB.NET メッセージボックスの表...
-
HTMLのtextbox類に文字を残す
-
RPG(AS400)の本、サイトってあ...
-
VB.NET2005 DataGridViewでレコ...
-
テキストの横移動させて表示
-
アクセスのフォームから検索を...
-
FLASH上で日数カウントダウン
-
IP Address 入力フォームについて
-
Flash 暗号装置の作り方
おすすめ情報