如何在vba中转义一个角色

时间:2015-06-04 19:14:14

标签: vba ms-access access-vba

如何在vba中转义角色?我试图逃避;,因为我有一个编译器在;切割的字符串。 我试过了\,但似乎没有用。 vba中的任何其他特殊逃脱?

Set mySqlCon = wrkODBC.OpenConnection("connection1", , , "DRIVER={MYSQL ODBC 5.1 DRIVER};" _
   & "SERVER=testserver.com;port=3306;" _
   & "DATABASE=test;" _
   & "USER={coding;Enthusiast};" _ 
   & "Password=pwd;")

2 个答案:

答案 0 :(得分:1)

在立即窗口中检查你的字符串构建部分:

? "DRIVER={MYSQL ODBC 5.1 DRIVER;}" _
   & "SERVER=testserver.com;port=3306;" _
   & "DATABASE=test;" _
   & "USER={coding;Enthusiast};" _
   & "Password=pwd;"
DRIVER={MYSQL ODBC 5.1 DRIVER;}SERVER=testserver.com;port=3306;DATABASE=test;USER={coding;Enthusiast};Password=pwd;

它使用Access 2010为我生成了一个有效的VBA字符串。

如果问题是ODBC不喜欢该连接字符串,请将第一个分号移到}括号之外:

? "DRIVER={MYSQL ODBC 5.1 DRIVER};" _
   & "SERVER=testserver.com;port=3306;" _
   & "DATABASE=test;" _
   & "USER={coding;Enthusiast};" _
   & "Password=pwd;"
DRIVER={MYSQL ODBC 5.1 DRIVER};SERVER=testserver.com;port=3306;DATABASE=test;USER={coding;Enthusiast};Password=pwd;

如果您的字符串中仍然存在分号问题,请尝试根据其ASCII值而不是文字;字符添加它:

? "a" & Chr(59) & "b"
a;b

答案 1 :(得分:0)

VBA中的分号没有什么特别之处,因此不需要特殊的转义或其他处理。以下代码段回应了您的帖子并且工作得很好:

Sub foo()
  Dim a As String
  a = "foo" _
     & "; bar"

     MsgBox a

End Sub