我在單元格中有一個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。 –