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
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
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
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.
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
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.
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
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
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!
"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
Grüße Sebastian
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
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
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
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.
----------------------
Fehlt da nach der Zeile mit Shell...
nicht nochmal ein
Set mdbApp = GetObject(FileMDB)
?
Ciao, 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
----------------------------
"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