• 締切済み

ACCESSVBA非連結フォームからレコード検索

お世話になっております。 ACCESS VBAに関してです。 SEQ(通し番号)、項目a,項目bの三つのフィールドを持つテーブルがあったとします。 それに対し、SEQ、項目a,項目bというラベルを張ったテキストボックスがそれぞれひとつずつ、テキストボックス計三つのフォームがあります。 SEQのテキストボックスに番号を入れコマンドボタンを押すと、テーブルのSEQに対応したレコード情報がそれぞれ項目aと項目bに入るようなイベントプロシージャを作りたいです。 ちなみにこれはとある課題として作成しているので、テキストボックスは全て非連結、ボタンのマクロは無し、プロパティからのソース設定も不可です。 テキストボックスに入力されたSEQをどうレコードセットに結びつけるのか。 引っ張ってきたレコードセットを、それぞれのテキストボックスにどうやって連携させるのか。 等がわかりません。 稚拙な質問ですが困っております。 どなたか具体的なコードとともにお教え願えないでしょうか。。

みんなの回答

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.2

こんにちは ボタンを右クリックでイベントのビルドでコードビルダー表示して、 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 こんな感じですか? ボタン名とかテキストボックス名は適宜変更して下さい。

回答No.1

【質問の主旨が今一つ】 >SEQ、項目a,項目bというラベルを張ったテキストボックスがそれぞれひとつずつ、テキストボックス計三つのフォームがあります。  ↓ >SEQ、項目a,項目bのテキストボックスを持つフォームがあります。 ということなのかな?? >テキストボックスに入力されたSEQをどうレコードセットに結びつけるのか。  ↓ >SEQに対応するレコードの情報をテキストボックスに表示するには? ということなのかな?? 結局は、SEQの更新イベントに書くコードに関して質問しているのかな?だとすれば、かなり初歩的なそれ。だとすると、課題は、DLookup()などを利用しないでADOコードにて実現せよということなのだろうか?

関連するQ&A