2017-07-03 5 views
0

セルにSQL SELECTクエリがあります (image)です。私はSQLクエリの文字列として自分のセル内の文字列を使用するためにVBAを使用しようとしていますが、文字列の一部だけを読み込みます。セルでは、クエリ(引用符なし)の長さは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文字が途切れるかについての考えはありますか?

+0

※お問い合わせは*ご記入ください。あなたの質問を読むために人々をスクロールさせないでください。 – Siyual

+0

"" Proj - MDM ""一重引用符を使用するようです。 'Proj - MDM' –

+0

固定長文字列の最大文字列長は2^16 = 65535文字です。可変長の文字列の最大長は約20億文字です(2^31)。 文字列をセルにコピーするときに文字列変数に代入し、 'Debug.Print sqlStr'を実行すると文字列全体が返されます。 'Debug.Print Len(sqlStr)'は本当に685を出力します。 –

答えて

0

Range()をフェッチする前に、ワークシートの二重引用符をChr(34)に置き換えてください。

+0

私はこれを試しました、ありがとう。変数を読み込むときに文字列が途切れることがあります。 –

0

私が変数値にアクセスしようとしていたときに、その値が切り捨てられているように見えていることがわかりました。 VB IDEの "locals"フレームの変数値を右クリックしてコピーを選択し、クリップボードにあるものをメモ帳に貼り付けました。それは、文字列が切り捨てられていたことです。テキストのmsgboxを実行したとき、それは正しいものでした。

関連する問題