Microsoft 提供的編程示例只用於演示目的,不附帶任何明示或暗示的保證。這包括但不限於對適銷性或特定用途適用性的暗示保證。本文假定您熟悉所演示的編程語言以及用於創建和調試過程的工具。Microsoft 的支持工程師可以幫助解釋某個特定過程的功能,但是他們不會修改這些示例以提供額外的功能或構建過程以滿足您的特殊需求。警告:執行本示例中的步驟將會修改示例數據庫 Northwind.mdb。您可能需要備份 Northwind.mdb 文件,並在該數據庫的副本上執行這些步驟。
啟動 Access。
在“幫助”菜單上,指向“示例數據庫”,然後單擊“羅斯文示例數據庫”。
在“設計”視圖中打開“客戶”窗體。
在該窗體中添加一個命令按鈕和一個文本框,然後設置下列屬性:
命令按鈕
------------------------
名稱:cmdSearch
標題:搜索
單擊:事件過程
文本框
--------------
名稱:txtSQL
寬度:4.4583"
高度:1.25"
將該命令按鈕的“單擊”屬性設置為以下事件過程:
Private Sub cmdSearch_Click()
On Error Resume Next
Dim ctl As Control
Dim sSQL As String
Dim sWhereClause As String
'Initialize the Where Clause variable.
sWhereClause = " Where "
'Start the first part of the select statement.
sSQL = "select * from customers "
'Loop through each control on the form to get its value.
For Each ctl In Me.Controls
With ctl
'The only Control you are using is the text box.
'However, you can add as many types of controls as you want.
Select Case .ControlType
Case acTextBox
.SetFocus
'This is the function that actually builds
'the clause.
If sWhereClause = " Where " Then
sWhereClause = sWhereClause & BuildCriteria(.Name, dbtext, .Text)
Else
sWhereClause = sWhereClause & " and " & BuildCriteria(.Name, dbtext, .Text)
End If
End Select
End With
Next ctl
'Set the forms recordsource equal to the new
'select statement.
Me.txtSQL = sSQL & sWhereClause
Me.RecordSource = sSQL & sWhereClause
Me.Requery
End Sub
保存窗體,然後在“窗體”視圖中將其打開。
請注意,當您單擊“搜索”命令按鈕時,“txtSQL”文本框將反映根據“客戶”窗體上的值創建的查詢。同時,Access 還會重新查詢“客戶”窗體,以使其反映新 SQL 字符串的結果。