注意:請耐心等待,因爲我對Access相對來說比較陌生......我學到的一切都是通過在必要時搜索Google來實現的。如何顯示Access查詢結果而不必創建臨時查詢?
所以我正在創建一個表單,其唯一目的是通過數據庫進行搜索。在一個用例中,用戶可以選擇多個選項來過濾搜索,出於隱私的原因,我們可以說「藍色,綠色,紅色,棕色」。用戶可以選擇這些顏色的任意組合,包括全部或無。在數據庫表中,有一個主鍵(在我們的例子中是一個ItemID)。表中的其他列是上面的顏色(藍色,綠色,紅色,棕色)。由於這些數據的結構(注意:由於多種原因無法更改),我必須在VBA中創建此SQL查詢,而不是使用Access提供的。
這裏是我用來創建和運行時的「搜索」按鈕被按下的查詢代碼:
Set qdf = Nothing
*Logic to create SQL query... variable to hold query is called sqlStr*
Set qdf = CurrentDb.CreateQueryDef("TemporaryQuery", sqlStr)
DoCmd.OpenQuery qdf.Name
儘可能多的搜索的結果,這是我發現的唯一途徑,除了從使用ADO開始,我可以創建一個SQL查詢IN VBA,然後在VBA中運行它。這種方法的缺點在於它創建了一個查詢,該查詢在查詢再次運行之前必須關閉並刪除。這對於將使用此功能的用戶來說是不可接受的。
我發現的所有例子(請與我一起)使用ADO,我一直無法工作。我有兩個數據庫,一個用於查詢和表單,另一個用於數據本身。包含數據的數據庫具有使用查詢和表單鏈接到數據庫的表格。我不確定ADO是否可以在該設置下工作,但如果可以的話,我一直無法弄清楚。
使用Access來自Java/Webdev背景對我來說有點令人沮喪,因爲它似乎讓事情變得更加複雜(在我看來)它應該是。任何人都可以幫助我正確地工作嗎?
謝謝你的時間...這是非常感謝!
如果結果總是包含根據您的過濾相同的字段,但不同的數據,你可以使用一個子形式設立數據表視圖。 – Zaider
@Zaider你碰巧有一個很好的教程來處理子表單? –
@MikeRinehart用戶只需要查看這些數據,或者具有編輯功能,如果僅僅是從視圖角度來看,那麼你可以在表單上使用一個簡單的「列表框」,你可以設置「列表框」的「Rowsource」屬性到一個SQL字符串 –