MS Access

AccessのBeforeUpdateでUndo

投稿日:2013年6月13日 更新日:

BeforeUpdateプロシージャ内の処理で、Cancel = Trueとしたら更新がキャンセルされるところまではできたが、テキストボックスにNullを代入しようとしてエラーが出たりして、間違って入力されている値を削除する方法がなかなか気づかなかった。
Me.Undoを入れてやると値が消せた。
きっと1ヶ月もしたら忘れていそうなので、メモ。

If Me.txtお支払い方法 = "代引き" Or Me.txtお支払い方法 = "代引き2" Then
  chk入金日 = False
Else
  MsgBox "代引き以外では入金日の入力はできません"
  Cancel = True
  Me.Undo
  chk入金日 = True
End If

-MS Access

執筆者:

関連記事

no image

SqlServerにAccessでいうオートナンバー型をつける

テストデータを作るために、Accessで2万件ほどのデータを用意し、別途追加クエリを作って、ODBC接続したSqlServerに追加しようとしたところ、「型変換エラーがどうのこうので追加出来ない」との …

no image

Accessでのキーワード検索(フィルタ)とブックマークの関係備忘録

Accessでのキーワード検索(フィルタ)とブックマークの関係を作るのに苦労したのでここに備忘録。 ポイントは、検索ではなくフィルタを使うことと、BookmarkではなくIDをグローバル変数に保存して …

no image

AccessのレポートでNoDataでイベントキャンセル後もReport_Closeが実行されて困った

Accessのレポートで表示するデータがない場合は、以下のように書けばスマートにキャンセルできる。 Private Sub Report_NoData(Cancel As Integer) MsgBo …

もう何度もAccessの集計クエリの作成をミスって怒られている

私が悪い。反省。 自戒のメモ。 Accessの集計クエリに条件を加えたい場合、その条件をどこに書くかによって結果が全く違ってくる。 それをわかってはいるのだが・・・最大やら演算やら、細かいことを同時に …

no image

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

Accessで、一旦フォーム上のレコードを保存したいとき、 Me.Save とやってもレコードが保存されない。 そこで、今までは、DoCmd.GoToRecordで無理矢理レコードを移動して保存してい …