• 締切済み

Access2000でフォーム上で最終レコードかどうかの判断は?

Windows2000 Access2000という環境で Access内にレコード追加不可のフォーム中で、 フォーカス(カーソル)のあるレコードが 最終レコードかどうか?を判断したいです。 レコード追加を可能にすればオートナンバーのフィールドがNullかどうかで判断できるのですが、 レコード追加は不可にしたいです。 困っております。どうぞ回答お願いいたします。

みんなの回答

  • otopya
  • ベストアンサー率100% (1/1)
回答No.2

 私のアドバイスはあくまでも最後の手段としてお使い下さい。なにせ、今Accessを使える環境にないもんだから…  モジュール変数を宣言する。その後、フォームオープンイベントの中に次のようなコードを記述して下さい。 (1) そのフォームのもととなるテーブルあるいはクエリー自身をオープンする。 (2) オートナンバーのフィールドをインデックスとして指定する。 (3) カレントレコードを最終行に移動する。 (4) オートナンバーのフィールドの値をモジュール変数時格納する。 (5) (1)でオープンしたテーブルあるいはクエリーを閉じる。  次にフォームのカレントレコードが移動した時(なんというイベントか忘れたけど)にそのオートナンバーのフィールドの値とモジュール変数の値を比較する。  これでた・ぶ・ん、うまくいくと思う。ガンバレ!!

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

テーブルのオートナンバーのフィールドを元に 例えばオートナンバーのフィールドをNoとして SELECT Max(テーブル名.No) AS Noの最大 FROM テーブル名 ORDER BY Max(テーブル名.No); で最後のレコードのオートナンバーの値を取得してフォームに表示されたレコードのオートナンバーフィールドの値とマッチングさせ判定するのが簡単では。

cohkoji
質問者

お礼

ご回答ありがとうございます。 私の質問の仕方が不十分だったようです。 フォームに表示をさせているデータはクエリで抽出したものだとお考え下さい。 なので、オートナンバーのMax値では最終レコードかどうかを判断することができません。 他のよい方法があれば教えてください。 よろしくお願いします。

関連するQ&A