Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Excell workbook aus access schließen

Begonnen von Michael ah, November 14, 2010, 19:55:26

⏪ vorheriges - nächstes ⏩

Michael ah

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

DF6GL

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....

Michael ah

aus meiner sicht soll das false dafür sorgen das nicht gespeichert wird

Michael ah

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

Jonny

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

DF6GL

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. 

Jonny

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

DF6GL

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).





Jonny

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


DF6GL

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..

Michael ah

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

Jonny

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