So-net無料ブログ作成

アクセス小僧:レコード番号とレコード数(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 コメント