Access中的搜索表单

时间:2010-12-22 19:36:32

标签: ms-access

我想实现一个搜索表单来操作访问表。

但是当我选择表格然后创建一个From时,我得到表格中的所有表格数据而不是搜索字段。当我更改任何值时,表值会发生变化。我希望有一个文本字段,用户可以输入搜索条件并点击搜索btn,搜索结果显示为表格中的表格或消息框。

3 个答案:

答案 0 :(得分:3)

您可以在搜索后将数据添加到表单中,但为了保持整洁,您可能希望考虑带有搜索框的未绑定表单和结果的子表单。我们假设您有两个框,txtName和txtDate以及一个搜索按钮,然后会运行一个非常粗略的想法:

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

当然,您应该确保控件中的数据合理且干净并且返回记录。

答案 1 :(得分:0)

您可以使用类似的内容在打开时将表单置于搜索模式:

Private Sub Form_Open(Cancel As Integer)
    'DoCmd.DoMenuItem acFormBar, acRecordsMenu, acFilterByForm, , acMenuVer70
     DoCmd.RunCommand acCmdFilterByForm
End Sub

答案 2 :(得分:-1)

我创建的搜索表单非常方便。要设置要搜索的表单,您需要创建搜索查询。例如,我的表单包含以下字段:关键字和来源。因此,您需要将查询链接到容纳数据的表。我的搜索查询是

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

我希望这会有所帮助。