我有一個帶有一組表格的 MS Access 資料庫,用于為大型監測專案輸入植被資料。我有一個frmTransect用一個按鈕呼叫的表單,該按鈕打開了第二個表單frmLPI,該表單被設定為一個未系結的主表單,一個名為frmLPIDetail系結到 sql server 資料庫表的子表單。主表單只有兩個未系結的欄位DataObs和DataRec,它們都是組合框。這兩個欄位設定了一個AfterUpdate事件程序來填充子表單中的相應欄位,Data_observer并且Data_recorder。這完美地作業。我想讓未系結的欄位自動填充子表單中的最后一個值,Data_observer并Data_recorder在表單再次啟動時自動填充。為此,我使用了一個FormOpen事件程序。下面是代碼:
Private Sub Form_Open(Cancel As Integer)
Me.TransectOID = Me.OpenArgs
Dim rs As DAO.Recordset
Set rs = Me!frmLPIDetail.Form.RecordsetClone
If rs.RecordCount > 0 Then
If Not rs.BOF Then
rs.MoveLast
rs.MovePrevious
End If
If Not IsNull(rs!Data_recorder.Value) Then
Me.DataRec.Value = rs!Data_recorder.Value
Me.frmLPIDetail.Form.Data_recorder.DefaultValue = """" & Me.DataRec.Value & """"
End If
If Not IsNull(rs!Data_observer.Value) Then
Me.DataObs.Value = rs!Data_observer.Value
Me.frmLPIDetail.Form.Data_observer.DefaultValue = """" & Me.DataObs.Value & """"
End If
rs.MoveLast
rs.MoveFirst
While Not rs.EOF
rs.Edit
rs!Data_recorder.Value = Me.DataRec.Value
rs!Data_observer.Value = Me.DataObs.Value
rs.Update
rs.MoveNext
Wend
End If
rs.Close
Set rs = Nothing
Me.Dirty = False
End Sub
這就是事情變得奇怪的地方。當我單擊 上的命令按鈕時frmTransect,會frmLPI打開,但FormOpen上面的事件程序不會啟動。但是,如果我切換到設計視圖,然后再切換回表單視圖,它會觸發并按預期作業!當我frmLPI使用命令按鈕打開時,如何啟動此事件程序frmTransect?任何幫助將非常感激。
uj5u.com熱心網友回復:
事實證明,它就像在我的代碼塊中添加一個Me.Refreshand一樣簡單Me.Requery:
Private Sub Form_Open(Cancel As Integer)
Me.TransectOID = Me.OpenArgs
Me.Refresh
Me.Requery
Dim rs As DAO.Recordset
Set rs = Me!frmLPIDetail.Form.RecordsetClone
If rs.RecordCount > 0 Then
rs.MoveLast
rs.MovePrevious
If Not IsNull(rs!Data_recorder.Value) Then
Me.DataRec.Value = rs!Data_recorder.Value
Me.frmLPIDetail.Form.Data_recorder.DefaultValue = """" & Me.DataRec.Value & """"
End If
If Not IsNull(rs!Data_observer.Value) Then
Me.DataObs.Value = rs!Data_observer.Value
Me.frmLPIDetail.Form.Data_observer.DefaultValue = """" & Me.DataObs.Value & """"
End If
rs.MoveLast
rs.MoveFirst
End If
rs.Close
Set rs = Nothing
Me.Dirty = False
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/420739.html
標籤:
