Hallo Leute,
ich hab da ein kleines problem beim schließen von Excell:
oexcel.Workbooks.Open [Pfad_XLS_4]
oexcel.ActiveWorkbook.Sheets("Labor").Select
oexcel.ActiveSheet.Cells(1).Select
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Imp_4_2_2", [Pfad_XLS_4], False, "Labor!B81:J176"
oexcel.SaveWorkspace False
oexcel.Workbooks.Close
beim zweiten aufruf dieser Prozedur bekomme ich das fenster
"eine Datei mit dem Namen'FALSE.xlwx' ist bereit vorhanden"
kann man das speichern verhindern oder abschalten?
lg Michael
Hallo,
unabhängig von dem Mischmasch aus Automation und Transferspreadsheet:
Bist Du sicher, dass die Excel-Datei "False" heißen soll...?
Ich denke mal, Du hast die Parameter-Reihenfolge durcheinander gebracht, bzw. einen ausgelassen....
aus meiner sicht soll das false dafür sorgen das nicht gespeichert wird
mein ursprüngliches Problem liegt darin
das beim import des Excel Sheets, wenn der Curser nicht in der ersten Zeile ist
der Import an dieser stelle beginnt und den rest unten anfügt
dies passiert nicht immer -- warum?
durch die Zeilen 2 und 3 Positioniere ich im sheet das feld
dadurch wird der fehlerhafte import stark reduziert
mit dank im vorraus
michael
Hallo,
durch das False hast Du den Namen der Datei angegeben und nicht die Frage nach Datei ersetzen unterdrückt. Ich meine das nur
ein Komma vor dem False fehlt.
Konnte es aber nicht testen.
Gruß
Johann
Hallo,,
das False steht beim "HasFieldNames"-Parameter und hat nichts mit Speichern zu tun.
Die eigentliche Unklarheit liegt aber am Inhalt des Feldes (??) [Pfad_XLS_4] , das beim "Filename"-Parameter steht und den kompletten (!) PfadDateinamen der xls-Datei enthalten muß (nicht nur den Pfad, wie die Namensgebung vermuten läßt).
"dies passiert nicht immer -- warum?"
habe ja schon auf den "Mischmasch" hingewiesen... Beide Zugriffarten haben nichts miteinander gemein und können auch nicht synchronisiert werden.
Hallo meine Antwort bezog sich auf das Speichern mit
oexcel.SaveWorkspace False
Wie kann beim acImport denn der Dateiname vergeben werden?
Hier kann man doch nur die falsche Datenquelle auswählen.
Gruß
Johann
Hallo,
ok, mit SaveWorkspace ;)
ZitatWie kann beim acImport denn der Dateiname vergeben werden
???
auch beim Import von XLS-Daten in eine Access-Tabelle braucht man die Angabe der Excel-Datei (des Excel-Dateinamens).
Natürlich muss man den Dateinamen haben.
Aber meine Frage war eigentlich wie es zu der Meldung "eine Datei mit dem Namen'FALSE.xlwx' ist bereit vorhanden" beim
acImport kommen kann.
Das Problem liegt meiner Meinung nach beim Speichern der Excel-Datei durch den Mischmasch von Acc und Excel in der Routine.
Gruß
Johann
ja, meine ich auch :D
Es ist auch möglich, dass Excel beim zweiten Mal noch nicht wieder richtig geschlossen wurde...
Am Codefragment jedenfalls sieht man nicht, was sonst alles passiert..
Hallo
erstmal Danke für die Mühe
im [Pfad_xls_4] steht der Komplette Pfad incl. Datei mit Endung
oexcel.Workbooks.Open [Pfad_XLS_4]
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Imp_4_2_2", [Pfad_XLS_4], False, "Labor!B81:J176"
bei diesem Code Kommt es unverhoft und auch nicht bei jeder Datei zu einem fehler:
es wird "ab selektierter zeile(feld) importiert und im Anschluß der rest
um dies zu definieren hatte ich mir A1 zu setzen
oexcel.ActiveWorkbook.Sheets("Labor").Cells(1).Select
und am schluß zu schließen
oexcel.Workbooks.Close
darauf bekomme ich die meldung" möchten sie Speichern"
und so kam der rest
Gruß
Michael
Hallo,
scheinbar liegt das Problem wirklich bei Excel.
Frage: Kannst Du nicht in der Excel-Tab den zu importierenden Bereich mit einen Namen versehen?
Wenn ja dann entfällt der gesamte Excel-Kram da man beim Import auch mit dem benannten Bereich arbeiten kann.
Ich würde einfach den Bereich so groß machen das die maximal Anzahl Zeilen importiert werden. Danach kannst Du
dann im Acc die Leerzeilen einfach löschen.
Jetzt kenne ich nicht Deine Anwendung aber ist sicherlich eine Überlegung wert.
Gruß
Johann