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

解決済みの質問

Accessで最終レコードの削除について

Accessで新規レコードを作成しないで最終レコードを削除したいのですが、方法をご存知でしたら教えて頂けないでしょうか。
現状は次の通りです。
レコード データ
1000   A
1001   B
1002   C ←最終レコード
※マクロで1002のレコードを削除すると
レコード データ
1000   A
1001   B
1002   空白のレコード ←最終レコード
となってしまいますが、これを
レコード データ
1000   A
1001   B ←最終レコード
としたいのです。

ちなみに最終ではない1001のレコードを削除すると
レコード データ
1000   A
1001   C ←最終レコード
となり、空白の新規レコードは作成されません。

投稿日時 - 2009-03-07 13:21:14

QNo.4775960

すぐに回答ほしいです

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

もしかしたら、テーブルに保存されてない、空の新規レコードのことを言っているのでしょうか。
レコードを削除すると、その次のレコードにフォーカスが移りますので、最後のレコードを削除すれば、確かに新規レコードにフォーカスが移ります。

それに疑問を抱いたことなんかなかったのですが・・・・
まいったな。空のレコードがテーブルに勝手に保存されるのかと思った。

そのフォームで、レコードの追加をしないのなら、フォームのプロパティで、レコードの追加を「いいえ」にすれば、新規レコードにフォーカスが移りません。

あるいは、レコードを削除するマクロがあるようですから、最終レコードを削除した後に、最後(削除した後の最後)のレコードにフォーカスを移すようにすれば、新規レコードが出てきません。

と、いう感じでどうでしょう。

投稿日時 - 2009-03-10 01:59:51

お礼

ご回答頂き有り難うございます。
問題は解決しました!
レコードの追加を禁止にしてから削除したら空白レコードが発生しなくなりました。
次のような感じです。
Me.AllowAdditions = False 'レコードの追加禁止
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Me.AllowAdditions = True 'レコードの追加許可
本当に助かりました、感謝感激です。

投稿日時 - 2009-03-10 21:43:02

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

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

回答(2)

なぜ、空の新規レコードができるのかわかりませんが、マクロではなく、削除クエリで削除したらどうでしょう。
参考サイト↓(gooでたまたま一番上に出てきたサイト)
http://makotowatana.ld.infoseek.co.jp/access/acconUnderstandingActionQueriesAndWhenUseThemS.htm

マクロは良く知らないのですが、多分、マクロからクエリを実行できるでしょう?

「最終レコード」をどう捕まえるかが問題になりますが、オートナンバー型のフィールドを追加するか、入力時間を記録するフィールドがを追加すれば、捕まえられます。

投稿日時 - 2009-03-08 02:45:18

お礼

ご回答頂き有り難うございます。
削除クエリを作成してマクロから呼び出すようにしましたが、入力画面のレコードが最終レコードの場合は空白レコードが作成されてしまいます。
まだ不足している事があるのでしょうか。

投稿日時 - 2009-03-08 11:07:03

あなたにオススメの質問