PDA

Vollständige Version anzeigen : Access.LockFile.9 - Makroübergabe-Problem


JPreis
13.07.2005, 11:48
Hallo zusammen,

ich habe folgendes Problem.
Ich exportiere Daten aus Access in Excel (siehe Modul-Funktion).
Leider wird das in Excel angestossene Makro >objExcel.Run "GesamteDV"<
nicht korrekt ausgeführt (Automatisierungsfehler 440), obwohl es in Excel
alleine sauber abläuft.
Ich denke, dass durch den Fehler das Access.LockFile.9 bestehen bleibt und mir jede Menge Probleme bereitet... :entsetzt:

Gibt es hier schon ein offensichtliches Code-Problem?



'------------------------------------------------------------------------
'ModulName: ExportGesamt
'Funktion: 1) Ermittelt die höchsten ID-Werte der Tabellen Version, Case, Territory, Attribute, Value
' 2) Erstellt darauf basierend eine Tabelle 'maximum ID'
' 3) Exportiert die Tabelle nach Import.xls [Referenzadresse: General, ID = 2]
' 4) Öffnet die Datei Import.xls [Referenzadresse: General, ID = 2]und
' 5) Start der xls.Makros
' a)Transfer der Schlüsseldaten aus dem Sheet maximumID
' b)Transfer der Forecast-Daten aus dem Template
'------------------------------------------------------------------------


Function ExGesamt()

Dim objExcel As Object
Set objExcel = CreateObject("Excel.Application")

''1)2) Generiert die maximalen ID's über Tabellenerstellungsabfrage tbl maximumID
'' Dialogfelder ausgeblendet

DoCmd.SetWarnings False
DoCmd.OpenQuery "maxID", acNormal, acEdit
DoCmd.SetWarnings True

''3) Exportiert Tabelle maximumID nach Import.xls
''Referenzpfad ist aus der Tabelle General, die Adresse mit ID "2"
DoCmd.TransferSpreadsheet acExport, 8, "maximumID", DLookup("[Wert]", "General", "[ID] = 2"), True, ""

''4) Öffnet das File Import.xls
''Referenzpfad ist aus der Tabelle General, die Adresse mit ID "2"
objExcel.Workbooks.Open FileName:=DLookup("[Wert]", "General", "[ID] = 2")
objExcel.Visible = True

''5)Startet das Makro_
objExcel.Run "GesamteDV"

objExcel.Quit
Set objExcel = Nothing

End Function


Ende des Excel-Moduls >GesamteDV<:

...
...
''3) Löscht den aktuellen, importierten Project_Name
Range("D2").Select
Application.CutCopyMode = False
Selection.ClearContents

'Verknüpfungen AktualisierenDialog an
Application.AskToUpdateLinks = True
'Dialoge anzeigen
Application.DisplayAlerts = True
'Anzeige ein
Application.ScreenUpdating = True

'Aktives Workbook schließen und speichern
ActiveWorkbook.Close (True)

End Sub

rita2008
13.07.2005, 12:38
und wo genau tritt dort der Fehler auf?

mfg Rita

JPreis
13.07.2005, 13:06
Wie bereits angedeutet läuft das Modul "GesamteDV" in Excel tadellos durch.
Wird es jedoch von Access aus gestartet, so läuft es nicht ganz durch (Automatisierungsfehler 440) und der Debugger beleuchtet mir in Access

--> objExcel.Run "GesamteDV"

Jörg

rita2008
13.07.2005, 16:19
Kann es sein, dass sich GesamteDV() in einem Klassenmodul befindet oder als Private deklariert ist?

mfg Rita

JörgG
13.07.2005, 19:02
sperre die Zeile objExcel.Quit und verlege das Quit ins XL_Makro