子窗体在主窗体上搜索记录

时间:2015-10-16 15:52:52

标签: forms vba ms-access record subform

我有一个像这样的子表单:

enter image description here

当我点击“选择”按钮时,我希望主表单上的记录导航到相应的一个(具有相同员工ID的那个)。

到目前为止我所尝试的是按下按钮以运行以下vba:

Private Sub Command6_Click()
Dim rs As Object
Dim strLinkValue As String
strLinkValue = Forms![navigation form]![NavigationSubform]![teacher search qry subform]![Staff ID].Value
Set rs = Forms![navigation form]![NavigationSubform]![teacher search qry subform].Form.RecordsetClone
rs.FindFirst "[Staff ID] = '" & strLinkValue & "'"
Forms![navigation form]![NavigationSubform].Bookmark = rs.Bookmark
End Sub

但是当我这样做时,我得到运行时错误438(对象不支持此属性或方法)。

有什么想法吗?我觉得我过于复杂了。

1 个答案:

答案 0 :(得分:3)

您首先在此行收到错误438(“对象不支持此属性或方法。”)...

Set rs = Forms![navigation form]![NavigationSubform].Recordset.Clone

Recordset.Clone更改为Form.RecordsetClone可以解决错误(在该行)。

不幸的是,当您尝试在此行设置Bookmark时,您再次收到错误438 ...

Forms![navigation form]![NavigationSubform].Bookmark = rs.Bookmark

此时出错的原因是[NavigationSubform]是子窗体控件,而控件没有Bookmark属性。您需要在该控件中包含的Bookmark上设置Form

此代码执行我认为您想要的内容。我在Access 2010中使用您的数据库副本对其进行了测试。

Dim rs As DAO.Recordset
Dim strLinkValue As String

strLinkValue = Me![Staff ID].Value
With Me.Parent.Form
    Set rs = .RecordsetClone
    rs.FindFirst "[Staff ID] = '" & strLinkValue & "'"
    .Bookmark = rs.Bookmark
End With