So-net無料ブログ作成

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

http://cheese999.blog.so-net.ne.jp/2017-07-27-2

で、CurrentRecordとDCountを使用して、フォームで開いているテーブルのレコード番号とレコード数を表示するマクロを紹介しました。

今回は、

・現在開いているテーブルのレコード数⇒RecordCount
・開いているレコードの番号⇒CurrentRecord

としたマクロを作ってみました。再クエリ(Requery)を行った後にレコード番号(CurrentRecord)とレコード数(RecordCount)を表示させます。

・再クエリ(Requery)前にBookmarkを退避して、再クエリ(Requery)後に戻しているのは、再クエリ(Requery)で先頭レコードに移動してしまうからです。

・再クエリ(Requery)後、最終レコードへ移動(MoveLast)、先頭レコードへ移動(MoveFirst)を実行していますが、これをしないと、RecordCountが1になってしまい、レコード数が正しく表示できません。

・このマクロを流用するときは、OpenRecordsetの"T_テーブル名"を開いているテーブル名で置換します。

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.MoveLast ' 最終レコードへ
  rs1.MoveFirst ' 先頭レコードへ
  'カレントレコードを保存されているブックマークに設定
  rs1.Bookmark = varBookMark
  MsgBox ("CurrentRecord=" & CurrentRecord & "/" & rs1.RecordCount)
  [Record_No1] = CurrentRecord & "/" & rs1.RecordCount
  'レコードセット、データベース変数の解放
  Set rs1 = Nothing
  Set db1 = Nothing
  'Subを抜ける
  Exit Sub
ERR1:
  MsgBox ("エラー" & vbCrLf & Err.Description)
  'レコードセット、データベース変数の解放
  Set rs1 = Nothing
  Set db1 = Nothing
End Sub
ヤバイぜ!(12)  コメント(3)  トラックバック(0) 

ヤバイぜ! 12

コメント 3

cheese999

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

tarou

お早うございます、諏訪湖にコメントを有難うございました。
湖畔には亀が乗った、遊覧船が停泊していました、
珍しかったのでパチリでした。

私には難し過ぎて、理解できないのが残念です(~_~)
勉強してみたいですが、どこから手をつけたら
良いのかな・・・・、です。

by tarou (2017-07-31 06:46) 

cheese999

tarouさん、
コメントありがとうございます。

やっぱり難しかったですか。。
タイトルに「小僧」と付けたのは、できる限り簡単にという思いで始めたのですが、アクセスとか、VBAとか、なじみのない方からすると、かなり難しい、ということが分かりました。

本屋さんに行くと、アクセスの本なんて、ワード、エクセル、パワーポイントに比べると全然少ないし、一番簡単、と書かれている本を買ってきて、アクセスでデータベースを作ってみたものの、未だによくわかっておりません。

分からないなりに、他人様の作ったマクロ(プログラム)を参考に、試行錯誤した結果、何とか使えそうなものができたとき、このブログで紹介させてもらっています。

コンピュータって、登場してから、何年たったか分かりませんが、「使えなければ、タダの箱」から成長していないなあ、と思っています。

もし、何がやりたいのか、コメントいただければ、何かアドバイスできるかも、しれません。
by cheese999 (2017-08-01 05:20) 

コメントを書く

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

Facebook コメント

トラックバック 0

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