2012-07-17 56 views
1

我又回到了另一個問題。我有一個基於查詢的表單,其中WHERE子句中的參數是表單的組合框。詳細來說,它是連續的窗體視圖,並顯示組合框的所有匹配字段(組合框更新後的重新查詢)。在頁腳上有一個文本框和一個按鈕,用戶可以在此處添加新條目。多個查詢作爲單一表單的記錄源?

我需要基本上有一個這種形式的鏡子旁邊 - 以便他們可以在視覺上進行比較。我需要在頭部中並排放置兩個組合框 - 在詳細信息部分中根據查詢填充兩個控件。我考慮使用子窗體基本上創建這種幻覺,但我不能有連續窗體視圖的子窗體。我想的想法是具有兩個查詢作爲表單的記錄源:

Select value FROM t1 WHERE criteria = me.combo1; 
select value as val2 from t1 WHERE criteria = me.combo2; 

示例數據(相同的結構):

  **Friends** 
    **User   friend** 
    Bob    Jack 
    Bob    Zach 
    Bob    Mack 
    John    Juan 
    John    Sha'Quan 

我將不得不在細節部分A'價值'控制和'val2'控制,這些控制將從不同的查詢和標準填充。

這可能嗎?

或者,我是否應該只有兩個子窗體,每個子窗體都有一個由組合框中選擇的值決定的不同父鍵?我寧願它是我列出的方式,但如果沒有其他選擇,這是我必須做的嗎?

+0

「但我不能有連續窗體視圖的子窗體」爲什麼不?您可以將每個子窗體的相應記錄集設置爲父窗體中相應的組合框。 – 2012-07-18 10:26:25

+0

我可以使用兩個子表單,只是將它們鏈接到位置,但子表單的行爲與具有單一視圖的單一表單的行爲不同。我必須在子窗體內滾動,而不是在窗體本身內滾動。我的意思是說,我不能有一個父窗體的視圖設置爲'連續' – Scotch 2012-07-18 15:19:17

+0

啊我現在看到,理論上我認爲這可能是可能的,如果你要構建自己的自定義滾動條主要的形式,並有它的動作滾動底層子表單(也許有一個API在那裏)我只是在猜測真的,我從來沒有真正做到過自己。 – 2012-07-19 07:49:35

回答

0

試試這個:

SELECT tx.*, ty.* 
FROM (Select id, value FROM t1 WHERE criteria = me.combo1) As tx 
LEFT JOIN (select id, value as val2 from t1 WHERE criteria = me.combo2) As ty 
ON tx.ID = ty.ID 

我不得不重新查詢窗體在更新後事件的第一個組合的。

SELECT x.*, 
     y.* 
FROM (SELECT t1.user, 
       t1.friend 
     FROM t1 
     WHERE (((t1.user) = [forms]![myForm]![combo5]))) AS x 
     INNER JOIN (SELECT user, 
          friend 
        FROM t1 
        WHERE (((t1.friend) = [forms]![myForm]![combo7]))) AS y 
       ON (x.user = y.user) 
        AND (x.friend = y.friend); 
+0

我不確定這是否按預期工作。查詢將基於與標準相同字段的同一張表。它還會提示我輸入ty.id.你能解釋一下左連接應該在這裏完成嗎? – Scotch 2012-07-17 18:48:24

+0

據我所知,你想從表中選擇一個值t1,但有兩個不同的WHERE語句。做到這一點的方法是創建兩個派生表並將它們鏈接到一個公共唯一字段。我已經調用了通用字段ID。我已經將ID添加到內部查詢中,所以如果您有一個名爲id的字段,應該修復錯誤。 – Fionnuala 2012-07-17 18:55:20

+0

我沒有一個名爲ID的字段,表中有一個組合PK ..我根據情況進行了更改。查詢運行,但沒有給我正確的結果。例如,如果我爲每個查詢選擇了相同的條件,則會爲val1和val2顯示正確的值列表。如果我爲每個查詢選擇了不同的標準,則只有val1返回數據 – Scotch 2012-07-17 19:01:37

相關問題