Hallo liebes Forum,
ich rätsel gerade an einem Problem. Sicher wisst ihr, woran es liegt. Ich habe bereits versucht, zu googlen, aber es fällt mir schwer, etwas passendes zu finden.
Folgendes mach ich:
- Eine Excel-Datei mit Formatierung soll in eine Access-Tabelle importiert werden (TransferSpreadsheet)
- Damit TransferSpreadsheet die Tabelle lesen kann, lösche ich zunächst die gesamte Formatierung (hatte aus irgendeinem Grund Probleme) und lösche dann auch die ersten 116 Zeilen, da Dort ein Datei-Kopf steht, welchen ich nicht gebrauchen kann.
- Im Anschluss nutze ich dann den Befehl TransferSpreadsheet aus Access und will lesen.
Problem:
Ich habe mehrere Varianten versucht, aber entweder kommt ein Fehler beim Befehl TransferSpreadsheet, dass die Tabelle nicht das erwartete Format enthält, oder aber ich umgehe diesen Fehler, aber dann kommt ca. 5 Sekunden nach Programmausführung ein Windows-Hinweis, dass die Datei nur geöffnet werden kann (Schreibschutzhinweis): Dokument.xls ist jetzt verfügbar. Wählen Sie Lese-7Schreibzugriff, um es zum Bearbeiten zu öffnen.
Set ExlApp = CreateObject("Excel.Application")
With ExlApp
.Visible = False
.Workbooks.Open FileName:=txt_File, updatelinks:=False, readonly:=False
' Formatierung der Zeilen und Spalten. Erst alles löschen, dann
' importieren.
.Range("A:I").Select
.Selection.ClearFormats
.Range("A:C").Select
.Selection.NumberFormat = "@"
.Range("D:I").Select
.Selection.NumberFormat = "0"
.Range("A1:I1").Select
.Selection.NumberFormat = "@"
' Schreibe Spalten-Bezeichnung in erste Zeile, damit Zuordnung zw.
' Access und Excel stattfinden kann
.Cells(1, 1).Value = "Text1"
' [...]
.Cells(1, 9).Value = "Gesamt"
.ActiveWorkbook.Save
ExlApp.Application.Quit
End With
Set ExlApp = Nothing
'ExlApp.ActiveWindow.Close SaveChanges:=True
Set ExlApp = CreateObject("Excel.Application")
With ExlApp
.Visible = False
.Workbooks.Open FileName:=txt_File, updatelinks:=True, readonly:=False
End With
' Importieren der Daten aus Excel in Access
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Tabelle1", _
txt_File, True
ExlApp.ActiveWorkbook.Save
ExlApp.ActiveWindow.Close SaveChanges:=True
ExlApp.Application.Quit
Set ExlApp = Nothingin der Version, wie ich es hier poste, öffne ich excel, bearbeite es und schließe es wieder, öffne es erneut, importiere und schließe es.
Wenn ich excel nach dem bearbeiten schließe und dann importieren will, kommt der Fehler, dass die Tabelle nicht das erwartete Format enthält. Spare ich mir das öffnen-schließen-öffnen-schließen, und bearbeite und importiere zwischen öffnen-schließen, dann kommt auch die Schreibschutzmeldung.
Habt ihr Vorschläge woran das liegt?
Danke!
Gruß
mam2508 |