我在microsoft access 2010中保存了一个查询,当从访问内部运行时返回预期结果(没有找到记录)。
但是,当我使用excel的ADO连接(选择查询)时,我会收到一些令人困惑的行,因为我已经在查询中排除了返回结果的条件。
我尝试了一些组合,包括将cursorlocation属性更改为aduseclient,将cursortype更改为static,然后尝试将其更改为keyset,如下所示:
试用1
Set objRst3 = New ADODB.Recordset
objRst3.Open strSql, CurrentProject.Connection, adOpenKeyset
试用2
Set objRst3 = New ADODB.Recordset
objRst3.Open strSql, CurrentProject.Connection, adOpenStatic
我也尝试在excel发送的select语句中包含我的标准,也排除了标准,而是将它放在microsoft access中的查询设计器中。
我没有使用JET驱动程序连接访问,连接字符串即时使用 是
GetAccessConnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & path & ";"
然而,我仍然得到奇怪的结果。我怎么能绕过这个
修改
我的查询结构如下。未从Excel中获取的过滤条件是行' AS MAIN WHERE STATUS<> " CLPd"' :
SELECT DISTINCT ..
FROM
(
SELECT DISTINCT ... STATUS
FROM (
SELECT distinct .. FROM ... AS OD
LEFT JOIN ((select ...FROM ..) as ST) on (OD.id = st.id) and (od.ord = st.ord)
)
) AS MAIN WHERE STATUS <> "CLPd"
LEFT JOIN
(
SELECT DISTINCT ....
FROM tbl1
INNER JOIN tbl2 on tbl1.id = tbl2.id
WHERE tbl2.col1 = "Y" and tbl1.col2 = "Y"
ORDER BY tbl1.id
) AS ITEMCONFIG on MAIN.itemcode = ITEMCONFIG.itemcode
WHERE
(
MAIN.CUSTMR not Like "OTHER*" and MAIN.DATE < DATE()
)
ORDER BY MAIN.DATE