在Microsoft Access项目

时间:2017-06-04 09:42:58

标签: vba ms-access navigation access-vba ms-access-forms

我的Microsoft Access项目出现问题。

该项目包含两个名为InfoFormSearchBox的表单。

InfoForm表格

InfoForm表单是主要表单,具有以下内容:

  • 自定义导航按钮,是; NextPrev
  • 自定义Search button,用于打开SearchBox表单。

SearchBox表格

SearchBox表单用于浏览和打开单个记录,并具有以下内容:

  • 可用的individual records
  • 列表
  • Open按钮

个人记录

个人记录以InfoForm形式打开。

我在Open' button of the SearchBox`表单上使用此代码,如下所示:

Private Sub Command1_Click()

Dim strLN As String
strLN = Me.SearchResults.Column(0)

Dim strGN As String
strGN = Me.SearchResults.Column(1)

Dim strMN As String
strMN = Me.SearchResults.Column(2)

DoCmd.OpenForm "InfoForm", acNormal, , _
              "[Last Name] = '" & strLN & "' And " & _
              "[Given Name] = '" & strGN & "' And " & _
              "[Middle Name] = '" & strMN & "'"

DoCmd.Close acForm, "SearchBox"

End Sub

此代码在首次打开InfoForm表单时效果很好,直到individual record打开。

此时,导航按钮" Next"和"上一页"在InfoForm'形式停止工作。

请帮忙。谢谢。

1 个答案:

答案 0 :(得分:1)

正如@Andre所指出的,如果表单被过滤为单个记录,则没有要导航到的成功记录或先前记录。您的过滤条件是否会产生单个记录数据集?

另一种方法是打开未经过滤的表单(或使用返回受限数据集的过滤器,但通常仍会有多个记录),然后转到'所需的记录,然后将有成功和先前的记录导航。我的代码示例:

打开表格: DoCmd.OpenForm "Samples", , , , , acDialog, strLabNum

然后打开表单后面的代码:

Private Sub Form_Open(Cancel As Integer)
Me.RecordsetClone.FindFirst "LabNum='" & Me.OpenArgs & "'"
Me.Bookmark = Me.RecordsetClone.Bookmark
End Sub