| |

VB & DatenbankenProblem bei Pfadübergabe | |  | Autor: vman | Datum: 03.02.05 08:59 |
| Hallo zusammen,
ich habe bei nachstehendem Code folgendes Problem:
diese Codezeile
[u]DoCmd.TransferSpreadsheet acImport, 8, "Versuch", " " & Pfad & " ", True, " "
erzeugt eine Fehlermeldung und ich kann mir nicht erklären, wie diese zustande kommt.
Generell handelt es sich darum, daß ich in eine Datenbank Dateien importieren muß;
deren Pfad und Dateiname werden getrennt voneinander in einem Feld einer Access-Datenbank manuell eingetragen und abgespeichert.
Dann soll mittels String-Addition der vollständige Dateipfad generiert werden.
Bis hierher habe ich soweit alles gelöst.
Dieser generierte Dateipfad soll als Variable an die DoCmd-Anweisung übergeben werden, um dann den Import zu starten.
Das klappt soweit auch ganz gut.
Bei der Ausführung entsteht aber irgendwo bei der Abarbeitung ein - so komisch das auch klingen mag - zweiter Laufwerksbuchstabe.
Nach der unterstrichenen DoCmd-Anweisung ist der ErrorHandler angelegt und dieser zeigt bei Abarbeiten der Anweisung folgende Fehlermeldung an:
Laufzeitfehler 3011:
Das Microsoft Jet-Datenbankmodul konnte das Objekt
'H:\F:\Eigene Dateien\Datenbank\Test_Fahrzeuge.xls'
nicht finden. Stellen Sie sicher, daß das Objekt existiert (=> tut es) und daß die Namens- und Pfadangaben richtig eingegeben wurden (=> nur teilweise, s.o.).
Ich habe im Debug-Modus jede Codezeile Schritt für Schritt auf die Werte der Variablen hin überprüft.
Dies sind die Inhalte der Variablen:
Variableninhalt rstTabelle("s_data_path"): F:\Eigene Dateien\Datenbank
Variableninhalt rstTabelle("s_filename"): Test_Fahrzeuge.xls
Variableninhalt Pfad: F:\Eigene Dateien\Datenbank\Test_Fahrzeuge.xls
=> dieser Wert ändert sich im Überwachungsfenster durchgehend nicht; nur in der Fehlermeldung wird dann folgender Pfad als Wert angezeigt:
H:\F:\Eigene Dateien\Datenbank\Test_Fahrzeuge.xls,
was obenstehende Fehlermeldung auslöst.
Wenn ich die Pfadübergabe bewußt nicht zulasse und nur den Variablentext anzeigen lasse
([u]DoCmd.TransferSpreadsheet acImport, 8, "Versuch", " & Pfad & ", True, " " ),
ensteht folgende Fehlermeldung:
Das Microsoft Jet-Datenbankmodul konnte das Objekt
'H:\ & Pfad &.XLS' nicht finden. Stellen Sie sicher, daß das Objekt vorhanden ist und die Namens- und Pfadangaben richtig eingegeben wurden. =>
=> soweit ich das beurteilen kann, scheint es dann nicht an der Pfadangabe zu liegen, sondern daß der Fehler möglicherweise doch komplexer ist als es den Anschein hat.
Gibt es eine andere Möglichkeit, als die Variable auf diese Weise zu übergeben, falls es doch daran liegen sollte?
Wenn jemand eine Idee hat, wo der zweite Laufwerksbuchstabe herkommt, würde ich mich sehr freuen, da ich mit meinem Latein jetzt wirklich am Ende bin.
Vielleicht spielt das keine Rolle, aber auf meinem Rechner am Arbeitsplatz gibt es ein Laufwerk H, aber ich arbeite nicht damit.
Vielen Dank im voraus und viele Grüße,
Alex.
Dim dbsNorthwind As Database
Dim rstTabelle As Recordset
Dim s_data_path As String
Dim s_filename As String
Dim Pfad As String
Set dbsNorthwind = DBEngine.OpenDatabase(CurrentDb.Name) 'Macht Pfadeingabe
' unnötig bzw. Änderung derselben bei Kopieren auf ein anderes Laufwerk
Set rstTabelle = dbsNorthwind.OpenRecordset("Datenquellen", dbOpenDynaset)
Pfad = rstTabelle("s_data_path") & "\" & rstTabelle("s_filename")
Set rstTabelle = dbsNorthwind.OpenRecordset("SELECT * FROM Datenquellen WHERE" & _
"[b_import_process]= true;")
Do Until rstTabelle.EOF
On Error GoTo ErrorHandler
[u]DoCmd.TransferSpreadsheet acImport, 8, "Versuch", " " & Pfad & " ", True, "" & _
""
ErrorHandler:
MsgBox Error$
Resume Test_Import_Versuch_Exit
Test_Import_Versuch_Exit:
Exit Sub
rstTabelle.MoveNext
Loop
Set rstTabelle = Nothing
End Sub |  |
 Problem bei Pfadübergabe | 1.269 | vman | 03.02.05 08:59 |
 | 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 |
  |
|
sevISDN 1.0 
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats 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 Infos
|