我有一个像这样的子表单:
当我点击“选择”按钮时,我希望主表单上的记录导航到相应的一个(具有相同员工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(对象不支持此属性或方法)。
有什么想法吗?我觉得我过于复杂了。
答案 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