【发布时间】:2020-07-06 16:12:50
【问题描述】:
我有一个带有订单数据库的 Access 数据库,我的用户使用的主要表单是拆分表单视图,顶部是一个不错的 GUI 记录查看器,底部是这些记录的数据表列表视图。
在表单上,我有一个文本框,用户可以在其中输入数字以将订单号提交给数据表中的文件管理器。该代码位于_Change() 下,因此它正在使用匹配的订单号积极更新数据表。
订单有如下几个字段:
状态:待定、打开、关闭
类型:供应商、分销商、合同
我创建了一个选项组以允许用户选择 OPEN 然后仅查看 open 订单或 OPEN & Vendor 仅查看 open 和 vendor 订单。该代码位于_Click() 下,并通过一个案例语句和每个案例的表单过滤器来完成。
但我的问题是,如果选择了其中一个选项并且用户开始输入订单号,则按订单号搜索的代码将清除过滤器并忽略选项组选择设置的过滤器。
能够选择一个过滤掉记录的案例,然后使用form 上的textbox 搜索中的条目搜索这些记录的想法是什么?
我猜我需要删除我的文本框搜索中的代码部分,该部分会屏蔽过滤器,但我想知道是否有一种想法方法来执行这种类型的过滤器然后搜索。
谢谢。
更新 1:
在下面添加了我的代码。这是用户用于搜索零件编号 (PARTNO) 的组合框/文本框。他们可以输入零件编号的任何部分,并且在输入新字符时过滤器会自动过滤。
Private Sub cmbPARTNOSEARCH_Change()
If Nz(Me.cmbPARTNOSEARCH.Text) = "" Then
Me.cmbPARTNOSEARCH.Enabled = True
Me.Form.Filter = ""
Me.FilterOn = False
ElseIf Me.cmbPARTNOSEARCH.ListIndex <> -1 Then
If Me.cmbPARTNOSEARCH.ListIndex <> -1 Then
Me.Form.Filter = "[PARTNO] = '" & _
Replace(Me.cmbPARTNOSEARCH.Text, "'", "''") & "'"
Me.FilterOn = True
Else
Me.Form.Filter = "[PARTNO] Like '*" & _
Replace(Me.cmbPARTNOSEARCH.Text, "'", "''") & "*'"
Me.FilterOn = True
End If
End If
Me.cmbPARTNOSEARCH.SetFocus
Me.cmbPARTNOSEARCH.SelStart = Len(Me.cmbPARTNOSEARCH.Text)
End Sub
【问题讨论】:
-
为了帮助您,我们需要查看您现有的代码。请编辑您的问题并添加它。
-
已添加代码。谢谢。