【问题标题】:Unique records in search query including many to one subquery搜索查询中的唯一记录,包括多对一子查询
【发布时间】:2015-09-24 18:37:50
【问题描述】:

第一次发帖和热心的 Access 新手。

我有一个基于 Allen Browne 在 vba (http://allenbrowne.com/ser-62.html) 中的精彩搜索的搜索屏幕。这对我的大多数目的都很有效,但现在子表正在复制记录。

我们的客户(供应商)可以参加多个计划。我们有四个。我想要一个搜索,让我按提供者类型进行过滤,但在提供者注册多个提供者类型时不创建重复记录。在示例图像中,carmen titus 在 LEHRC 和 fccn 程序中,因此出现了两次。尝试发布图片但没有骰子。

请帮忙!我努力搜索,找不到解决方案。感谢您的支持或指向相关帖子。我希望这是有道理的。我认为作为一个自学成才的新手,我的一半战斗是不知道术语。

【问题讨论】:

    标签: ms-access search duplicates unique


    【解决方案1】:

    我们需要更多信息!

    听起来您基于搜索的查询包含来自具有一对多关系的两个表的列,即客户端和“客户端程序”,因此单个客户端具有零到 4 个程序。

    听起来您只想返回提供者列表(即一侧的行),但您的 SQL 正在从两个表中返回数据。

    这是执行所需操作的 SQL 可能需要的外观:

    SELECT * 
    FROM clients AS mainClient
    WHERE 
    EXISTS 
    (SELECT 1
       FROM clients  AS C
            LEFT JOIN ClientPrograms  AS CP
            ON C.ID = CP.ClientID
       WHERE mainClient.ID = C.ID       
            ' the above line links the EXISTS "Sub query" to the main query
         AND client name like "*j*" ... etc...
             ... ie lots of criteria generated by you popup search criteria dialogue)
    )
    

    通过添加 EXISTS 语句,主查询将是可编辑的。

    如果您使用了如下 SQL,您将无法对其进行编辑

    SELECT c.name, c.dob, etc.. ie all the field you want on the form whichwill all be from the client table
       FROM clients  AS C
            LEFT JOIN ClientPrograms  AS CP
            ON C.ID = CP.ClientID
       WHERE mainClient.ID = C.ID       
            ' the above line links the EXISTS "Sub query" to the main query
         AND client name like "*j*" ... etc...
             ... ie lots of criteria generated by you popup search criteria dialogue)
    GROUP BY all the field in the select statement 
    

    希望能给你一些启发

    【讨论】:

    • 非常感谢您的启发。我会破解并报告。非常感谢,
    • 你让它工作了吗?如果是这样,您可以将我的回复标记为答案并向上箭头它...ta。
    • 您觉得以上内容有用吗?如果是这样,请标记为答案。
    • Argh,对不起,除了一次快速失败的尝试之外,我无法抽出太多时间来专注于它。我想出了一个足够的工作,但期待投入更多的时间。但无论如何绝对有用的建议,我会跟进成功或失败。非常感谢。
    • 好的。无论如何,您介意投票或将其标记为答案吗? (我正在努力提高我的分数)。听起来你很忙。这就是现在的世界!
    猜你喜欢
    • 2013-06-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多