PDA

Vollständige Version anzeigen : Aufruf der MSAccess.exe mit /Runtime und mit Pfad auf eine MDE ???


AWSW
13.07.2001, 22:23
Hallo und Guten Abend zusammen,
ich habe ein wahrscheinlich kleineres Problem heute am Start :cool:

Ich möchte gerne Access plus eine MDE, mit dem Schalter für die Runtime Funktion aufrufen. Das ganze sollte über eine Desktop oder Startmenüverknüpfung gehen, da ich den /Runtime - Schalter für eine Verknüpfung im AutoStartMenü brauche...

An sich kein Problem, wenn ich den kompletten Pfad zur MSAccess.exe gefolgt von dem Schalter und dem statischen Pfad der MDE in eine Verknüpfung packe...

Mein Problem, bei der Sache ist, dass ich nicht sicher stellen kann, dass der Pfad zur MSAccess.exe fix ist.

Ich habe erfolglos schon versucht die DB wie folgt ohne den kompletten Pfad zur MSAccess.exe zu starten:

"MSAccess.exe" /runtime "C:\PfadA\PfadB\Datenbank.mde"
oder
MSAccess.exe /runtime "C:\PfadA\PfadB\Datenbank.mde"

Beides klappt leider nicht :(

Ich hoffe Ihr könnt mich da unterstützen, da ich da im Moment nicht darauf komme. Ich hatte eigentlich gedacht, dass der Aufruf so klappen müßte, da man ja auch einfach z.B. Winword C:\123.doc aufrufen kann...

Stefan Kulpa
14.07.2001, 17:41
<font face="Verdana" size="2">Hallo,

eine Möglichkeit besteht darin, eine VBScript-Datei zu erstellen, die einen entsprechenden Link auf dem Desktop überprüft und ggf. neu anlegt. Diese Script-Datei könnte dann beispielsweise in die Autostart-Gruppe übernommen werden.

Folgender Code übernimmt diese Aufgabe:</font>

<FONT SIZE=1 FACE=Courier New> <FONT COLOR=#000080>Const</FONT> MYLINK = "MDE starten.lnk" <FONT COLOR=#008000>'** Name des Links</FONT>
<FONT COLOR=#000080>Const</FONT> MYMDE = "C:\PfadA\PfadB\Datenbank.mde"<FONT COLOR=#008000>'** Pfad zur MDE-Datei</FONT>
<FONT COLOR=#000080>Dim</FONT> objWshShell <FONT COLOR=#008000>'As Object</FONT>
<FONT COLOR=#000080>Dim</FONT> objScrFso <FONT COLOR=#008000>'As Object</FONT>
<FONT COLOR=#000080>Dim</FONT> objShellLink <FONT COLOR=#008000>'As Object</FONT>
<FONT COLOR=#000080>Dim</FONT> sRegPath <FONT COLOR=#008000>'As String</FONT>
<FONT COLOR=#000080>Dim</FONT> sClsID <FONT COLOR=#008000>'As String</FONT>
<FONT COLOR=#000080>Dim</FONT> sAppPath <FONT COLOR=#008000>'As String</FONT>
<FONT COLOR=#000080>Dim</FONT> sDesktop <FONT COLOR=#008000>'As String</FONT>
<FONT COLOR=#000080>Dim</FONT> sLnkPath <FONT COLOR=#008000>'As String</FONT>
<FONT COLOR=#000080>Dim</FONT> sTargetPath <FONT COLOR=#008000>'As String</FONT>
<FONT COLOR=#008000>'** WSH-Objekte erstellen</FONT>
<FONT COLOR=#000080>Set</FONT> objWshShell = CreateObject("WScript.Shell")
<FONT COLOR=#000080>Set</FONT> objScrFso = CreateObject("Scripting.FileSystemObject")
<FONT COLOR=#008000>'** CLSID von Access ermitteln</FONT>
sRegPath = "HKLM\SOFTWARE\Classes\Access.Application\CLSID\"
sClsID = objWshShell.RegRead(sRegPath)
<FONT COLOR=#008000>'** Mit der CLSID den Pfad ermitteln</FONT>
sRegPath = "HKLM\SOFTWARE\Classes\CLSID\" & sClsID & "\LocalServer32\"
sAppPath = objWshShell.RegRead(sRegPath)
<FONT COLOR=#008000>'** Pfad zum Desktop ermitteln</FONT>
sDesktop = objWshShell.SpecialFolders("Desktop")
<FONT COLOR=#008000>'** Pfad zur Linkdatei erstellen</FONT>
sLnkPath = sDesktop & "\" & MYLINK
<FONT COLOR=#008000>'** Prüfen ob es diesen Link schon gibt</FONT>
<FONT COLOR=#000080>If</FONT> <FONT COLOR=#000080>Not</FONT> objScrFso.FileExists(sLnkPath) <FONT COLOR=#000080>Then</FONT>
<FONT COLOR=#008000>'** Neuen Link auf dem Desktop anlegen</FONT>
<FONT COLOR=#000080>Set</FONT> objShellLink = objWshShell.CreateShortcut(sLnkPath)
<FONT COLOR=#008000>'** Zielpfad erstellen</FONT>
sTargetPath = sAppPath & " /runtime " & MYMDE
<FONT COLOR=#008000>'** Zielpfad setzen</FONT>
objShellLink.TargetPath = sTargetPath
<FONT COLOR=#008000>'** ShortCut speichern</FONT>
objShellLink.Save
<FONT COLOR=#000080>End</FONT> <FONT COLOR=#000080>If</FONT></FONT>

<font face="Verdana" size="2">Das Ganze könntest Du beispielsweise in eine Datei CheckMDELink.vbs speichern und entsprechend "unterbringen".

HTH,</font>

FW
14.07.2001, 18:03
... oder Du machst es über einen kleinen Umweg, indem Du Deine Access-Anwendung über eine andere startest, in der Du mit
SysCmd(acSysCmdAccessDir)
das aktuelle msaccess.exe-Verzeichnis erhälst und so dann Deine MDE aufrufen kannst.

Alles klar?

Frank

AWSW
14.07.2001, 18:49
Danke Euch beiden, probier ich gleich mal aus :D

AWSW
14.07.2001, 23:36
Hallo noch mal,
bin noch nicht dazu gekommen, die Vorschläge zu testen, aber ich habe auch noch eine andere Lösung gefunden, glaube ich:

Ich habe einfach die MSAccess.exe in das Arbeitsverzeichnis meiner MDE kopiert, so das ich wieder den Aufruf fix gestallten kann. Es sieht so aus als ob es klappen würde, obwohl mit die fast 5MB zusätzlicher Speicherplatzbedarf doch etwas viel sind...


@Stefan: Kann ich das ganze auch in eine EXE packen, die ich unter VB6 erstellen kann, oder nur in eine VBS-Datei ??? Danke schon mal !!!

Stefan Kulpa
15.07.2001, 04:27
<font face="Verdana" size="2">Hallo Axel,

das mit der VB-EXE geht problemlos.

Gruß, Stefan</font>

AWSW
15.07.2001, 11:05
Danke Stefan - wird erledigt - DANKE !!!