我有一個子窗體的主窗體。主窗體綁定到一個表,其中主鍵爲ID1
,外鍵爲ID2
。將主表格從Subfrom移動到特定記錄
主要形式/子窗體關係建立在ID2
,所以主要的形式將顯示1所記錄的時間,然後子窗體將顯示所有相關記錄在主窗體上當前的記錄相匹配ID2
說。
我想使用的子窗體記錄中的命令按鈕,這樣我可以在主窗體的子窗體使用ID1
場移動到特定記錄:
Private Sub cmdLoadAssess_Click()
Dim rs As DAO.Recordset
Dim frm As Form
Set frm = Me.Parent
Set rs = frm.RecordsetClone
rs.FindFirst "ID1=" & Me.ID1
If _
Not rs.NoMatch _
Then
Debug.Print "Match found for " & Me.ID1
frm.Bookmark = rs.Bookmark
Else
Debug.Print "No match found for " & Me.ID1
End If
End Sub
可惜,這似乎只是能夠在ID1
上找到匹配主表單中的當前記錄(這是毫無意義的,因爲主表單已經存在!)
我知道這些記錄存在(它們就在子表單中),而那些Debug.Print
行告訴我ID1
正在傳遞子窗體。我在這裏錯過了什麼?
編輯: 做一個rs.MoveLast
,然後檢查克隆記錄的rs.RecordCount
和rs!ID
,似乎只有在主窗體上當前的記錄已被克隆的記錄,而不是整個表,主要的形式是後勢必。爲什麼它不克隆主表單的整個記錄集?
我正要建議'rs.MoveLast'和'Debug.Print rs.RecordCount' - 你確定的主要形式有完整的表格作爲記錄來源,而不僅僅是一條記錄?你可以在主窗體中手動導航嗎? – Andre
我想我已經發現了我的問題(與剛剛提到的問題相同),但我需要測試它。當表單打開時,它打開一個特定的記錄,它似乎使用'。過濾表單的屬性。因此,在嘗試查找其中的其他記錄之前,記錄集本質上已經過濾了。 –
在這種情況下,你會'frm.Filter =「ID1 =」&Me.ID1'而不是使用書籤。 – Andre