如何使用VBA从访问数据库中获取不相似的数据?

时间:2017-11-13 19:32:33

标签: excel-vba ms-access vba excel

我想从访问数据库中提取数据,但是如果db包含(a,b,b,b,c)我只想获得(a,b,c)的类似示例,那么就不是所有数据。< / p>

希望它足够清楚!

Set cn = CreateObject("ADODB.Connection")
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & folderPath & "\" & gp

       Set rs = CreateObject("ADODB.Recordset")
        rs.Open "SELECT GaCodeMun FROM ModificationsAttributsParcours WHERE GaCodeMun <> '' ", cn, , , adCmdText

TargetRange.CopyFromRecordset rs

1 个答案:

答案 0 :(得分:1)

使用DISTINCT检索唯一值。 您的SELECT语句如下所示:

SELECT DISTINCT GaCodeMun FROM ModificationsAttributsParcours WHERE GaCodeMun <> ''

如果要计算不同值的总和,可以使用此查询:

SELECT COUNT(GaCodeMun) AS Total
from
(
    SELECT DISTINCT GaCodeMun 
    FROM ModificationsAttributsParcours
    WHERE GaCodeMun <> ''
)

如果要将其包装在一个查询中,可以使用以下查询。但是,每个唯一值将反映不同值的总和。

SELECT DISTINCT GaCodeMun, 
(
SELECT COUNT(GaCodeMun) AS Total
FROM
    (
    SELECT DISTINCT GaCodeMun
    FROM ModificationsAttributsParcours
    WHERE GaCodeMun <> ''
    )
)
FROM ModificationsAttributsParcours