Fehler 1004 Methode fehlgeschlagen
03.01.2004 03:30:12
Frank Holiet
wahrscheinlich ist es eine Zumutung, daß ich den gesaamten Code hier schreibe, aber ich komme einfach nicht mehr weiter.
Das Problem ist, daß der erste Durchlauf dieses Codes völlig unproblematisch ist, doch beim 2. Durchlauf kommt die Fehlermeldung 1004. Die Methode Cells für das Objekt '_Application' ist fehlgeschlagen.
Kann mir jemand eine Hilfestellung geben, wo der Fehler sitzt?
Ganz herzlichen Dank schon vorab!!
Frank
Private Sub ExportmeineTabelle_Click()
Dim oExcel As Excel.Application, DB As DAO.Database, RS As DAO.Recordset, I As Long
Dim XLExport As Object
Dim Datei1
On Error Resume Next
' Löschen der Excel-Tabelle, falls bereits vorhanden
Datei1 = Dir("c:\temp\meineTabelle.xls")
If Datei1 <> "" Then
Kill "c:\temp\meineTabelle.xls"
Else: Resume Next
End If
' öffnet Excel, wenn noch nicht geöffnet
Err.Clear
Set oExcel = GetObject(, "Excel.Application ")
If Err.Number <> 0 Then Set oExcel = CreateObject("Excel.Application")
On Error GoTo 0
With oExcel
.Visible = True
' Import der DBase-Tabelle, abspeichern im Excel-Format
Workbooks.Open FileName:="C:\TEMP\meineTabelle.dbf"
ActiveWorkbook.SaveAs FileName:="C:\TEMP\meineTabelle.xls", FileFormat:=xlNormal
ActiveWorkbook.Close (False)
.Application.Quit
End With
'Löschen der dBase-Tabelle, falls bereits vorhanden
Datei1 = Dir("c:\temp\meineTabelle.dbf")
If Datei1 <> "" Then
Kill "c:\temp\meineTabelle.dbf"
End If
' füllt die Export-Tabelle "tbldBase" mit Daten aus CAQ und dBase-File
DoCmd.SetWarnings False
DoCmd.OpenQuery "qryExcel1"
DoCmd.SetWarnings True
' zurück zu Excel
With oExcel
.Visible = True
' Laden der Vorlage (notwendig, weil dBase Zahlenformate nicht anerkennt)
Set XLExport = GetObject("C:\TEMP\meineTabelle.xlt")
' Microsoft Excel mit zugehöriger Application-Eigenschaft einblenden
XLExport.Application.Visible = True
XLExport.Parent.Windows(1).Visible = True
' zurück zu Access, Verweis auf DB, Öffnen des Recordsets im Snapshot-Format
Set DB = CurrentDb
Set RS = DB.OpenRecordset("tblDBase", dbOpenSnapshot)
' Feldnamen als Überschriften ins Excel übertragen
For I = 0 To RS.Fields.Count - 1
.Cells(1, I + 1) = RS.Fields(I).Name
Next I
.Range("A2").Select
.Selection.CopyFromRecordset RS
' Excel Tabelle in dBaseIV konvertieren und speichern
.ActiveWorkbook.SaveAs FileName:="C:\Temp\meineTabelle.dbf", FileFormat:=xlDBF4
.ActiveWorkbook.Close (False)
.Application.Quit
End With
' Verweis auf Anwendung und Tabellen freigeben.
Set RS = Nothing
Set DB = Nothing
Set XLExport = Nothing
Set oExcel = Nothing
' Löschen der Datensätze der Access-Tabelle "tblDBase
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE tblDBase.* FROM tblDBase;"
DoCmd.SetWarnings True
End Sub