我有一個Form鏈接到Query. 在這種形式中,每一行都包含一個超鏈接值,它打開另一個Form包含該行資料的超鏈接值。在二級表單中獲得的資料執行如下(以下代碼為二級表單):
Public Sub Form_Load()
DoCmd.SearchForRecord acTable, "Secondary_Form", acFirst, "[Field1] = " & TempVars!currentRec
End Sub
單擊特定記錄的超鏈接欄位值時,父表單包含以下代碼:
Public Sub Field1_Click()
TempVars.Add "currentRec", "" & [Field1]
DoCmd.openForm "Secondary_Form", acNormal, "", "", , acDialog
End Sub
在包含記錄詳細資訊的輔助表單中,我有一個帶有以下事件的“關閉”按鈕,在關閉資料時,“應該”使用輔助表單所做的任何更改重繪 父表單,但它沒有:
Private Sub Cancel_Click()
CommandBars.ExecuteMso "DataRefreshAll"
DoCmd.Close acForm, Me.name
End Sub
由于主表單鏈接到查詢,查詢鏈接到表,我已經驗證輔助表單對記錄的更改反映在表中,因此也反映在查詢中。但是,我可以讓父表單反映在輔助表單中所做的更改的唯一方法是手動點擊“主頁”選項卡中的“全部重繪 ”。
我還嘗試打開父表單(即使它已經在輔助表單后面打開),并運行 a Requeryand Refresh,這沒有導致通過記錄的更改更新主表單:
Private Sub Cancel_Click()
Dim fm As Form
DoCmd.openForm "Main_Form", acNormal
Set fm = Forms("Main_Form")
fm.Requery
fm.Refresh
DoCmd.Close acForm, Me.name
End Sub
如何使用 VBA 代碼重繪 主表單而不是手動單擊“全部重繪 ”?
uj5u.com熱心網友回復:
關閉輔助表單后代碼回傳時重新查詢主表單:
Public Sub Field1_Click()
TempVars.Add "currentRec", "" & [Field1]
DoCmd.openForm "Secondary_Form", acNormal, "", "", , acDialog
' Seconday Form closes.
Me.Requery
End Sub
無需重新打開主表單,因為它尚未關閉:
Private Sub Cancel_Click()
DoCmd.Close acForm, Me.name
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/314221.html
