我在单元格中有一个SQL SELECT查询 (image)。我尝试使用VBA将我的单元格中的字符串用作SQL查询的字符串,但它只读取部分字符串。在单元格中,查询(不含引号)的长度为685个字符。在变量中(运行时),查询是(带引号)185个字符长。下面是在单元格中查询:excel vba读取单元格中的SQL SELECT语句
SELECT Contacts.[Last Name],
Contacts.[First Name],
Contacts.[Maricom E-Mail],
Contacts.[Project, Org, Team]
FROM Contacts
WHERE (((Contacts.[Project, Org, Team])=""Proj - MDM"")
AND ((Contacts.[Active?])=Yes))
OR (((Contacts.[Project, Org, Team])=""Team%"")
AND ((Contacts.[Active?])=Yes))
OR (((Contacts.[Project, Org, Team])=""Orgs - CM"")
AND ((Contacts.[Active?])=Yes))
OR (((Contacts.[Project, Org, Team])=""Orgs - Document Team"")
AND ((Contacts.[Active?])=Yes))
OR (((Contacts.[Project, Org, Team])=""Orgs - Process Engineering"")
AND ((Contacts.[Active?])=Yes))
OR (((Contacts.[Project, Org, Team])=""Orgs - QA"")
AND ((Contacts.[Active?])=Yes))
ORDER BY Contacts.[Last Name];
下面是我用它来读取小区(我用的代号为“暗淡更改为MyQuery成串”早了,该单元被设置为文本格式)代码:
myQuery = Range("Project1Query").Value
下面是已被宣布为一个字符串变量中的查询:
"SELECT Contacts.[Last Name],
Contacts.[First Name],
Contacts.[Maricom E-Mail],
Contacts.[Project, Org, Team]
FROM Contacts
WHERE (((Contacts.[Project, Org, Team])=""Proj - MDM"") AND "
可变然后在用于数据以下请求中使用:
ReviewersData.Open myQuery, ReviewersConn, adOpenStatic, adLockOptimistic
有关500个字符被切断的想法吗?
*请*格式化您的查询。不要让人滚动来阅读你的查询。 “ – Siyual
”“Proj-MDM”“它似乎使用单引号。 'Proj - MDM' –
固定长度字符串的最大字符串长度为2^16 = 65535个字符。可变长度字符串的最大长度约为20亿个字符(2^31)。 当我将字符串复制到单元格中时,将它分配给一个字符串变量并执行'Debug.Print sqlStr',它给了我整个字符串。 'Debug.Print Len(sqlStr)'确实输出了685。 –