- ベストアンサー
Accessの再クエリについて
- Win2000、Access2000を使用しています。Aフォームの登録ボタンをクリックしたら、再クエリをするようにVBを組みました。再クエリをすると、1件目のデータを表示させてしまいます。変更したフォームを表示させたいんですが、どなたかおわかりになる方がいましたら、お教えください。
- Aフォームの内容を変更して「登録ボタン」をクリックすると再クエリを行うように設定したVBコードです。しかし、再クエリをすると、常に1件目のデータが表示されてしまいます。変更したフォームのデータを表示する方法を教えていただけないでしょうか。
- Win2000、Access2000を使用しています。Aフォームの登録ボタンをクリックしたら、再クエリを行うVBコードを組みました。しかし、再クエリをすると常に1件目のデータが表示されてしまいます。変更したフォームのデータを表示させる方法を教えていただけないでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
FindRecordは検索するテキストボックス(フィールド)にカーソルを当ててからでないと動かなかった気がします。 例えば「商品ID」などで探すときは、 (商品IDtbxという名前の連結テキストボックスがあったとすると) Dim idnumber As Long '(商品IDを長整数型と仮定して、)商品IDを格納する変数を定義 idnumber = Me!商品IDtbx Me!Requery Me!商品IDtbx.SetFocus DoCmd.FindRecord idnumber と、こんな感じでしょうか・・・
その他の回答 (1)
- gadd3
- ベストアンサー率46% (211/451)
Requery は 1件目のレコードに戻ってしまうという「仕様」なので、btn_登録_Click時にカレントになっているレコードの主キーの値を何かの変数に入れておき、Requery した後にそこへDocmd.FindRecord などで戻る という方法でよいのではないでしょうか? もしくは、Requery ではなく Refresh を試してみるとか・・・
補足
ご回答ありがとうございます。 以下のように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 大変申し訳ありませんが、再度お教え下さい。 よろしくお願いします。
お礼
たびたびのご回答ありがとうございます。 お礼が遅くなりまして申し訳ございません。 うまくいきました。 また質問すると思いますが、そのときはよろしくお願いします。