|
ある処理をするには最適なイベントと言うのものあります。
> いくつかのコンボボックスの内、「件名」というコンボボックスをクリックすると、入力が開始されたと認識させようと、以下の構文を書きました。
もし、そのコンボボックスをクリックせずに他のコンボボックスから入力して、レコード保存してしまったら、連番が未入力になるということも考えられます。
フォームのイベントを見てみると、「挿入前処理」というものがあります。ヘルプを見ると、
-------------------------------------------------------------------------
BeforeInsert イベントは、新規レコードに最初の文字を入力したときに発生します。
-------------------------------------------------------------------------
とあります。
このイベントが希望の処理には最適だと思われます。
Private Sub Form_BeforeInsert(Cancel As Integer)
Me.連番 = Nz(DMax("連番", "テーブル"), 0) + 1
End Sub
Refresh するとレコード保存されます。そうするとEscで入力取消ができなくなります。その辺も考慮する必要があります。
よくよく考えて設計してください。
別案として、レコード移動時に、既定値プロパティを設定するという方法もあります。
この場合は、新規レコードへ移動した時点で、連番が表示されます。
Private Sub Form_Current()
If Me.NewRecord Then Me.企業ID.DefaultValue = Nz(DMax("連番", "テーブル"), 0) + 1
End Sub
お好みで選択してください。
|
|