2012-07-17 55 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

相关问题