strSQL = "SELECT aName, aDate FROM aTable WHERE 1=1 "
If Not IsNull(txtName) Then
strWHERE = " AND aName Like '*" & Replace(txtName,"'","''") & "*'"
End If
If Not IsNull(txtDate) Then
strWHERE = strWhere " AND aDate =#" & Format(txtdate,"yyyy/mm/dd") & "#"
End If
Me.SubformControlName.Form.RecordSource = strSQL & strWhere
当然,您应该确保控件中的数据合理且干净并且返回记录 .
3
您可以使用类似的内容在打开时将表单置于搜索模式:
Private Sub Form_Open(Cancel As Integer)
'DoCmd.DoMenuItem acFormBar, acRecordsMenu, acFilterByForm, , acMenuVer70
DoCmd.RunCommand acCmdFilterByForm
End Sub
SELECT KWTable.KW AS Expr1, KWTable.Code, KWTable.Source
FROM KWTable
WHERE (((KWTable.KW) Like "*" & [Forms]![Search_Form]![KW_Text] & "*") AND ((KWTable.Source) Like "*" & [Forms]![Search_Form]![Source_Text] & "*"));
我在框中键入单词并单击按钮执行 . 按钮代码看起来像
Private Sub Command8_Click()
On Error GoTo Err_Command8_Click
Dim stDocName As String
stDocName = "Search_Query"
DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_Command8_Click:
Exit Sub
Err_Command8_Click:
MsgBox Err.Description
Resume Exit_Command8_Click
End Sub
3 回答
您可以在搜索后将数据添加到表单中,但为了保持整洁,您可能希望考虑带有搜索框的未绑定表单和结果的子表单 . 我们假设您有两个框,txtName和txtDate以及一个搜索按钮,然后会运行一个非常粗略的想法:
当然,您应该确保控件中的数据合理且干净并且返回记录 .
您可以使用类似的内容在打开时将表单置于搜索模式:
我创建了一个我使用的搜索表单非常方便 . 要设置要搜索的表单,您需要创建搜索查询 . 例如,我的表单包含以下字段:关键字和来源 . 因此,您需要将查询链接到容纳数据的表 . 我的搜索查询是
我在框中键入单词并单击按钮执行 . 按钮代码看起来像
我希望这有帮助 .