我正在嘗試爲搜索2010進行搜索客戶表單。在Access 2010中構建搜索表格
我喜歡根據查詢搜索具有選項組。我做了一個搜索查詢尋找名字或姓氏。兩個文本框也出現在窗體上填寫查詢輸入(姓和名)
我需要選項組,以便我可以選擇結果名稱作爲預訂目的。
在過去,我使用子窗體和複選框做了一個間接的方法。 然後將兩個結果加載到子窗體和複選框(查詢)上,以便用戶只需在複選框上進行選擇。但是這一次我希望選項成爲查詢結果本身!請幫忙。
我正在嘗試爲搜索2010進行搜索客戶表單。在Access 2010中構建搜索表格
我喜歡根據查詢搜索具有選項組。我做了一個搜索查詢尋找名字或姓氏。兩個文本框也出現在窗體上填寫查詢輸入(姓和名)
我需要選項組,以便我可以選擇結果名稱作爲預訂目的。
在過去,我使用子窗體和複選框做了一個間接的方法。 然後將兩個結果加載到子窗體和複選框(查詢)上,以便用戶只需在複選框上進行選擇。但是這一次我希望選項成爲查詢結果本身!請幫忙。
下面是一個使用一個列表框的簡單示例:
表:客戶端
ID - 自動編號
名字 - 文本(255)
姓 - 文本(255)
電子郵件 - 文本(255)
測試數據:
ID LastName FirstName Email
-- ---------- -------------- ------------------
1 Thompson Gord [email protected]
2 Loblaw Bob [email protected]
3 Kingsley Hank [email protected]
4 Thompson Hunter S. [email protected]
5 Squarepants Spongebob [email protected]
6 O'Rourke P. J. [email protected]
7 Aldrin Edwin "Buzz" [email protected]
表格佈局:這種形式
VBA模塊:
Option Compare Database
Option Explicit
Private Sub Form_Load()
Me.lstSearchResults.RowSource = ""
End Sub
Private Sub btnSearch_Click()
Me.lstSearchResults.SetFocus
Me.lstSearchResults.Value = Null
Me.lstSearchResults.RowSource = _
"SELECT ID, LastName, FirstName FROM Clients " & _
"WHERE LastName LIKE ""*" & DQ(Me.txtSearchLastName.Value) & _
"*"" AND FirstName LIKE ""*" & DQ(Me.txtSearchFirstName.Value) & "*"""
End Sub
Private Function DQ(s As Variant) As String
' double-up double quotes for SQL
DQ = Replace(Nz(s, ""), """", """""", 1, -1, vbBinaryCompare)
End Function
Private Sub btnLookupEmail_Click()
If IsNull(Me.lstSearchResults.Value) Then
Me.txtEmail.Value = ""
Else
Me.txtEmail.Value = DLookup("Email", "Clients", "ID=" & Me.lstSearchResults.Value)
End If
End Sub
當窗體第一次打開,一切都是空的。
鍵入 「湯普森」(不帶引號),然後單擊btnSearch
填充列表框與客戶WHERE LastName LIKE "*thompson*"
。 (如果你看一下代碼,你會看到,它也將匹配名字,如果你提供一個)。
選擇在列表框中的一個項目,然後單擊btnLookupEmail
和電子郵件地址顯示在下面的文本框中。
這太棒了。我沒有意識到它也可以使用listbox來完成。我不太瞭解使用SQL代碼,但我清楚地理解代碼。
但是可以使用frameset(選項grp)來代替嗎?
我的程序將隱藏在用戶按「下一步」(假設他選擇的結果值在目前的形式。所以,我會一直延續所選值到使用全鏈接地址,格式爲「形式下一個表格!窗體名稱!對象.value的」是否可以使用CurrentValue的列表框的下一個形式
–
Daytron
2013-03-28 12:40:07
@Daytron回覆:‘?是否可以使用列表框的CurrentValue的下一個形式’ - 我不明白爲什麼不。'forms!formname!lstSearchResults.Value' should be working if formname'仍然被加載,即使它是隱藏的。列表框被設計爲保存可變數量的可能選擇,而選項組實際上是用於固定 – 2013-03-28 14:24:29
謝謝,我很感謝幫助,最後一個問題,我發現一些線我不明白
從R語法替換功能:
替換(string1,查找,替換,[開始,[計數,[比較]]])
爲什麼你需要替換以及爲什麼字符串是Nz(s,「」)? –
Daytron
2013-03-28 16:13:58
使用組合框或列表框有什麼問題? – wakjah 2013-03-28 09:22:17
從結果(選項組)中,我可以直接選擇任何記錄,並且當按下「下一步」按鈕時,它會將數據傳送到下一個表單,這樣做會更好嗎? 而不是有兩個「結果」對象(子窗體和複選框)。這是多餘的。 – Daytron 2013-03-28 12:28:35
我的客戶搜索表單與此類似:我頂部有一個搜索文本框。我有一個連續的所有客戶的形式。在用戶在搜索框中輸入文本之後,我通過創建一個基於每個字段名稱的條件來過濾記錄集,如下所示:'姓氏像*%s *或姓氏像*%s *'並且用'%s'替換'%s'搜索框中的文字。我認爲這很漂亮。然後,用戶點擊聯繫人姓名右側的箭頭按鈕,以全新的形式在詳細視圖中選擇或查看該聯繫人。 – Bobort 2013-12-19 22:25:11