2016-06-27 61 views
0

当我点击运行时,我得到一个弹出框问我的用户名,密码和服务器。我已经把这个信息放在一些excel单元格上,但是我可以在那里添加密码。我想添加使用VBA的代码的密码自动化

dataName = (Range("dataName").Value) 
passWord = (Range("password").Value) 
serverName = (Range("server").Value) 
queryName = (Range("Query").Value) 

dbConnectStr = "Provider=msdaora;User Id=" & Uname 
dbConnectStr1 = "Provider=msdaora;User Id='" & dataName & "' ;Data Source='" & serverName & "'" 

    objmyconn.ConnectionString = dbConnectStr & dbConnectStr1 
    objmyconn.Properties("Prompt") = adPromptAlways 
    objmyconn.Open dbConnectStr 'ConnectionString' 
    'Declare variables' 

'Set objmyconn = New ADODB.Connection 
Set Sql = New ADODB.Command 
Set ds = New ADODB.Recordset 
Dim strsql As String 
Dim fld As ADODB.Field 
Dim i As Long 
i = 2 

回答

0

将其添加到连接字符串中作为Pwd=参数。代码看起来像:

dataName = (Range("dataName").Value) 
Password = (Range("password").Value) 
serverName = (Range("server").Value) 
queryName = (Range("Query").Value) 

dbConnectStr = "Provider=msdaora;User Id=" & Uname 
dbConnectStr1 = "Provider=msdaora;User Id='" & dataName & "' ;Data Source='" & serverName & "'" & "' ;Pwd='" & Password & "'" 

    objmyconn.ConnectionString = dbConnectStr & dbConnectStr1 
    objmyconn.Properties("Prompt") = adPromptAlways 
    objmyconn.Open dbConnectStr 'ConnectionString' 
    'Declare variables' 

'Set objmyconn = New ADODB.Connection 
Set Sql = New ADODB.Command 
Set ds = New ADODB.Recordset 
Dim strsql As String 
Dim fld As ADODB.Field 
Dim i As Long 
i = 2 
+0

我加了它,但它仍然是黑色。 ;(@nbaylt –

+0

你是什么意思,它仍然是黑色的?我只注意到你没有使用'dbConnectStr1'作为你的连接字符串。你有什么理由为什么你在两个不同的变量中详细描述连接字符串?在'objmyconn.Open dbConnectStr'尝试使用'dbConnectStr1'来代替。 – nbayly