Access Programm aus excel starten

Hallo.
Wie kann ich ein Access Programm aus Excel (Makro) heraus starten?
Mein Makro läuft ab, und soll zum Schluss eben ein Access Prg starten (Dieses Access Prg. läuft sein Programm durch, und schließt sich danach wieder automatisch)

Danke

Wie kann ich ein Access Programm aus Excel (Makro) heraus
starten?
Mein Makro läuft ab, und soll zum Schluss eben ein Access Prg
starten (Dieses Access Prg. läuft sein Programm durch, und
schließt sich danach wieder automatisch)

Hallo Anton,

grundsätzlich kann man oft das nehmen:

x=shell(„PfadzuAccess\Access.exe Accessdateiname“, Fensterindex)

(Fensterindex ist die Fenstergröße, Fokus usw., siehe Hilfe zu shell)

Es gibt da noch shellexecute.

Aber vielleicht ist das hier für dich passender:

http://www.office-loesung.de/ftopic117322_0_0_asc.php

Gruß
Reinhard

Hallo Reinhard.
Danke zuerst einmal, für deine Hilfe.
Leider funktioniert es nicht.

Ich möchte folgendes Prg laden.
\ptpsbs\PTPPC\Client\AutoAbfüllung\P2PPC_BigBag.mde
(mit diesem Pfad, wie mache ich das?)

Danke

Mfg.

Hallo Krisam,

Wie kann ich ein Access Programm aus Excel (Makro) heraus
starten?
Mein Makro läuft ab, und soll zum Schluss eben ein Access Prg
starten (Dieses Access Prg. läuft sein Programm durch, und
schließt sich danach wieder automatisch)

wenn du über Automatisierung auf andere Office-Anwendungen zugreifen willst, machst
du das „blind“ (Excel kennt Access-Objekte nicht), einfacher ist es, wenn du einen
Verweis auf die Objektbibliothek erzeugst. Dazu im vba-Editor unter Extras-Verweise
das Kontrollfeld für die Access Bibliotheken setzen (z.B. Microsoft
Access 10.0 Object Library oder Microsoft Access 11.0 Object Library oder …), falls du
es nicht findest, gehe über „Durchsuchen“. Der Pfad ist bei Standard-Installation
C:\Programme\Microsoft Office\Office 10\MSACC.OLB

Office 97 8
Office 2000 9
Office XP 10
Office 2003 11
usw.

Wenn du dann eine Office-Anwendung aus Excel heraus startest, ist dies standardmäßig nicht
sofort sichtbar. So kannst du ohne dass der User es merkt, in Access irgendwelche
Abfragen starten und diese z.B. per Mail verschicken oder ausdrucken und anschließend
Access wieder schließen. Du mußt also Access in einer zusätzlichen Anweisung sichtbar setzen.

z. B.
Dim Aa as New Access.application
Aa.visible=true

dabei wird auf jeden Fall eine neue Instanz geöffnet, auch wenn bereits Access läuft.

ohne Objektbibliothek:

dim Aa as object 'hier wird zunächst versucht, eine Verbindung zu einer 
 'laufenden Instanz herzustellen. Um eine Fehleranzeige zu 
 'verhindern, falls das nicht klappt, ist nach der Deklaration von 
 'Aa "on eror resume next" erfordelich
on error resume next
set Aa=getobject(,"Access.Application") 'versucht eine Verbindung zu einer laufenden Instanz 
 'herzustellen, falls das nicht klappt, hat 
 'Aa den Wert Nothing, deshalb "if Aa is nothing then ...
if Aa is nothing then
set Aa=createobject("Access.Application") 'startet neue Instanz von Access
end if
...

Du kannst wohl davon ausgehen, dass Access installiert ist, sonst müßtest du auch prüfen, ob
createobject den Wert nothing hat

Beim Beenden von Access soltest du auch daran denken, den belegten Speicher wieder frei zu geben mit

set Aa=nothing

Vielleicht hilft dir das ja schon weiter

Gruß
Marion

Hallo Anton,

Danke zuerst einmal, für deine Hilfe.
Leider funktioniert es nicht.

nobody is perfect :smile:

Ich möchte folgendes Prg laden.
\ptpsbs\PTPPC\Client\AutoAbfüllung\P2PPC_BigBag.mde
(mit diesem Pfad, wie mache ich das?)

Ich habe kein Netzwerk, kann also nichts testen.
Du könntest in Access ein Makro aufzeichnen während du diese Datei manuell in Access öffnest.
Vielleicht sieht man da im Code Hinweise auf die Schreibweise.

Gibt es im Netzwerk den Befehl „Subst“?

Google im Internet mal nach dem was Marion schrieb, also
Createobject Access.Application
und vielleicht mde usw.

Und wie sieht die Synntax aus wenn du eine Exceldatei aus diesem Netztwerk öffnest?
Workbooks.Open „\ptpbbs…\Test.xls“

Vielleicht geht ja auch sowas:

CurDir & „/P2PPC_BigBag.mde“

Gruß
Reinhard

Hallo Reinhard.
Danke nochmal für deine Hilfe.

Habe es folgendermassen gelöst:
Dim stAppName As String

stAppName = „MSACCESS.EXE
\ptpsbs\PTPPC\Client\AutoAbfüllung\P2PPC_BigBag.mde“

Shell (stAppName)

Du hast mir schon das richtige geschrieben, nur habe ich beim umsetzen einen fehler gemacht.
Mfg. KA