我有一个导航表单,其中包含一个subform
和一个recordsource tblA
。
当前,subform
在弹出窗口中显示特定记录。是否有可能在不弹出的情况下在导航表单中显示记录?
Private Sub Search_Change()
Dim where As String
Const SQLResults As String = "SELECT itemNumber, itemName FROM tblMain "
<whereclause> ORDER BY ItemName;"
If Me.Search.Text <> "" Then
where = "WHERE itemName LIKE '*" & Me.Search.Text & "*' "
End If
Me.SearchResults.RowSource = Replace(SQLResults, "<whereclause>", where)
End Sub
下面的代码在弹出窗口中显示记录。
Private Sub SearchResults_Click()
Dim searchCriteria As String
searchCriteria = "[itemNumber]='" & Me![SearchResults].Value & "'"
DoCmd.OpenForm "frmDisplay", acNormal, , searchCriteria
DoCmd.Close acForm, "frmSearch"
End Sub
由于表单frmNavigation
始终处于打开状态:
Private Sub SearchResults_Click()
DoCmd.OpenForm, "frmDisplay", acNormal, , searchCritera
DoCmd.Close acForm, "frmSearch"
End Sub
有人可以帮忙吗?
答案 0 :(得分:0)
我已经做到了!我希望此解决方案可以帮助某人。该代码允许用户在弹出表单上的列表框中选择项目,并将用户带到导航表单上的同一记录。它使表单操作更加简单,而不会弹出子表单。注意:不需要将属性表上的弹出功能设置为false。无论如何,它都会起作用。
Private Sub SearchResults_Click()
Dim searchCriteria As String
Dim rs As Recordset
searchCriteria = "[itemNo]='" & Me![SearchResults].Value & "'"
Set rs = Forms!frmNavigation!NavigationSubform.Form.RecordsetClone
rs.FindFirst searchCriteria
If Not rs.NoMatch Then Forms!frmNavigation!NavigationSubform.Form.Bookmark = rs.Bookmark
Forms!frmNavigation!NavigationSubform.Form.Filter = "[itemNo]=" & Me.SearchResults.Value
Me.FilterOn = True
Set rs = Nothing
DoCmd.Close acForm, "frmSearch"
End Sub