双击某个值时我需要打开一个表单。该值将传递给打开的表单。我希望表单直接过滤该值而不是先按下按钮。我尝试过滤变更和负载,但它不起作用。加载时它不知道该值,因为它在打开表单后被添加 这是传递值的代码:
DoCmd.OpenForm "SubmenuRubrieken", acNormal
Forms!SubmenuRubrieken.Tv_rubrieknaam.Value = Me.Tekst14.Value
这是在Tv_rubrieknaam中过滤该值的代码:
Dim filter As String
filter = ""
If Not IsNull(Tv_rubrieknaam) Then filter = filter & " AND rubrieknaam = '" & Tv_rubrieknaam.Value & "'"
Me.filter = Right(filter, Len(filter) - 5)
Me.FilterOn = True
由于某种原因,它不会在更改Tv_rubrieknaam的值时触发过滤器。我该如何解决这个问题?
答案 0 :(得分:0)
我想,Form_Load()
事件在您设置值之前完成(OpenForm在设置值之前执行),因此您必须在Textfield的OnChange()
事件中进行过滤或类似。
更好:使用Me.Text14.Value
命令将DoCmd.OpenForm
作为准备好的whereCondition或OnAoad事件中带有过滤选项的OpenArgs传递。
一个基本的例子:
我需要做的就是将以下代码添加到Form1的模块中,当我点击Text0 Form2时,将打开过滤到Field1 = 2的行
Private Sub Text0_Click()
DoCmd.OpenForm "Form2", acFormDS, , "Field1 = " & Nz(Me!Text0, 0)
End Sub