我正在嘗試使與子窗體類似的子窗體。刪除/添加具有主窗體的類似記錄源的子窗體上的記錄
我會使用分割形式,但據我所知,我不能過濾分割形式的數據表部分的結果,而不能過濾其餘部分的結果。 請參見這裏...
subformPartDetail只返回OrderID等於mainform的OrderID的記錄。 mainform中沒有過濾器,因此無論OrderID如何,它都會返回所有partDetail記錄。在這個特殊情況下,主窗體有21條記錄循環,因爲子窗體只有四條記錄。
我使用子窗體添加或刪除記錄時發生問題。當我嘗試使用主表單循環瀏覽記錄時,添加的表單會被跳過,刪除的表單會拋出一個錯誤,告訴我我正嘗試訪問的記錄已被刪除。 我糾正它像這樣通過把這些子窗體的事件......
Private Sub Form_AfterInsert()
Dim frm As Form
Dim rst As Recordset
Set frm = Forms!PartDetails
Set rst = frm.Recordset
rst.Requery
End Sub
Private Sub Form_Delete(Cancel As Integer)
Dim frm As Form
Dim rst As Recordset
Set frm = Forms!PartDetails
Set rst = frm.Recordset
rst.Requery
End Sub
但說我試圖刪除的MainForm從子窗體顯示記錄。該代碼不起作用,不會重新查詢。當我離開,然後回到那條記錄時,它會拋出一個錯誤。
我該如何解決這個問題?
我知道我可以將其刪除之前使用
rst.move
我不知道從哪裏開始測試正被刪除的記錄是否是同一個記錄被刪除的一個動議主窗體正在顯示。
子窗體和主窗體都從相同的記錄集中拉出。兩者都可以添加和刪除相同記錄集中的記錄。 – adanthuis
即使設置了鏈接子字段和主字段,當從子窗體中給出添加和刪除命令時,主窗體不會重新查詢。 – adanthuis
對不起,我誤解了。也許你應該使用單獨的查詢來拉取子表單數據。 –