我有一个主表单,其中包含一个名为“SF_Liste_Patients”的子表单,子表单的源对象是一个查询,根据条件进行过滤(名为“entree_recherche_nom”的文本框)。
查询:
从患者中选择患者.num_dossier、患者.nom、患者.nom_naissance、患者.prenom、患者.date_naissance,其中患者.nom 像 [entre_recherche_nom] 和“*”;
我在主窗体上有一个搜索按钮:
Private Sub btn_rechercher_Click()
Me.SF_Liste_Patients.Requery
End Sub
这就像一个魅力。
我希望在搜索条件的每一次笔划中都发生重新查询,所以我尝试了这个:
Private Sub entree_recherche_nom_Change()
Me.SF_Liste_Patients.Requery
MsgBox "change"
End Sub
每笔画都会显示msgbox,这意味着每次都会触发该事件,但在这种情况下,子表单不会更新 Precision :我打开查询,它没有显示我想要的结果
为什么这两个控件的行为方式不同?
告诉我您是否需要任何可以帮助您找到问题的精确信息,谢谢。
这是因为文本框没有更新,只是改变了。
您可以更新文本框,
FilterBox
,然后用它来过滤。
属性
Text
保存当前条目:
Private Sub entree_recherche_nom_Change()
' Set filter value.
Me!FilterBox.Value = Me!entree_recherche_nom.Text
' Apply filter.
Me!SF_Liste_Patients.Requery
MsgBox "change"
End Sub
调整SQL:
SELECT Patients.num_dossier, Patients.nom, Patients.nom_naissance, Patients.prenom, Patients.date_naissance FROM Patients WHERE Patients.nom Like [FilterBox] & "*";