- 締切済み
ACCESSVBA非連結フォームからレコード検索
お世話になっております。 ACCESS VBAに関してです。 SEQ(通し番号)、項目a,項目bの三つのフィールドを持つテーブルがあったとします。 それに対し、SEQ、項目a,項目bというラベルを張ったテキストボックスがそれぞれひとつずつ、テキストボックス計三つのフォームがあります。 SEQのテキストボックスに番号を入れコマンドボタンを押すと、テーブルのSEQに対応したレコード情報がそれぞれ項目aと項目bに入るようなイベントプロシージャを作りたいです。 ちなみにこれはとある課題として作成しているので、テキストボックスは全て非連結、ボタンのマクロは無し、プロパティからのソース設定も不可です。 テキストボックスに入力されたSEQをどうレコードセットに結びつけるのか。 引っ張ってきたレコードセットを、それぞれのテキストボックスにどうやって連携させるのか。 等がわかりません。 稚拙な質問ですが困っております。 どなたか具体的なコードとともにお教え願えないでしょうか。。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ushi2015
- ベストアンサー率51% (241/468)
こんにちは ボタンを右クリックでイベントのビルドでコードビルダー表示して、 Private Sub コマンド6_Click() Dim DB As Database Dim RS As Recordset If IsNull(Me.テキスト0) Then MsgBox "SEQ入力なし" Exit Sub End If Set DB = CurrentDb Set RS = DB.OpenRecordset("レコード検索テスト", dbOpenSnapshot) RS.FindFirst "SEQ=" & Me.テキスト0 If RS.NoMatch = False Then Me.テキスト2 = RS!項目a Me.テキスト4 = RS!項目b Me.テキスト0.SetFocus Else MsgBox "データ無し" End If RS.Close Set RS = Nothing End Sub こんな感じですか? ボタン名とかテキストボックス名は適宜変更して下さい。
- 山田 太郎(@f_a_007)
- ベストアンサー率20% (955/4574)
【質問の主旨が今一つ】 >SEQ、項目a,項目bというラベルを張ったテキストボックスがそれぞれひとつずつ、テキストボックス計三つのフォームがあります。 ↓ >SEQ、項目a,項目bのテキストボックスを持つフォームがあります。 ということなのかな?? >テキストボックスに入力されたSEQをどうレコードセットに結びつけるのか。 ↓ >SEQに対応するレコードの情報をテキストボックスに表示するには? ということなのかな?? 結局は、SEQの更新イベントに書くコードに関して質問しているのかな?だとすれば、かなり初歩的なそれ。だとすると、課題は、DLookup()などを利用しないでADOコードにて実現せよということなのだろうか?