我正在使用VBA连接到Oracle数据库。除非密码包含分号,否则一切正常。
这是我连接数据库的方式:
Dim cn As ADODB.Connection
Dim strCon As String
Set cn = New ADODB.Connection
strCon = "Driver={Oracle in OracleClient32_home1};Dbq=" & tnsName & ";" & _
"Uid=" & user & "; Pwd=" & password & ";"
'Open the connection
cn.Open strCon
如果密码类似于“ pass;word
”,则登录失败,提示密码错误。
我尝试过:
将花括号括起来:
Pwd={" & password & "};"
此错误返回无效的字符串或缓冲区长度。
用双引号引起来:
Pwd=" & Chr(34) & password & Chr(34) & ";"
这也将无效的字符串或缓冲区长度作为错误重新设置。
尝试这个:
strCon = "Driver={Oracle in OracleClient32_home1};Dbq=" & tnsName
cn.Open strCon, user, password
或使用OdbcConnectionStringBuilder(语法可能是错误的)
Dim strCon As New OdbcConnectionStringBuilder
strCon.Driver = "Oracle in OracleClient32_home1"
strCon.Add("Dbq", tnsName)
strCon.Add("Uid", user)
strCon.Add("Pwd", password)
cn.Open strCon.ToString()
DbConnectionStringBuilder可能是另一个选择