WebBrowserControl.BeforeUpdate イベント (Access)
BeforeUpdate イベントは、コントロールまたはレコードで変更されたデータが更新される直前に発生します。
構文
式。BeforeUpdate (Cancel)
式WebBrowserControl オブジェクトを表す変数。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
Cancel | 必須 | 整数型 (Integer) | BeforeUpdate イベントが発生したかどうかは、設定によって決まります。 引数 Cancel を True (1) に設定すると、BeforeUpdate イベントが取り消されます。 |
戻り値
なし
解説
"SetValue/値の代入" アクションが記述されたマクロまたは Visual Basic で、コントロールに含まれるデータを変更した場合は、このイベントは発生しません。 別のレコードに移動するか、レコードを保存したときに、フォームに対して BeforeUpdate イベントが発生します。
このイベントが発生したときに、マクロまたはイベント プロシージャを実行するには、" BeforeUpdate /更新前処理" プロパティをマクロ名または "[Event Procedure]"/"[イベント プロシージャ]" に設定します。
このイベントは、オプション グループに格納されているチェック ボックス、オプション ボタン、およびトグル ボタンには適用されません。 オプション グループに対してのみ適用されます。
BeforeUpdate イベントは、コントロールまたはレコードが更新されるときに発生します。 レコード内では、コントロールがフォーカスを失ったとき、またはユーザーが Enter キーまたは Tab キーを押すと、各コントロールの変更されたデータが更新されます。フォーカスがレコードから離れたとき、またはユーザーが [レコード] メニューの [レコードの保存] をクリックすると、レコード全体が更新され、データがデータベースに保存されます。
フォームのコントロールに新しいデータまたは変更されたデータを入力し、別のレコードに移動するか、[レコード] メニューの [レコードの保存] をクリックしてレコードを保存すると、フォームの AfterUpdate イベントは、コントロールの AfterUpdate イベントの直後に発生します。
別のレコードに移動すると、コントロールの Exit イベントと LostFocus イベントが発生し、その後に移動したレコードの Current イベントと、このレコードの最初のコントロールの Enter イベントと GotFocus イベントが発生します。 Exit マクロおよび LostFocus マクロまたはイベント プロシージャを実行せずに AfterUpdate マクロまたはイベント プロシージャを実行するには、[ レコード ] メニューの [ レコードの保存 ] をクリックしてレコードを保存します。
コントロールに対する BeforeUpdate マクロまたはイベント プロシージャは、コントロールのデータが変更された場合にのみ発生します。 このイベントは、演算コントロールの値が変更された場合には発生しません。 フォームに対する BeforeUpdate マクロまたはイベント プロシージャは、レコード (コントロール) のデータが変更された場合にのみ発生します。
フォームでは、 BeforeUpdate イベントを使って、別のレコードに移動する前にカレント レコードの更新を取り消すことができます。
コントロールに新しい値を入力しても、データを保存するまで、つまりレコードが更新されるまでは、 OldValue プロパティの値は変更されません。 更新を取り消すと、コントロールで変更したデータの値が OldValue プロパティの値に戻されます。
BeforeUpdate イベントは、特に次のような複雑な入力検査を行う場合、データの入力検査によく使われます。
- フォームの複数の値を対象とする入力検査
- 入力されたデータによって異なるエラー メッセージを表示する入力検査
- ユーザーが無視できる入力検査
- 他のフォームのコントロールへの参照や、ユーザー定義関数が含まれる入力検査
注:
[!メモ] 簡単な入力検査を行う場合、またはフィールドへの入力要求を行ったりフォーム上で複数のコントロールを検査するなどのより複雑な入力検査を行う場合には、各コントロールの " ValidationRule /入力規則" プロパティと、テーブルのフィールドやレコードの " ValidationRule /入力規則" および " Required /値要求" プロパティを使って入力検査を実行することができます。
イベントのプロシージャで BeforeUpdate イベントを発生したコントロールに含まれるデータを変更しようとすると、実行時エラーが発生します。
例
次の例では、BeforeUpdate イベント プロシージャを使用して、製品名が既にデータベースに入力されているかどうかを確認する方法を示します。 ユーザーが ProductName ボックスに製品名を入力すると、値は Products テーブルの ProductName フィールドと比較されます。 Products テーブルに一致する値がある場合、製品が既に入力されていることをユーザーに通知するメッセージが表示されます。
次の使用例の実行結果を確認するには、ProductName という名前のテキスト ボックスが配置された Products という名前のフォームに対し、次のイベント プロシージャを追加します。
Private Sub ProductName_BeforeUpdate(Cancel As Integer)
If(Not IsNull(DLookup("[ProductName]", _
"Products", "[ProductName] ='" _
& Me!ProductName & "'"))) Then
MsgBox "Product has already been entered in the database."
Cancel = True
Me!ProductName.Undo
End If
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。