SSブログ

アクセス小僧:レコード番号とレコード数(3) [コンピューター]

アクセス小僧:レコード番号とレコード数(2)
http://cheese999.blog.so-net.ne.jp/2017-07-30

アクセス小僧:レコード番号とレコード数
http://cheese999.blog.so-net.ne.jp/2017-07-27-2

では、MsgBox、または、フォームに設置したテーブルと非連結なテキストボックスに
現在のレコード番号とレコード数を表示するマクロでした。

今回、テーブルにレコード番号とレコード数を表示するフィールドを作成し、そのフィールドに
連結したテキストボックスをフォームに設置し、再クエリ時に全レコード分、一括して
レコード番号とレコード数を更新するマクロを作りました。

Private Sub 再クエリ_Click()
  '【機能】再クエリ
  On Error GoTo ERR1
  '【引数】
  ' なし
  '【変数】
  Dim db1 As DAO.Database ' データベース
  Dim rs1 As DAO.Recordset ' レコードセット
  Dim varBookMark As Variant ' ブックマーク
  ' 【コード】
  ' テーブルをレコードセットとして開く
  Set db1 = CurrentDb()
  Set rs1 = db1.OpenRecordset("T_テーブル名", dbOpenDynaset)
  'レコードセットのブックマーク(再クエリ前のカレントレコード)を取得
  varBookMark = rs1.Bookmark
  'フォームを再クエリする
  rs1.Requery
  '先頭レコードへ
  rs1.MoveFirst
  '最終レコードへ
  rs1.MoveLast
  '先頭レコードへ
  rs1.MoveFirst
  '最終レコードまで繰り返し
  Do Until rs1.EOF
    rs1.Edit ' 編集
    rs1!F_Record_No1 = (rs1.AbsolutePosition + 1) & "/" & rs1.RecordCount
    rs1.Update ' 更新
    rs1.MoveNext
  Loop
  'カレントレコードを保存されているブックマークに設定
  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

・テーブルに設置した、レコード番号とレコード数を表示するフィールドは、F_Record_No1です。
・レコード番号は、(rs1.AbsolutePosition + 1) で計算しています。
・レコード数は、rs1.RecordCountです。

(PS 2017/08/12 20:12) このマクロを実行して更新されるのは、テーブルであって、フォームではない、ということが分かりました。フォームも同時に更新するためには、フォームも再クエリ(Requery) する必要があると分かりました。その話は別途、記事にします。
ヤバイぜ!(2)  コメント(2) 
共通テーマ:パソコン・インターネット

ヤバイぜ! 2

コメント 2

cheese999

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

cheese999

PSを追記しました(^_0)ノ
by cheese999 (2017-08-12 20:18) 

コメントを書く

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

Facebook コメント

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