2016-08-05 16 views
1

Ich versuche, die Verbindung der Excel von JDE zu SQL Server 2014 zu ändern. Wie/was soll ich tun/ändern, um eine Verbindung mit einem anderen DSN in meinem ODBC.Ändern der DSN in VBA

Dies ist mein Code für cnnStr:

uid = Range("P_Uid") 
pwd = Range("P_Pwd") 
dsn = Range("P_Dsn") 
cnnstr = "ODBC;DSN=" + dsn + ";UID=" + uid + ";PWD=" + pwd 

Dies ist der Original-Code von VBA ist:

Dim strCnn As String 
Dim i As Long 
Dim y As Long 
Dim j As Long 
Dim z As Double 
Dim w As Double 
Dim Wks As DAO.Workspace 
Dim Cnn As DAO.Connection 
Dim Qdf As DAO.QueryDef 
Dim Rec As DAO.Recordset 
Dim date1, date2 As String 
Dim x As Long 
Dim w_price As Double 
Dim w_amt As Double 
Dim w_qty As Long 
Dim Xref_Name(10) As Variant 

Set Rec = Nothing 
Set Wks = CreateWorkspace("WKSTmp", "", "", dbUseODBC) 
Set Cnn = Wks.OpenConnection("", dbDriverNoPrompt, True, cnnstr) 
Cnn.QueryTimeout = 1800 
Set Rec = Cnn.OpenRecordset(SQL) 
avarow = Worksheets("Ava").UsedRange.Rows.Count 

Immer, wenn ich die Maus über das cnnstr, werde ich diesen Code sehen:

cnnstr = "ODBC;DSN=JDE;UID=abc;PWD=abc" 

Die DSN ist immer JDE, obwohl ich versucht habe, die Verbindung und die cnnStr oben zu ändern. Die Details von cnnstr stammen aus einem Kontrollblatt innerhalb der Excel-Datei. Änderungen am Kontrollblatt erwiesen sich als sinnlos.

Bitte Ratschläge, wie ich die dsn ändern kann, so dass ich die Daten von SQL Server erhalten kann 2014

+1

Wo ist Ihr Code für 'cnnStr'? Es scheint nicht in dem anderen Code zu sein, den Sie gepostet haben. Ich schlage vor, Sie setzen einen Haltepunkt darüber und sehen, wie sich das ändert. –

Antwort

0

Dies ist, was ich verwende verwenden, um SQL Server 2014

-Code zu verbinden

Sub ConnectSQLServer() 

    Dim conn As ADODB.Connection 
    Dim rs As ADODB.Recordset 
    Dim sConnString As String 


    sConnString = "PROVIDER=SQLOLEDB;" & _ 
           "Data Source=xxx.xxx.x.xxx,1433;" & _ 
           "Initial Catalog=Staff_Manager;" & _ 
           "User Id=sa;" & _ 
           "Password=myPassword;" 

           Set conn = New ADODB.Connection 
    Set rs = New ADODB.Recordset 
    conn.Open sConnString 
    Set rs.ActiveConnection = conn 
    Set rs.ActiveConnection = conn 

      strSQL = "SELECT Your SQL Statement " 
      rs.Open strSQL 

Wenn das ist, was Sie versuchen zu erreichen, wird dies funktionieren.

+0

ist es 'UserId' in 1 Wort? –

+0

@iDevlop, nein ist es nicht. – KyloRen

Verwandte Themen