Как перейти к конкретной записи, выбранной из списка и отображенной в форме навигации? - PullRequest
0 голосов
/ 27 июня 2019

У меня есть навигационная форма, которая имеет 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

Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 28 июня 2019

Я сделал это!Я надеюсь, что это решение кому-то поможет.Код позволяет пользователю выбрать элемент в списке во всплывающей форме и переносит пользователя к той же записи в форме навигации.Это упрощает работу с формами, не вызывая подчиненную форму.Примечание. Нет необходимости устанавливать для всплывающего окна на листе свойств значение 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...