Sql 在将查询结果导入Excel单元格之前,最好先对其进行区分

Sql 在将查询结果导入Excel单元格之前,最好先对其进行区分,sql,performance,ms-access,excel,vba,Sql,Performance,Ms Access,Excel,Vba,我有一个查询,它从Access中获取包含内容的数据: A、 1,z A、 2,z B、 1,y A、 1、我 我在excel中创建了3个下拉列表,我想用这些列中的行填充它们。问题是每一列中都有重复的内容,我想把它们去掉。我正在寻找一个解决方案,以摆脱这些重复 目前的进程如下: 运行查询。我在Excel中使用VBA。正在查询访问权限 将结果粘贴到单独的表单中(这需要花费很多时间,因为有20k个REOCRD) 为我的dropdows指定一个范围 正如您所看到的,我的第二步非常占用资源,通过从每个列中

我有一个查询,它从Access中获取包含内容的数据:

A、 1,z

A、 2,z

B、 1,y

A、 1、我

我在excel中创建了3个下拉列表,我想用这些列中的行填充它们。问题是每一列中都有重复的内容,我想把它们去掉。我正在寻找一个解决方案,以摆脱这些重复

目前的进程如下:

  • 运行查询。我在Excel中使用VBA。正在查询访问权限

  • 将结果粘贴到单独的表单中(这需要花费很多时间,因为有20k个REOCRD)

  • 为我的dropdows指定一个范围

  • 正如您所看到的,我的第二步非常占用资源,通过从每个列中删除重复项,处理时间应该会大大减少

    用查询中的唯一值填充下拉列表的最佳方法是什么?

    我的想法

    • 创建一个将输出我的查询:
    A、 1,z

    B、 2,y

    ,我

    在这种情况下,我将不必在excel中手动区分值。据我所知,这是不可能的

    • 将每列中的值添加到列表中,删除双精度项,将结果粘贴到excel中。这是我个人的最爱,因为我看不到其他解决问题的方法

    • 创建多个查询以分别区分每个表\列。。我想不是很快的解决办法

    • 其他一些方法


    如果您使用
    选择不同的列A、列B…
    而不是
    选择列A、列B…
    您将得到您想要的。不过,SQL的运行时间会更长。

    运行三个
    从表中选择DISTINCT Colx
    查询以获取三个下拉列表的值。你的选择二。这项工作必须在某个时候完成,所以你最好使用专门为完成这项工作而设计的工具,而不是重新发明轮子。

    它不是这样工作的。。我仍在得到副本。在我的一列中只有1个唯一值,在我的另一列中有10个唯一值,在第三列中有100个唯一值。SQL不会返回结果,当列具有不同的行数时,您可以将此方法与我建议的方法相结合—为不同的组合构建一个查询,然后查询不同组合中的每一列。我猜access可以很好地处理这个问题,如果不是的话,Simon的distinct combinations查询可以创建一个可以直接查询的临时表。此外,您也可以不必定期运行这些查询,而不必按需运行。对每一个查询都需要3秒钟;)否则,是的,我会用它。。