2010-12-22 72 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 

我希望這可以幫助。