SSブログ

アクセス小僧:再クエリ後、再クエリ前のカレントレコードを表示 [コンピューター]

アクセスのフォームにおいて、

再クエリ後、再クエリ前のカレントレコードを表示するマクロを作りました。

アクセスのフォームにおいて、再クエリ(Requery)を行うと、1番目のレコードに移動してしまうため、ブックマークで再クエリ前のカレントレコードを覚えておき、再クエリ後、再クエリ前のカレントレコードに移動します。

【参考】
http://fk-plaza.jp/acs/TIPS/waza45.htm
http://tsware.jp/tips/tips_163.htm

⇒上記のWebで紹介されていたマクロでは、うまく動かなかったので、下記のようなマクロになりました。

【マクロ】
Private Sub Sample_Click()
'【機能】保存して更新
On Error GoTo ERR1
  '【引数】
  ' なし
  '【変数】
  Dim db1 As DAO.Database ' データベース
  Dim rs1 As DAO.Recordset ' レコードセット
  Dim varBookmark As Variant ' ブックマーク
  ' 【コード】
  ' ABCテーブルをレコードセットとして開く
  Set db1 = CurrentDb()
  Set rs1 = db1.OpenRecordset("T_ABC", dbOpenDynaset)
  'レコードセットのブックマーク(再クエリ前のカレントレコード)を取得
  varBookmark = rs1.Bookmark
  'フォームを再クエリする
  rs1.Requery
  'カレントレコードを保存されているブックマークに設定
  rs1.Bookmark = varBookmark
  'レコードセット、データベース変数の解放
  Set rs1 = Nothing
  Set db1 = Nothing
  'Subを抜ける
  Exit Sub
ERR1:
  MsgBox ("エラー" & vbCrLf & Err.Description)
  'レコードセット、データベース変数の解放
  Set rs1 = Nothing
  Set db1 = Nothing
End Sub
ヤバイぜ!(12)  コメント(1)  トラックバック(0) 
共通テーマ:パソコン・インターネット

ヤバイぜ! 12

コメント 1

cheese999

ヤバイぜ! ありがとうございます[__猫]
by cheese999 (2017-07-15 05:53) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字(英大文字の「オー」、英小文字の「ユー」、アラビア数字の「ハチ」、アラビア数字の「イチ」、アラビア数字の「ニ」)を入力してください。

Facebook コメント

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。