Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

VBA - MDB mit Access-Runtime starten

309 views
Skip to first unread message

Claudia

unread,
Sep 10, 2008, 5:52:23 AM9/10/08
to
Hallo Access-Freunde,

ich habe hier ein Problem mit dem öffnen einer MDB-Datei mit Access-
Runtime 2007.
Die MDB-Datei wird über Word-VBA geöffnet und dann sollen in der MDB-
Datei ein paar VBA-Codes ausgeführt werden.

Sieht in Word-VBA so aus:
Option Explicit
Public Const FileMDB = "c:\temp\test.mdb"
Sub MDB_Import()
Dim mdbApp As Object

Set mdbApp = CreateObject("Access.Application").SysCmd(6)
'Datenbank öffnen (nicht exklusiv !!!)
mdbApp.OpenCurrentDatabase FileMDB, False
'In Access VBA-Code ausführen ausführen
mdbApp.Application.Run "DatenEinlesen"
End Sub

Ich bekomme in der Set-Zeile den Laufzeitfehler 429 -
"Objekterstellung durch ActiveX-Komponente nicht möglich" und habe
keine Ahnung wo der Fehler liegt.
Öffne ich die Datei manuell, klappt es, die MDB-Datei scheint also in
Ordnung zu sein :-).

Vielen Dank für Eure Hilfe
Grüße
Claudia

André Minhorst

unread,
Sep 10, 2008, 6:03:18 AM9/10/08
to
Hi Claudia,

mir fällt das ominöse SysCmd(6) auf. Wofür ist denn das? Ich würde das mal
weglassen.

Ciao
André

--
http://www.access-entwicklerbuch.de
http://www.access-im-unternehmen.de

Claudia

unread,
Sep 10, 2008, 6:08:16 AM9/10/08
to
Hi André,

danke für Deine schnelle Reaktion.

SysCmd(6) ist der Aufruf von Runtime2007, auch weglassen hilft nix,
habe ich schon probiert.

Hast Du evtl. noch eine Idee

Grüße
Claudia

André Minhorst

unread,
Sep 10, 2008, 6:18:00 AM9/10/08
to
Hi Claudia,

Am Wed, 10 Sep 2008 03:08:16 -0700 (PDT) schrieb Claudia:

> SysCmd(6) ist der Aufruf von Runtime2007, auch weglassen hilft nix,
> habe ich schon probiert.

aus

Set mdbApp = CreateObject("Access.Application").SysCmd(6)

mache

Set mdbApp = CreateObject("Access.Application")

mdbApp.SysCmd (6)

Ich konnte das leider nur mit der Vollversion testen, da ich keine Maschine
mit Office 2007 ohne Access, dafür aber mit der Runtime habe, aber Du
kannst es ja mal ausprobieren.

Claudia

unread,
Sep 10, 2008, 7:57:41 AM9/10/08
to
Hi André,

klappt auch nicht, an dem PC mit der Access-Vollversion gehts, aber
dem PC, bei dem nur die Runtime-Version installiert ist, kommt wieder
die Fehlermeldung.

... noch Ideen?

Vielen Dank für Deine Hilfe und Grüße
Claudia

André Minhorst

unread,
Sep 10, 2008, 8:33:23 AM9/10/08
to
Hallo Claudia,

Am Wed, 10 Sep 2008 04:57:41 -0700 (PDT) schrieb Claudia:
> klappt auch nicht, an dem PC mit der Access-Vollversion gehts, aber
> dem PC, bei dem nur die Runtime-Version installiert ist, kommt wieder
> die Fehlermeldung.
>
> ... noch Ideen?

das mit SysCmd(6) ist auf jeden Fall Quatsch:

Debug.Print SysCmd(acSysCmdRuntime)

liefert nämlich einen Boolean-Wert zurück, der angibt, ob man aktuell die
Runtime von Access verwendet.

Davon ab habe ich gerade von einer Access-Datenbank aus probiert, eine neue
Instanz unter der Runtime-Version von Access zu erstellen - es hat nicht
funktioniert. Ich würde also davon ausgehen, dass sich die Runtime von
Access nicht automatisieren lässt. Vielleicht kann noch jemand anderes eine
Quelle dazu beisteuern, das steht sicher auch irgendwo.

Gunter Avenius

unread,
Sep 10, 2008, 8:40:29 AM9/10/08
to
Hallo André,

André Minhorst schrieb folgendes:


> Davon ab habe ich gerade von einer Access-Datenbank aus probiert, eine neue
> Instanz unter der Runtime-Version von Access zu erstellen - es hat nicht
> funktioniert. Ich würde also davon ausgehen, dass sich die Runtime von
> Access nicht automatisieren lässt. Vielleicht kann noch jemand anderes eine
> Quelle dazu beisteuern, das steht sicher auch irgendwo.

http://support.microsoft.com/kb/295179/de

Gruß
Gunter
--
__________________________________________________________
Access FAQ: http://www.donkarl.com
11. Access-Entwickler-Konferenz http://donkarl.com/?AEK
Nürnberg, 11./12.10. + 18./19.10. + 25./26.10.2008

home: http://www.avenius.com - http://www.AccessRibbon.de
http://www.ribboncreator.de

Jens Schilling

unread,
Sep 10, 2008, 8:55:19 AM9/10/08
to
Hi, Gunter

Gunter Avenius wrote:
> André Minhorst schrieb folgendes:
>> Davon ab habe ich gerade von einer Access-Datenbank aus probiert,
>> eine neue Instanz unter der Runtime-Version von Access zu erstellen
>> - es hat nicht funktioniert. Ich würde also davon ausgehen, dass
>> sich die Runtime von Access nicht automatisieren lässt. Vielleicht
>> kann noch jemand anderes eine Quelle dazu beisteuern, das steht
>> sicher auch irgendwo.
>
> http://support.microsoft.com/kb/295179/de

Ja, den wollte ich auch grad posten, da warst Du schneller ;-)

Aber geht's vielleicht doch ?

OLE Automation mit einer Laufzeitversion von Microsoft ACCESS:

http://support.microsoft.com/kb/506602/de

Ich hab' nun allerdings nur den Link gefunden, und nicht geprüft, ob's geht;
die ID des KB-Beitrages deutet auch darauf hin, dass es schon etwas älter
ist. Aber wer weiss ....

--
Gruss
Jens
______________________________
11. AEK - Oktober 2008 ( www.donkarl.com/?AEK )
FAQ: http://www.donkarl.com


André Minhorst

unread,
Sep 10, 2008, 8:54:09 AM9/10/08
to
Hi Gunter,

Am Wed, 10 Sep 2008 14:40:29 +0200 schrieb Gunter Avenius:
> André Minhorst schrieb folgendes:
>> Davon ab habe ich gerade von einer Access-Datenbank aus probiert, eine neue
>> Instanz unter der Runtime-Version von Access zu erstellen - es hat nicht
>> funktioniert. Ich würde also davon ausgehen, dass sich die Runtime von
>> Access nicht automatisieren lässt. Vielleicht kann noch jemand anderes eine
>> Quelle dazu beisteuern, das steht sicher auch irgendwo.
>
> http://support.microsoft.com/kb/295179/de

danke!

Sascha Trowitzsch

unread,
Sep 10, 2008, 1:38:33 PM9/10/08
to
Hi,

"Jens Schilling" <jensschilling...@fissership.de> schrieb im
Newsbeitrag news:%23sls8R0...@TK2MSFTNGP04.phx.gbl...


> Hi, Gunter
>
> Gunter Avenius wrote:
>> André Minhorst schrieb folgendes:
>>> Davon ab habe ich gerade von einer Access-Datenbank aus probiert,
>>> eine neue Instanz unter der Runtime-Version von Access zu erstellen
>>> - es hat nicht funktioniert. Ich würde also davon ausgehen, dass
>>> sich die Runtime von Access nicht automatisieren lässt. Vielleicht
>>> kann noch jemand anderes eine Quelle dazu beisteuern, das steht
>>> sicher auch irgendwo.
>>
>> http://support.microsoft.com/kb/295179/de
>
> Ja, den wollte ich auch grad posten, da warst Du schneller ;-)
>
> Aber geht's vielleicht doch ?
>
> OLE Automation mit einer Laufzeitversion von Microsoft ACCESS:
>
> http://support.microsoft.com/kb/506602/de
>
> Ich hab' nun allerdings nur den Link gefunden, und nicht geprüft, ob's geht;
> die ID des KB-Beitrages deutet auch darauf hin, dass es schon etwas älter ist.
> Aber wer weiss ....

Ja doch; das war schon immer die (funktionierende) Methode, um Runtimes zu
starten/automatisieren - bis heute und A2007 inkl.

Ciao, Sascha


Sebastian Brandt

unread,
Sep 10, 2008, 2:44:58 PM9/10/08
to
Hallo Sascha,

>> OLE Automation mit einer Laufzeitversion von Microsoft ACCESS:
>>
>> http://support.microsoft.com/kb/506602/de
>>
>> Ich hab' nun allerdings nur den Link gefunden, und nicht geprüft, ob's geht;
>> die ID des KB-Beitrages deutet auch darauf hin, dass es schon etwas älter ist.
>> Aber wer weiss ....
>
> Ja doch; das war schon immer die (funktionierende) Methode, um Runtimes zu
> starten/automatisieren - bis heute und A2007 inkl.
nur leider ohne Möglichkeit, ordentlich ein Datenbankkennwort zu
übergeben (nicht Benutzerkennwort/-berechtigungen) :-(

Grüße Sebastian

Jens Schilling

unread,
Sep 10, 2008, 3:15:21 PM9/10/08
to
Hallo, Sascha

Sascha Trowitzsch wrote:
>> OLE Automation mit einer Laufzeitversion von Microsoft ACCESS:
>> http://support.microsoft.com/kb/506602/de

> Ja doch; das war schon immer die (funktionierende) Methode, um
> Runtimes zu starten/automatisieren - bis heute und A2007 inkl.

Dank Dir für die Bestätigung.

Jetzt - nach dem Lesen - fällt mir auch wieder ein, damit mal herumgespielt
zu haben.
Das muss so etwa um den Zeitpunkt gewesen sein, als der KB-Artikel noch war
;-)

Tschüs
Jens


Henry Habermacher

unread,
Sep 11, 2008, 12:17:26 AM9/11/08
to
Hallo Sebastian

Sebastian Brandt wrote:
>> Ja doch; das war schon immer die (funktionierende) Methode, um Runtimes
>> zu starten/automatisieren - bis heute und A2007 inkl.
> nur leider ohne Möglichkeit, ordentlich ein Datenbankkennwort zu
> übergeben (nicht Benutzerkennwort/-berechtigungen) :-(


Das Problem bei dieser Methode ist wohl, dass die CurrentDB bereits
gestartet wird, also nicht eigentlich eine leere AccessRT Instanz und darin
anschliessend über OpenCurrentDB die MDB beöffnet wird. Es stellt sich die
Frage, ob man die aktuelle CurrentDB allenfalls loswerden könnte um dann,
nach dem Umhängen der SystemDB eine neue CurrentDB zu öffnen. Evt. geht es
auch mit einer PrivDBEngine. Google sei Dein Freund.

Gruss
Henry


--
11. AEK Anmeldung unter http://donkarl.com/?AEK
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Claudia

unread,
Sep 11, 2008, 5:22:42 AM9/11/08
to
Hallo Jens, hallo Gunter

vielen Dank für Eure Tipps, habe es jetzt mit Hilfe der Beiträge
hinbekommen, sieht jetzt so aus:

Option Explicit
Public Const FileMDB = "c:\temp\test.mdb"

Public Const AccRTPfad = "C:\Programme\Microsoft Office
\Office12\MSACCESS.EXE"
Public mdbApp As Object

Sub MDB_Import()
On Error Resume Next
Set mdbApp = GetObject(FileMDB)
If Err <> 0 Then
If Dir(FileMDB) = "" Then
MsgBox "Die Datenbank GZP unter ""c:\temp\test.mdb""
fehlt!"
Exit Sub
Else
If Dir(AccRTPfad) = "" Then
MsgBox "Access Runtime 2007 ist nicht installiert!"
Exit Sub
Else
'Access-Runtime mit Datenbank öffnen
Shell pathname:=AccRTPfad & " " & Chr(34) & FileMDB &
Chr(34), windowstyle:=vbNormalNoFocus
End If
End If
End If
'Makros in Access starten
mdbApp.Application.Run "DatenEinlesen"
End Sub

Allen anderen auch Danke fürs "Gedanken-machen"
Grüße
Claudia

Jens Schilling

unread,
Sep 11, 2008, 6:34:01 AM9/11/08
to
Hallo, Claudia

Claudia wrote:
> vielen Dank für Eure Tipps, habe es jetzt mit Hilfe der Beiträge
> hinbekommen, sieht jetzt so aus:

Dank Dir für die Rückmeldung und das Posten der Lösung.

Sascha Trowitzsch

unread,
Sep 11, 2008, 9:23:34 AM9/11/08
to
Hallo Claudia,
----------------------
"Claudia" <claudia...@web.de> schrieb im Newsbeitrag
news:aa7b8e50-5a86-4984...@l43g2000hsh.googlegroups.com...
Hallo Jens, hallo Gunter

----------------------

Fehlt da nach der Zeile mit Shell...
nicht nochmal ein
Set mdbApp = GetObject(FileMDB)
?

Ciao, Sascha


Claudia

unread,
Sep 17, 2008, 6:13:37 AM9/17/08
to
Hi Sascha,

> Fehlt da nach der Zeile mit Shell...
> nicht nochmal ein
> Set mdbApp = GetObject(FileMDB)

... steht oben gleich am Anfang ...

Sub MDB_Import()
On Error Resume Next
Set mdbApp = GetObject(FileMDB)

...

Grüße
Claudia

Sascha Trowitzsch

unread,
Sep 17, 2008, 8:48:48 AM9/17/08
to
Hi Claudia,

----------------------------


"Claudia" <claudia...@web.de> schrieb im Newsbeitrag

news:397e128d-c627-411a...@l43g2000hsh.googlegroups.com...
Hi Sascha,

----------------------------

Das nützt nur nicht viel, wenn es fehlschlägt und danach in die Err <> 0-Zeilen
verzweigt wird, wo Access über Shell gestartet wird.
Danach wird dennoch in der letzen Zeile

mdbApp.Application.Run "DatenEinlesen"

ausgeführt, obwohl mdbApp ja Nothing ist. (Err <> 0 ;-) )

Ciao, Sascha


0 new messages