今回はアクセスの質問です。特定のテーブルにバインドされたフォームがあり、[保存] ボタンをクリックすることで、このフォームに新しいエントリの追加 (編集や削除ではなく) のみを許可したいと考えています。最初の問題は、テキストボックスの編集中にレコードが更新されたことです。私が持っているソリューションにはいくつかの問題があります
Option Compare Database
Option Explicit
Private bSaveRecord As Boolean
Private Sub btCreateRecord_Click()
bSaveRecord = True
Me.tblUMgmtUser_UserDetailsID.Value = Me.tblUMgmtUserDetails_UserDetailsID.Value
Me.tbSetUserHashPW = "12312"
Me.cbSetInitPW = True
DoCmd.GoToRecord , , acNext
End Sub
Private Sub btResetRecord_Click()
ResetRecord
End Sub
Private Sub Form_AfterUpdate()
bSaveRecord = False
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If Not bSaveRecord Then
Cancel = True
Me.Undo
End If
End Sub
Private Sub Form_Load()
Me.Username.SetFocus
DoCmd.GoToRecord , , acNewRec
bSaveRecord = False
End Sub
Private Sub ResetRecord()
Dim cControl As Control
bSaveRecord = False
For Each cControl In Me.Controls
If cControl.Name Like "Text*" Then cControl = vbNullString
Next
Me.cbResponsible.Value = False
Me.Undo
End Sub
問題 1: 自動的に生成したいレコードに値を保存するために非表示のテキスト ボックスを追加する必要がある
問題 2: 以前にレコードを追加していなくても、フォームを開くたびに ID 列がカウントアップする
一般的に言えば、私のソリューションは非常に堅牢でエレガントではありません。どんな提案でも大歓迎です
どうもありがとうジョン