我在MS Access 2010中有一堆表單。它們都是綁定的表單,但是我欺騙它們僅在單擊btnSave
時才保存。如何從模塊(VBA)中的MS Access中獲取實際表單的實例
主要的問題是我有相當多的代碼是相同的一些事件,如form_beforeUpdate()
或form_afterUpdate()
或form_Load()
。舉個例子:
Private Sub btnSave_Click()
'Check first that all fields have been filled
If CheckAllFields = True Then
Exit Sub
End If
TempSaveRecord = True
Me.Dirty = False 'this will make an attempt of form_Update()
Form_Load 'After Saving we restart the data
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If TempSaveRecord = False Then
Me.Undo
Exit Sub
End If
End Sub
CheckAllFields
僅僅是檢查所有的必填字段是否是一個常規的不null
:
Private Function CheckAllFields() As Boolean
Dim Ctrl As Control
CheckAllFields = False
'Check for unfilled fields
For Each Ctrl In Me.Controls
If Ctrl.Tag = "required" And IsNull(Ctrl) Then
MsgBox "The field " & Ctrl.Name & " has not been filled."
CheckAllFields = True
Exit For
End If
Next Ctrl
End Function
我想做到這一切在短短的一個模塊,但我可以」 t找到一種方法來獲取當前表單的實際實例。任何幫助將不勝感激。
感謝
太棒了!謝謝@enderland它的作品完美,我應該問過這個,現在我有20個表格來更新。 – EricPb
@EricPb我知道你的意思,我有類似的問題,有一天剛剛崩潰,花了一個....而更新所有這些有這樣的事情。相信我,你會感激(特別是因爲我對大多數開放/關閉/當前事件進行回調,這些回調在很多形式上都是相同的)。 – enderland