根据未绑定的控制值

时间:2015-07-15 18:24:23

标签: forms ms-access ms-access-2013

我有一个绑定到查询的表单,除了一个我保持未绑定的字段。这个想法是用户将在该文本框中输入一个值,然后按一个按钮调出记录。我有一些我认为可以基于互联网工作的代码。当我使用DoCmd.ApplyFilter(filter_string)时,我会得到一个弹出窗口,询问要过滤的值(这不是我想要的)。当我继续粘贴它时,表单不会被填充。当我使用Me.Form.Filter = filter_string时,无论filter_string说什么,有时表单都会填充,但始终使用相同的记录。示例filter_string

filter_string = "InventoryDetailsID = 'B01MFC000100/01'"

我有另一种类似的形式,它不是填充现有的查询,而是生成查询(带有5个连接)并从结果记录集中填充表单。它运行得很好,但速度很慢,因为它每次都必须运行查询。这就是为什么我想使用一种方法,我生成一次查询,然后过滤它。

修改

哦,我也尝试在run-the-query-every-time方法中使用一个变体,在那里我查询已经生成的查询(我正在尝试过滤的那个)。我正在使用:

query_string = "SELECT * FROM qry_ISBN_All WHERE InventoryDetailsID LIKE '" & Me.InventoryDetailsID & "';"

但我收到错误Run-time error '3061' Too few parameters, expected 1

编辑II

Private Sub btn_Seek_Click()
    Dim temp As String
    filter_string = "InventoryDetailsID = '" & Me.InventoryDetailsID & "'"
    Me.temp = filter_string
    Me.FilterOn = True
    Me.Form.Filter = filter_string
    Me.FilterOn = True
    'DoCmd.ApplyFilter (filter_string)
'    Dim query_string As String
'    query_string = "SELECT * FROM qry_ISBN_All WHERE InventoryDetailsID LIKE '" & Me.InventoryDetailsID & "';"

End Sub

给出了典型的过滤字符串。它打印到表单控件Me.temp

1 个答案:

答案 0 :(得分:1)

这一行之后:

Me.Filter = filter_string 

将其添加到:

Me.FilterOn = True

同样我同意,每次进场肯定是矫枉过正时运行查询。过滤器应为您提供所需的功能。你只需要打开它就可以了。设置后。