Auslesen einer Excel-Datei mit Visual Basic 2005

romin

Mitglied
Hallo,
ich weiß es gibt schon mindestens 20 Themen mit der Frage: Wie lese ich eine Excel-Datei aus? Und ich habe auch schon mindestens 23 davon gelesen ^^. Also habe ich jetzt von 2 verschiedenen Varianten gelesen. Einmal mit
Code:
System.Data.OleDb.OleDbConnection
oder über das öffnen der Excel-Datei und dann das Auslesen über eine Schleife.

Ich habe beides ausprobiert und beides funktioniert nicht bei mir. Bei der ersten Variante liegt es wahrscheinlich daran das ich nicht weiß was ich genau als Parameter angeben muss (in der VB2005 Hilfe stand es so:)
Code:
Dim cn As System.Data.OleDb.OleDbConnection
Dim cmd As System.Data.OleDb.OleDbDataAdapter
Dim ds As New System.Data.DataSet()

cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" & _
    "data source=C:\myData.XLS;Extended Properties=Excel 8.0;")

' Select the data from Sheet1 of the workbook.
cmd = New System.Data.OleDb.OleDbDataAdapter("select * from [Sheet1$]", cn)

cn.Open()
cmd.Fill(ds)
cn.Close()

allerdings zeigt mir beim ausprobieren das Programm einen Fehler bei cn.Open an. Das liegt daran das die Parameter bei cn = ... falsch sind. Also wie bekomme ich die richtigen Parameter heraus und das am besten so, dass es für so viele Systeme wie möglich funktioniert?

Bei der zweiten Methode stört mich vorallem, dass ich keine Autovervollständigung habe und VB die Befehle nicht erkennt und zum Teil dann auch Fehler anzeigt. Gibt es da eine Möglichkeit VB die VBA-Excel Befehle "beizubringen". Und wenn ja dann wie?^^

Wichtig ist mir halt, egal für welche Lösung, dass es so Versionsunabhängig wie möglich ist. Nicht das ich dann jedesmal Office2003 brauche und Windows XP mit einer bestimmten Version von irgendeiner Datei

Vielen Dank (schon allein für das durchlesen meines Posts^^) für alle Antworten

Gruß romin
 
Hi,
er zeigt mir an : Installierbares ISAM nicht gefunden.
Ich habe natürlich auch schon gesucht was das heißt und jemand hat geschrieben, dass dieser Fehler bedeutet das die Treiberversion nicht existiert oder veraltet ist
Gruß romin
 
Hallo,
Nur um das schon einmal vorweg zu nehmen: JA ich weiß das ich ein Kaptialverbrechen begehe und ich werde versuchen nicht noch einen Doppelpost zu tätigen

Also ich habe es jetzt soweit, mit meinem zweiten Ansatz (Excel öffnen und dann Zeile für Zeile auslesen), dass ich ein Excelobjekt öffnen kann und ebenso die Mappe die vorher vom Benutzer eingeben wurde. Auch das Schließen des Objektes funktioniert ohne Probleme. Aber das Auslesen funktioniert leider überhaupt nicht. Irgendwie ließt er nicht das aus was ich ihm sagen
Code:
For i = 1 To 100
a = ExWs.Range("A1:B100").Cells(i, 1)
Next

ExWs ist die 1. Excel-Tabelle in meiner Mappe und a ist ein String. Aber er sagt mir nur das ExWs.Range("A1:B100").Cells(i, 1) kein String sei

Hat jemand ne idee woran das liegt? Ich habe auch schon versucht mit CStr() den Ausdruck umzuwandeln aber das will er auch nicht

Gruß romin


//edit:
Ich habe den Fehler mit Hilfe eines anderen Forums finden können. Hinter .Cells(i,1) muss noch ein .Text
 
Zuletzt bearbeitet:
Zurück