2010-12-22 81 views
1

我想实现一个搜索表单来对访问表进行操作。Access中的搜索表单

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

+0

[这是什么用途?](http://www.allenbrowne.com/ser-62.html) – 2013-07-23 19:47:36

回答

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 

你当然应该,确保在合理的和干净的控制数据和该记录被返回。

0

您可以使用像这样打开时把你的形式搜索模式:

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

DoMenuItem自从Access 2000以来已被弃用,恐怕。 – Fionnuala 2010-12-22 22:10:04

-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 

我希望这可以帮助。