Thema Datum  Von Nutzer Rating
Antwort
Rot ADODB auf/von Excel-Tabelle
09.10.2025 14:12:59 Holzer
NotSolved
09.10.2025 14:41:56 Gast9929
NotSolved
09.10.2025 18:08:55 Flotter Feger
NotSolved

Ansicht des Beitrags:
Von:
Holzer
Datum:
09.10.2025 14:12:59
Views:
19
Rating: Antwort:
  Ja
Thema:
ADODB auf/von Excel-Tabelle

Hallo zusammen,

ich möchte Daten aus geschlossenen Excel-Dateien herauslesen, ohne dass diese geöffnet werden.

Mit ADODB ist dies meines Erachtens nach möglich. Mit der Excel-Datei Personal.xlsx funktioniert alles super.

Wenn ich die Excel-Datei MOTOREN.xlsx nehme, kann ich zwar die Userform initialisieren und die Werte stehen in der Combobox, aber bei einem Auswahlwechsel in der Combobox stürzt mein Programm bei RST.Open ab.

Ich weiß, der Fehler ist vor dem Computer. Für Anregungen und Hilfen bin ich sehr dankbar. Die Excel-Datein konnte ich leider nirgends hinterlegen.

 

Private Sub ComboBox1_Change()

    'Variable dekalrieren
    Dim Rst As ADODB.Recordset
    Dim Con As ADODB.Connection
    Dim strSQL As String
    Dim strPath As String

    Set Con = New Connection
    Set Rst = New Recordset

'    'Dateipfad für Quelldatei
'    strPath = ThisWorkbook.Path & "\MOTOREN.xlsx"
    
'    'SQL-Abfrage
'    strSQL = "SELECT * FROM [230-D-D-MOT$] WHERE [Art-Nr]=" & Me.ComboBox1.Text & " ORDER BY [Art-Nr]"

    'Dateipfad für Quelldatei
    strPath = ThisWorkbook.Path & "\Personal.xlsx"
    
    'SQL-Abfrage
    strSQL = "SELECT * FROM [Tabelle1$] WHERE [Personal-Nr]=" & Me.ComboBox1.Text & " ORDER BY [Personal-Nr]"
    
    'Verbindung zur Arbeitsmappe herstellen
    Con.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & strPath & ";ReadOnly=1"
    Rst.LockType = adLockOptimistic
    Rst.Open strSQL, Con

    If Not Rst.EOF Then
        Me.TextBox1.Value = Me.ComboBox1.Value
'        Me.TextBox2.Value = Rst.Fields("Name")
'        Me.TextBox3.Value = Rst.Fields("Vorname")
'        Me.TextBox4.Value = Rst.Fields("Abteilung")


    End If
    
    Rst.Close
    Con.Close
    
    Set Rst = Nothing
    Set Con = Nothing
    
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UserForm_Initialize()

    'Variable dekalrieren
    Dim Rst As ADODB.Recordset
    Dim Con As ADODB.Connection
    Dim strSQL As String
    Dim strPath As String

    Set Con = New Connection
    Set Rst = New Recordset

'    'Dateipfad für Quelldatei
'    strPath = ThisWorkbook.Path & "\MOTOREN.xlsx"
    
'    'SQL-Abfrage
'    strSQL = "SELECT DISTINCT [Art-Nr] FROM [230-D-D-MOT$] ORDER BY [Art-Nr]"

    'Dateipfad für Quelldatei
    strPath = ThisWorkbook.Path & "\Personal.xlsx"
    
    'SQL-Abfrage
    strSQL = "SELECT DISTINCT [Personal-Nr] FROM [Tabelle1$] ORDER BY [Personal-Nr]"
  
    Con.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" & strPath & ";ReadOnly=1"
    Rst.LockType = adLockOptimistic
    Rst.Open strSQL, Con
  
    If Not Rst.EOF Then
        Me.ComboBox1.List = Application.Transpose(Rst.GetRows)
    End If

    Rst.Close
    Con.Close
    
    Set Rst = Nothing
    Set Con = Nothing

End Sub
 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot ADODB auf/von Excel-Tabelle
09.10.2025 14:12:59 Holzer
NotSolved
09.10.2025 14:41:56 Gast9929
NotSolved
09.10.2025 18:08:55 Flotter Feger
NotSolved