Hallo zusammen,
ich versuche die Daten aus einer Excel-Datei auszulesen und an ein DataGridView anzubinden.
Das Komische daran ist, dass es meistens funktioniert (habe noch nicht herausgefunden, woran es liegt).
Ich rufe mit einem Button "ExcelPositionHinzu" auf und übergebe in dem Beispiel den Namen "Position2":
Anschließend wird StuecklisteLaden aufgerufen, wo dann der Fehler (manchmal) entsteht
Das ist die Fehlermeldung:
Habe ich hier irgendwo einen Denkfehler oder generell einen falschen Ansatzt?
Lasst mich wissen, wenn noch Info fehlt.
Vielen Dank im Voraus!!!
Gruß
Patrick
ich versuche die Daten aus einer Excel-Datei auszulesen und an ein DataGridView anzubinden.
Das Komische daran ist, dass es meistens funktioniert (habe noch nicht herausgefunden, woran es liegt).
Ich rufe mit einem Button "ExcelPositionHinzu" auf und übergebe in dem Beispiel den Namen "Position2":
VB.NET-Quellcode
- Sub ExcelPositionHinzu(Positionsname As String, xlApp As Microsoft.Office.Interop.Excel.Application, xlMappe As Microsoft.Office.Interop.Excel.Workbook)
- Dim arrColumnNamesBOM() As String = {" ", Dictionary(intSprache, 122), Dictionary(intSprache, 95), Dictionary(intSprache, 106), Dictionary(intSprache, 117), Dictionary(intSprache, 0), Dictionary(intSprache, 1), Dictionary(intSprache, 118), Dictionary(intSprache, 119), Dictionary(intSprache, 120), Dictionary(intSprache, 121), Dictionary(intSprache, 96), Dictionary(intSprache, 171), Dictionary(intSprache, 97), Dictionary(intSprache, 98), Dictionary(intSprache, 99), Dictionary(intSprache, 100), Dictionary(intSprache, 101), Dictionary(intSprache, 102), Dictionary(intSprache, 103), Dictionary(intSprache, 104), Dictionary(intSprache, 105), Dictionary(intSprache, 107), Dictionary(intSprache, 108), Dictionary(intSprache, 109), Dictionary(intSprache, 110), Dictionary(intSprache, 111) & "FFS", Dictionary(intSprache, 112) & "FFS", Dictionary(intSprache, 113) & "FFS", Dictionary(intSprache, 111) & "Baltec", Dictionary(intSprache, 112) & "Baltec", Dictionary(intSprache, 113) & "Baltec", Dictionary(intSprache, 111) & "Vorfert", Dictionary(intSprache, 112) & "Vorfert", Dictionary(intSprache, 113) & "Vorfert", Dictionary(intSprache, 111) & "Gravieren", Dictionary(intSprache, 112) & "Gravieren", Dictionary(intSprache, 113) & "Gravieren", Dictionary(intSprache, 111) & "Werkstatt", Dictionary(intSprache, 112) & "Werkstatt", Dictionary(intSprache, 113) & "Werkstatt", Dictionary(intSprache, 111) & "MontageEXKO", Dictionary(intSprache, 112) & "MontageEXKO", Dictionary(intSprache, 113) & "MontageEXKO", Dictionary(intSprache, 114) & "EX29", Dictionary(intSprache, 115) & "EX29", Dictionary(intSprache, 116) & "EX29", Dictionary(intSprache, 111) & "AF09", Dictionary(intSprache, 112) & "AF09", Dictionary(intSprache, 113) & "AF09", Dictionary(intSprache, 111) & "AF10", Dictionary(intSprache, 112) & "AF10", Dictionary(intSprache, 113) & "AF10", Dictionary(intSprache, 111) & "AF11", Dictionary(intSprache, 112) & "AF11", Dictionary(intSprache, 113) & "AF11"}
- 'Fügt eine Position in Excel hinzu
- Worksheet = xlMappe.Worksheets.Add(After:=xlMappe.Sheets(xlMappe.Sheets.Count))
- For i = 0 To DatensatzWerte
- Worksheet.Columns(i+1).NumberFormat = "@" 'Spalte 1 bis Anzahl(DatensatzWerte) auf Textformat stellen
- Next
- With Worksheet
- 'Tabellenname
- .Name = Positionsname
- 'Spalten bezeichnen
- .Cells(1, 1) = "ID"
- .Cells(1, 2) = "Bezeichnung"
- .Cells(1, 3) = "Stückzahl"
- .Cells(1, 4) = "Bereich"
- .Cells(1, 5) = "Ersatzteilzuschlag"
- .Cells(1, 6) = "Betriebsspannung"
- .Cells(1, 7) = "Steuerspannung"
- .Cells(1, 8) = "Vorsicherung"
- .Cells(1, 9) = "MinTemp"
- .Cells(1, 10) = "MaxTemp"
- .Cells(1, 11) = "ATEX"
- .Cells(1, 12) = "IECEx"
- .Cells(1, 13) = "CSA"
- .Cells(1, 14) = "TRCU"
- .Cells(1, 15) = "CustomZulassung"
- .Cells(1, 16) = "ExIIC"
- .Cells(1, 17) = "ExIIB"
- .Cells(1, 18) = "Gas"
- .Cells(1, 19) = "Staub"
- .Cells(1, 20) = "GRP"
- .Cells(1, 21) = "Stahlblech"
- .Cells(1, 22) = "VA"
- .Cells(1, 23) = "ALU"
- .Cells(1, 24) = "ALU Stahlblech"
- .Cells(1, 25) = "Lackfarbe GRP"
- .Cells(1, 26) = "Lackfarbe Stahlblech"
- .Cells(1, 27) = "Lackfarbe VA"
- .Cells(1, 28) = "Lackfarbe ALU"
- .Cells(1, 29) = "Lackfarbe ALU Stahlblech"
- .Cells(1, 30) = "Schutzart"
- .Cells(1, 31) = "Zone"
- .Cells(1, 32) = "Gesamtgewicht"
- .Cells(1, 33) = "Listenpreis_Gesamt"
- .Cells(2, 33) = "0" 'Default
- .Cells(1, 34) = "Preisupdate"
- .Cells(1, 35) = "Lack GRP"
- .Cells(1, 36) = "Lack Stahlblech"
- .Cells(1, 37) = "Lack VA"
- .Cells(1, 38) = "Lack ALU"
- .Cells(1, 39) = "Lack ALU Stahlblech"
- .Cells(1, 40) = "Kosten_Gesamt"
- .Cells(2, 40) = "0" 'Default
- For i = 1 To DatensatzWerte + 1
- .Cells(3, i) = arrColumnNames(i - 1)
- Next
- Worksheet.Cells(2, 34) = DateTime.Now.ToString("dd.MM.yyyy") 'Datum der Preisaktualisierung im Angebot
- End With
- 'Speichern
- xlMappe.Save()
- End Sub
Anschließend wird StuecklisteLaden aufgerufen, wo dann der Fehler (manchmal) entsteht
VB.NET-Quellcode
- Sub StuecklisteLaden(AktivePosition As Integer)
- Dim Connection As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " & (AngebotsPfad & "\" & AngebotsNummer & ".qte" & "; Extended Properties=""Excel 12.0;HDR=YES"";"))
- Dim Data As New OleDbDataAdapter("SELECT * FROM [" & AngebotsPositionName & "$]", Connection) 'AngebotsPositionName = "Position2"
- Dim i As Integer
- PauseEvents = True
- dgvStückliste.DataSource = Nothing
- dgvStückliste.Columns.Clear()
- TableStückliste.Clear() 'Public TableStückliste As New DataTable
- Data.Fill(TableStückliste) 'Hier entsteht der Fehler
- dgvStückliste.DataSource = TableStückliste
- ' Restlicher Code ausgeblendet
- End Sub
Das ist die Fehlermeldung:
Ein Ausnahmefehler des Typs "System.Data.OleDb.OleDbException" ist in System.Data.dll aufgetreten.
Zusätzliche Informationen: 'Position2$' ist kein gültiger Name. Stellen Sie sicher, dass der Name nicht zu lang ist und keine ungültigen Zeichen oder Interpunktionszeichen enthält.
Habe ich hier irgendwo einen Denkfehler oder generell einen falschen Ansatzt?
Lasst mich wissen, wenn noch Info fehlt.
Vielen Dank im Voraus!!!
Gruß
Patrick
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Yogibär“ ()