• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Accessの再クエリについて)

Accessの再クエリについて

このQ&Aのポイント
  • Win2000、Access2000を使用しています。Aフォームの登録ボタンをクリックしたら、再クエリをするようにVBを組みました。再クエリをすると、1件目のデータを表示させてしまいます。変更したフォームを表示させたいんですが、どなたかおわかりになる方がいましたら、お教えください。
  • Aフォームの内容を変更して「登録ボタン」をクリックすると再クエリを行うように設定したVBコードです。しかし、再クエリをすると、常に1件目のデータが表示されてしまいます。変更したフォームのデータを表示する方法を教えていただけないでしょうか。
  • Win2000、Access2000を使用しています。Aフォームの登録ボタンをクリックしたら、再クエリを行うVBコードを組みました。しかし、再クエリをすると常に1件目のデータが表示されてしまいます。変更したフォームのデータを表示させる方法を教えていただけないでしょうか。

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

  • ベストアンサー
  • gadd3
  • ベストアンサー率46% (211/451)
回答No.2

FindRecordは検索するテキストボックス(フィールド)にカーソルを当ててからでないと動かなかった気がします。 例えば「商品ID」などで探すときは、 (商品IDtbxという名前の連結テキストボックスがあったとすると) Dim idnumber As Long '(商品IDを長整数型と仮定して、)商品IDを格納する変数を定義 idnumber = Me!商品IDtbx Me!Requery Me!商品IDtbx.SetFocus DoCmd.FindRecord idnumber と、こんな感じでしょうか・・・

n-shan
質問者

お礼

たびたびのご回答ありがとうございます。 お礼が遅くなりまして申し訳ございません。 うまくいきました。 また質問すると思いますが、そのときはよろしくお願いします。

その他の回答 (1)

  • gadd3
  • ベストアンサー率46% (211/451)
回答No.1

Requery は 1件目のレコードに戻ってしまうという「仕様」なので、btn_登録_Click時にカレントになっているレコードの主キーの値を何かの変数に入れておき、Requery した後にそこへDocmd.FindRecord などで戻る という方法でよいのではないでしょうか? もしくは、Requery ではなく Refresh を試してみるとか・・・

n-shan
質問者

補足

ご回答ありがとうございます。 以下のようにVBを組み直してみましたが、カレントレコードへは行ってくれませんでした。 Private Sub btn_登録_Click() Dim touroku As Integer Dim curren As Long touroku = MsgBox("このデータを登録しますか?", vbYesNo + vbQuestion, "登録") If touroku = vbYes Then curren = Me.CurrentRecord DoCmd.Requery DoCmd.FindRecord curren End If End Sub 大変申し訳ありませんが、再度お教え下さい。 よろしくお願いします。