Ms-Access
Microsoft Access 列錶框查詢
我在 Microsoft Access 中有 2 個表。
表格1:
ID Val1 Val2 Val3 1 a b c 2 e f g 3 h i j
表 2:
ID Val Chosen 1 a 2 f 3 j
在Val Chosen欄位中,我希望 Access 在Val Chosen中創建一個列錶框,其中包含各個 id的Val1、Val2、Val3中的值。例如,當使用者點擊 ID 為 1 的記錄的Val Chosen列錶框時,它應該包含“a”、“b”和“c”。ID 為 2 的記錄的Val Chosen列錶框應包含“e”、“f”和“g”。
在“表 2”的設計模式中,顯示控制項設置為列錶框。以下查詢用作行源並錯誤地返回所有可能的值。
SELECT Val1 FROM Table1 UNION SELECT Val2 FROM Table1 UNION SELECT Val3 FROM Table1
實際的數據庫有很多記錄,所以如果可能的話,我寧願保留數據庫的結構。
我認為在這種情況下,您最好以表格形式執行此操作。您的 qeury 的問題在於它缺少 where 子句。例如,對於 id 1,聯合的選擇應該是:SELECT Valx FROM Table1 WHERE ID=1
例如,在表單上,您可以通過根據 ID 的值在目前事件中設置行源來執行此操作。
是的,您的數據庫結構可能需要更新。這可以通過一個簡單的查詢來完成。
您是否嘗試過在行源查詢中使用 WHERE 條件?直接在表格中處理不是一個好主意,而是使用表格。您可以使用表單組合框輕鬆完成此操作。如果沒有 WHERE 條件,您將無法過濾內容。您可以按照以下方法:
- 創建一個表單(表單源表 2),其中包含已選擇行源值的綁定組合框
- 使用數據源表 1 創建子表單,並插入綁定到 val1、val2、val3 的文本框或組合框。
- 將子表單插入到先前創建的表單中。
- 使用連結主子欄位(簡單)或 VBA 程式碼(通用)根據所選的選定值過濾子表單的內容。
- 如果您想遵循此方法,我可以提供程式碼和範例數據庫。
此外,您還可以查看此連結(https://www.everythingaccess.com/tutorials.asp?ID=Build-a-search-criteria-form)。希望能幫助到你。
最好的祝福