こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

レコード数カウント前のMoveLastについて

お世話になります。

Access VBA内でSQL(クエリ)のレコード数を算出し、0レコードの場合はAの処理、1レコード以上の場合はBの処理をさせたいと思ってます。

レコード数はRecordCountで求めると思うのですが、MoveLastを事前に実行しておかないと正確なレコード数が求められないと認識しております。

で、クエリでレコードが1つでも抽出されていればMoveLastを実行してもエラーにならないのですが、クエリの条件に該当せずレコード数0の状態でMoveLastを実行してしまうとエラーになってしまいます。

このような場合、どうやって回避すればよいのでしょうか。

基本的には0だとA処理、1以上だとB処理なので、正確なレコード数を算出する必要は無いのですが、Bの処理を実行する際に『○件更新しました』というメッセージを表示させたいので、正確なレコード数を知りたいところです。

ご教授の程、宜しくお願い致します。

投稿日時 - 2014-06-03 12:02:06

QNo.8621867

すぐに回答ほしいです

質問者が選んだベストアンサー

レコードが無いのは、Recordset のbof とeof で判断するとか・・
http://msdn.microsoft.com/ja-jp/library/cc364303.aspx
rs.eof and rs.bof then
レコードが無いよ
ADO/DAO で可

処理件数(更新件数)は RecordsAffected で調べるとか
http://www.tsware.jp/tips/tips_504.htm

投稿日時 - 2014-06-03 12:34:26

お礼

NotFound404様

早速のご回答ありがとうございます。

事前にEOFか否か判定し、EOFなら0件、それ以外の場合にMoveLastして正確なレコード数を取得することができました。

勉強になりました。
ありがとうございました。

投稿日時 - 2014-06-03 13:44:05

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

格好良くはないけど、 on error でどうですか?

投稿日時 - 2014-06-03 13:16:22

あなたにオススメの質問