Hallo Ihr,
ich brauche mal Euren Beistand, weil ich partout nicht mehr weiter komme.
In VBA hatte ich eine Routine geschrieben, die durch bestimmte Pfade durchgeht und nacheinander alle *dbf Dateien öffnet, die dort liegen.
In VBA funktioniert das supi.
Und weil das gut funktioniert habe ich mich daran gemacht dass endlich mal auf VB.Net zu portieren.
Nur das öffnen der Datenbanken macht mir echte Schwierigkeiten. Ich konnte schon herausfinden das es daran liegt, weil die Benamungen der dbf Dateien zu lang sind.
Jetzt habe ich versucht die entsprechend der 8+3 Konventionen zu kürzen aber leider funktioniert das ebenfalls nicht. Ich vermute das Datenbankbezeichnungen wirklich ausgeschrieben werden müssen und nicht gekürzt werden dürfen - weiss das aber nicht genau.
(Datenbankname war dann XYZ123~1.dbf)
Beim Debuggen erhalte ich die Fehlermeldung "The microsoft office Access database engine could not find the object "xyz123123.dbf" Make sure the object exists and that you spell the path name correctly".
Hier mal der entsprechende Sourceteil:
Interessant:
Der gleiche Sourcecode funktioniert in VBA wunderbar.
Es tut mir leid, falls diese Frage schon irgendwo gestellt worden ist. Ich habe wirklich 3h in verschiedenen Foren gesucht und verschiedene Möglichkeiten probiert - aber leider alles ohne Erfolg, was mich wirklich ratlos macht.
Danke schon jetzt an denjenigen, der sich die Mühe macht mir zu helfen.
PS.
Leider kann das Datenbankformat nicht geändert werden. (falls die Frage auftreten sollte)
Viele Grüße,
Flo
ich brauche mal Euren Beistand, weil ich partout nicht mehr weiter komme.
In VBA hatte ich eine Routine geschrieben, die durch bestimmte Pfade durchgeht und nacheinander alle *dbf Dateien öffnet, die dort liegen.
In VBA funktioniert das supi.
Und weil das gut funktioniert habe ich mich daran gemacht dass endlich mal auf VB.Net zu portieren.
Nur das öffnen der Datenbanken macht mir echte Schwierigkeiten. Ich konnte schon herausfinden das es daran liegt, weil die Benamungen der dbf Dateien zu lang sind.
Jetzt habe ich versucht die entsprechend der 8+3 Konventionen zu kürzen aber leider funktioniert das ebenfalls nicht. Ich vermute das Datenbankbezeichnungen wirklich ausgeschrieben werden müssen und nicht gekürzt werden dürfen - weiss das aber nicht genau.
(Datenbankname war dann XYZ123~1.dbf)
Beim Debuggen erhalte ich die Fehlermeldung "The microsoft office Access database engine could not find the object "xyz123123.dbf" Make sure the object exists and that you spell the path name correctly".
Hier mal der entsprechende Sourceteil:
VB.NET-Quellcode
- Dim output As String
- Dim adoConnection As Object
- adoCnnection = CreateObject("ADODB.Connection")
- Dim adoRecordset As Object
- adoRecordset = CreateObject("ADODB.Recordset")
- Dim strSQL As String
- Try
- With adoConnection
- .ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;;Data Source=C:\1\;Extended Properties = dBase IV"
- .Open()
- .strSQL = "SELECT COUNT(VAL) FROM 123XYZXYZ.dbf"
- adoRecordset.Open(strSQL, adoConnection)
- output = adoRecordset.GetString
- .Close()
- End With
- Catch ex As Exception
- ...
- End Try
Interessant:
Der gleiche Sourcecode funktioniert in VBA wunderbar.
Es tut mir leid, falls diese Frage schon irgendwo gestellt worden ist. Ich habe wirklich 3h in verschiedenen Foren gesucht und verschiedene Möglichkeiten probiert - aber leider alles ohne Erfolg, was mich wirklich ratlos macht.
Danke schon jetzt an denjenigen, der sich die Mühe macht mir zu helfen.
PS.
Leider kann das Datenbankformat nicht geändert werden. (falls die Frage auftreten sollte)
Viele Grüße,
Flo