OleDb Problem (Fehler beim einlesen von Exceldaten)

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    OleDb Problem (Fehler beim einlesen von Exceldaten)

    Hallo zusammen,

    Ich habe das Problem:

    Ein Messrechner erzeugt eine .xls mit Daten. Diese lese ich ein wie folgt:

    VB.NET-Quellcode

    1. Dim dt As New DataTable("Temp")
    2. Dim oConn As System.Data.OleDb.OleDbConnection
    3. Dim oAdapter As System.Data.OleDb.OleDbDataAdapter
    4. Dim sFile As String = "C:\Temp\Messvorgang.xls"
    5. Dim sTable As String = "Messvorgang"
    6. Dim sConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    7. "Data Source=" & sFile & ";" & _
    8. "Extended Properties=Excel 8.0;IgnoreError=true;"
    9. oConn = New System.Data.OleDb.OleDbConnection(sConn)
    10. oAdapter = New System.Data.OleDb.OleDbDataAdapter( _
    11. "SELECT * FROM [" & sTable & "$]", oConn)
    12. Try
    13. oAdapter.Fill(dt)
    14. Catch ex As Exception
    15. MsgBox("Fehler beim Einlesen der Mess-Daten!")
    16. Finally
    17. oConn.Close()
    18. End Try


    Nun kommt es zum Fehler. Wenn ich die Excel öffne kommt diese Fehlermeldung: Siehe Bild

    Wenn ich mit ja bestätige kann ich diese lesen. Wie kann ich das diese Meldung ignorieren beziehungsweise mit einbinden das beim einlesen auf ja gegangen wird.

    Danke
    Bilder
    • sd.jpg

      40,66 kB, 1.187×121, 99 mal angesehen
    Ist das eine .xlsx datei bei der einfach die Endung geändert wurde? Wenn ja, müsste die Datei korrekt als .xls gespeichert werden.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."

    Schamash schrieb:

    Ist das eine .xlsx datei bei der einfach die Endung geändert wurde?
    Oder eine CSV-Datei, die als XLS abgespeichert wurde?

    mrMo schrieb:

    Fehlt da nicht nen $ vor sTable?
    Nein.
    Der gehört nach dem Sheetnamen hin, um den UsedRange zu verwenden und nicht eine ggf. enthaltene Table.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --