Ms-Access

Microsoft Access 列錶框查詢

  • December 14, 2021

我在 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的Val1Val2Val3中的值。例如,當使用者點擊 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 條件,您將無法過濾內容。您可以按照以下方法:

  1. 創建一個表單(表單源表 2),其中包含已選擇行源值的綁定組合框
  2. 使用數據源表 1 創建子表單,並插入綁定到 val1、val2、val3 的文本框或組合框。
  3. 將子表單插入到先前創建的表單中。
  4. 使用連結主子欄位(簡單)或 VBA 程式碼(通用)根據所選的選定值過濾子表單的內容。
  5. 如果您想遵循此方法,我可以提供程式碼和範例數據庫。

此外,您還可以查看此連結(https://www.everythingaccess.com/tutorials.asp?ID=Build-a-search-criteria-form)。希望能幫助到你。

最好的祝福

引用自:https://dba.stackexchange.com/questions/274999