MS Access

DoCmd.GoToRecordよりもMe.SaveよりもMe.Refresh

投稿日:2012年1月24日 更新日:

Accessで、一旦フォーム上のレコードを保存したいとき、

Me.Save

とやってもレコードが保存されない。

そこで、今までは、DoCmd.GoToRecordで無理矢理レコードを移動して保存していたのだが、これだと、アクティブコントロールの移動に伴って画面がスクロールしてしまう。

ちゃんとしらべたところ、レコードの保存は、Me.Refreshを使うのが正解とわかった。

ちなみにMe.Saveは、「フォーム」の保存であって、レコードの保存ではない・・・。

さっき(この記事を書いてから5年後)、Me.Saveでやっていてレコードの保存がうまくいかなくて、なんでやとGoogleで検索したら、自分のこの記事がヒットした。備忘録として書いておきながら、すっかり忘れておった。何度も同じ間違いをしている俺って。本当のあほや。

-MS Access

執筆者:

関連記事

no image

「3070 有効なフィールド名または式として認識できません」エラーで、困った

Accessで、クエリ単体での実行だとうまくいくのに、いざ、そのクエリをVBAコード内で実行すると、上記エラーが出る。 難問だった。 SQL文内でDISTINCTを使っているからかなーとか、LEFT …

no image

AccessでIN演算子をクエリの抽出条件に使うのに苦労

やりたいこと: 非連結のチェックボックスでレコードを選択する – hatena chips ・・・のようなこと。 ・フォームのテキストボックスに、’354942-0007474 …

no image

Accessで DoCmd.RunSQL を CurrentDb.Executeにしたら、1秒高速化した

処理が遅いので速くして欲しいとの要望があったので、コードを調査。 DoCmd.RunSQL を CurrentDb.Execute に置き換えると非同期で実行されるとの情報を得たので、試す。 結果、6 …

no image

テキスト型の日付をformat関数で揃える

CSV形式のデータからAccessにインポートしたものだから、日付が2012/5/5やら2012/05/05やら、文字列扱い(日付型でない)の混在したデータの入ったテーブルがある。 これをきちんと並べ …

no image

VBAで忘れてしまっていたことと、知らなかったこと

STOPステートメント: ブレークポイントを設定しないでもその行でコード処理を止めることができるので、Access終了->Access起動といったシチュエーションで使える。 Randomizeステート …