2013-02-19 24 views
0

我試圖在Access中創建一個查詢。簡單訪問查詢

比方說,例如,我有四個領域:數字1-26,字母AZ,26名和26個城市,這樣一個記錄可能是:2,B,簡,紐約

我想創建並保存一個新的查詢: 數字字段,字母字段和名稱字段。我希望字母字段在「A」或「B」上過濾,名稱字段有一個表達式,因此它始終爲0.

這將成爲一個循環,因此它會創建13個查詢(A/B,C/D等)。

看起來好像在VBA中有這個過程而不是Access宏構建器會更好,因爲我不但必須循環這個過程,而且還有兩個類似的表(相同的字段名稱,不同的值)需要運行它。

+3

你想創建多個查詢我不認爲。您想要創建一個查詢並使用宏/ VBA以多個輸入參數運行它。 – JohnFx 2013-02-19 17:07:57

+1

使用查詢設計窗口創建查詢,然後在條件行上添加參數,例如:[[輸入數字:]查看您是否獲得了所需的數據,然後轉到更高級的方法,例如使用一個參數的形式。 – Fionnuala 2013-02-19 17:18:24

回答

3

您可以運行使用記錄您在VBA查詢,然後將數據從那裏開始工作:

Sub YourQueries(ByVal pstrCol1 As String, ByVal pstrCol2 As String, ByVal pstrCol3 As String, ByVal pstrCol4 As String) 
Dim rs As Recordset 
Dim strSQL As String 

' Change types above to match what's actually in the table 

strSQL = "SELECT YourColumn1, YourColumn2, YourColumn3, YourColumn4 " 
strSQL = strSQL & " WHERE " 
strSQL = strSQL & "YourColumn1='" & pstrCol1 & "'" 
strSQL = strSQL & " AND YourColumn1='" & pstrCol1 & "'" 
strSQL = strSQL & " AND YourColumn1='" & pstrCol1 & "'" 
strSQL = strSQL & " AND YourColumn1='" & pstrCol1 & "'" 

Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot) 
While Not rs.EOF 
    For i = 0 To 3 
    Debug.Print rs.Fields(i) & " is Column" & Format(i) 
    Next i 
    rs.MoveNext 
Wend 
rs.Close 
Set rs = Nothing 
End Sub