2017-10-27 8 views
0

Ich habe ein Excel-Benutzerformular erstellt, das eine Verbindung mit einer Access DB herstellt, um die ausstehenden Aufgaben des Benutzers abzurufen und sie mit dem Status aufzulisten. Diese Excel-Datei wird von 6 Analysts ohne Probleme ausgeführt, aber einer hat den Laufzeitfehler 429 erhalten: Die ActiveX-Komponente kann kein Objekt erstellen.Fehler 429 beim Erstellen eines ADODB.Connection-Objekts

Der Benutzer, der den Fehler bekam, ist der einzige, der ein x86 Windows verwendet.

ich alle Versionen des MS ActiveX Data Objects versucht haben, xx-Bibliothek in den XL Referenzen unsuccessfull

Ich versuchte auch noch die Access-Datenbank-Engine und den Fehler zu installieren

den Code Nach kommen:

Public Const conStr As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\SAO229DT91264\Planej_dev\Planilhao.accdb;Persist Security Info=False;" 
Public CN As ADODB.Connection 
Public RS As ADODB.Recordset 
_______________________________________________________________ 
Function importDB(ByVal filter As String) 
    Dim line As Long 
    Dim col As Long 
    Dim tim As Date 
    Dim user As String 
    Dim query As String 

    query = "Select Code, indice, flNO, dtStart, dtEnd, Pattern, orig, std, sta, dest, mkt, resp, order, motiv, status, action, obs, dtMsg, numMsg, dtVigencia, daysOps, dtAdd, dtChg from Alterations" 

    tim = Now() 
    user = CStr(Application.UserName) 

    Set CN = New ADODB.Connection 'The code stops here With the runtime error 
    Set RS = New ADODB.Recordset 

    WS.Unprotect 

    line = WS.Cells(Rows.Count, 1).End(xlUp).Row 
    If linha > 2 Then WS.Range(WS.Cells(3, 1), WS.Cells(linha, 23)).ClearContents 

    CN.Open conStr 
    RS.Open query & " " & filter & " order by code asc;", CN 

    line = 2 

    Do While Not RS.EOF 
     line = line + 1 
     For col = 1 To RS.Fields.Count 
      If col = 4 Or col = 5 Then 
       WS.Cells(line, col).NumberFormat = "@" 
       WS.Cells(line, col) = CStr(Format(RS.Fields(col - 1).Value, "dd/MMM/YYYY")) 
      Else 
       WS.Cells(line, col) = RS.Fields(col - 1).Value 
      End If 
     Next col 
     RS.MoveNext 
    Loop 

    CN.Close 
    WS.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ 
    , AllowSorting:=True, AllowFiltering:=True 
    End Function 
+0

Was meinen Sie mit "Der Benutzer, der den Fehler bekam, ist der einzige mit einem x86 Windows" Meinst du 32bit, oder die anderen sind mit Wine oder MAC? –

+0

Alle anderen Benutzer verwenden 64-Bit-Fenster –

Antwort

0

Ich würde beginnen, indem Sie den Verweis auf adodb in Tools, Referenzen auf dem fehlerhaften Rechner, speichern und schließen. Öffnen Sie die Referenz erneut, setzen Sie sie zurück, und kompilieren Sie sie erneut.

Verwandte Themen