| |

ADO.NET / DatenbankenExcel in DatagridView | |  | Autor: RoterDrache | Datum: 09.11.07 18:11 |
| Hallo miteinander,
Ich versuche gerade eine (wie ich dachte simple Funktion) zum Einlesen einer Excel-Tabelle in ein DatagridView. Allerdings bin ich direkt auf ein paar Probleme gestoßen.
Zuerst mal mein Quelltext:
'Datei in DataGrid laden
'Benötigte Objekte
Dim oDs As System.Data.DataSet
Dim oConn As System.Data.OleDb.OleDbConnection
Dim oAdapter As System.Data.OleDb.OleDbDataAdapter
' Pfad und Tabellennamen bitte anpassen!
Dim sTable As String = "Tabelle1"
Dim sFile As String = data_input_file
' Connection-String für die DB.Verbindung zur Excel-Datei
Dim sConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data" & _
"Source=" & sFile & ";" & "Extended Properties=Excel 8.0;"
' Connection herstellen
oConn = New System.Data.OleDb.OleDbConnection(sConn)
' Excel-Tabelle referenzieren
' Hinweis: Tabellenname muss mit abschließendem $-Zeichen und
' in eckigen Klammern stehen
oAdapter = New System.Data.OleDb.OleDbDataAdapter("SELECT * FROM [" _
& sTable & "$]", oConn)
'oAdapter =
' DataSet erstellen und mit Daten aus dem DataAdapter füllen
oDs = New System.Data.DataSet
Try
oAdapter.Fill(oDs)
' DataGrid füllen und Daten anzeigen
With main_form.datagrid_tabelle
.DataSource = oDs.Tables(0)
.ReadOnly = True
.Refresh()
End With
Catch ex As Exception
MsgBox("Fehler beim Anzeigen der Excel-Daten!")
Exit Sub
Finally
' DB-Verbindung schließen
oConn.Close()
End Try
'Datei einlesen beendet
With main_form.datagrid_tabelle
'Kopfzeilen editieren
.Columns(0).HeaderText = "Nummer"
.Columns(1).HeaderText = "Breite"
.Columns(2).HeaderText = "Name"
.Columns(3).HeaderText = "Vorname"
'Überflüssige Spalten entfernen
Dim i As Integer
main_form.ausgabe_dummy.Text = .Columns.Count
'For i = 4 To (.Columns.Count-1)
'.Columns.RemoveAt(i)
'Next
'neue Spalten anhängen
.Columns.Add("zusatzfeld1", "Zusatzfeld1")
.Columns.Add("zusatzfeld2", "Zusatzfeld2")
.Columns.Add("zusatzfeld3", "Zusatzfeld3")
End With Das größte Problem, dass ich hab ist, dass er mir zwar die Tabelle anzeigt aber nicht vollständig. Er lässt konsequent die Spalte "Nummer" und "Breite" leer. Bzw. er übernimmt noch die Kopfzeile aus der Excel-Datei, aber die Beträge lässt er weg.
So und jetzt noch die Struktur der Excel-Tabelle, vielleicht hilft das ja auch:
[Tabelle]
Bla bla bla bla Text
Nr. Breite: Nachname Vorname unnützes Feld 1 unnützes Feld 2
1 34,56 Müller Kurt
....
[/Tabelle]
Die Ausgabe sieht dann so aus:
[DataGrid]
Bla bla bla bla Text
Nr. Breite: Nachname Vorname unnützes Feld 1 unnützes Feld 2
Müller Kurt
....
[/DataGrid]
Es wäre Klasse, wenn mir da jemand helfen könnte. Bin ansonsten ein erfahrener Googler, aber dazu finde ich irgendwie nichts Vernünftiges.
Wäre auch echt dringend.
Dankeschön im Vorraus.
MfG, Jan |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevEingabe 3.0 
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) Access-Tools Vol.1 
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|