我在单元格中有一个SQL SELECT查询 (image)。我试图使用VBA将我的单元格中的字符串用作SQL查询的字符串,但它只读取字符串的一部分。在单元格中,查询(不带引号)长度为685个字符。在变量中(在运行时),查询是(带引号)185个字符长。这是单元格中的查询:
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];
以下是我用来读取单元格的代码(我在代码中使用了“dim myQuery as string”,单元格格式化为文本):
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个角色的任何想法?
答案 0 :(得分:0)
在获取Range()之前,尝试将工作表中的双引号替换为Chr(34)。值。
答案 1 :(得分:0)
我发现我尝试访问变量值的方式导致它显示为截断。我右键点击" locals"中的变量值。 VB IDE的框架,选择副本,然后将剪贴板中的内容粘贴到记事本中。那里的字符串被截断了。当我做了文本的msgbox时,它是正确的。