Befehlszeilen Argument mit /cmd

Hallo,

bzgl. der Verwendung der /cmd Option beim Starten von MSAccess (2002) stellt sich mir folgendes Problem:
„pfad/mydb.mdb /cmd myParam“ liefert mir in der DB beim Zugriff auf command nur eine leeren String.

Der Parameter wird nur uebergeben wenn ich die mdb mit „pfad/masaccess.exe pfad/mydb.mdb /cmd myParam“ starte.

Ist meine Beobachtung richtig oder gibt es noch eine Moeglichkeit den /cnd Parameter in die MDB zu uebergeben.

Hintergrund ist, ich moechte mittels einer EMail Anwender aufmerksam machen, das bei einem bestimmten Datensatz in der DB eine Aktion noetig ist. Die Anwender sollten mittels eines Hyperlinks in der EMail die DB starten und direkt das Formular mit den entsprechenden Satz oeffen.
Es ist sichergestellt das Zugriff auf die MDB besteht (Intranet) aber der Installationspfad von Access ist nicht unbedingt auf jedem Rechner identisch.

Hat jemand eine Idee wie ich den Paramter(SatzID) beim Aufruf durchbekommen kann?

Any Help welcome
Tschau
Peter

Hallo,

der Schalter muß der EXE übergeben werden, nicht der MDB…

Wenn der Installationsordner von MSAccess.exe nicht bekannt , bzw. unterschiedlich ist, mußt Du den aus der Registry auslesen und weiterbenutzen.

Hier ein Beispiel (als vbs-Script, Pfade und Dateien halt anpassen)

Dim UName
Dim args
Dim strCommand
set args=Wscript.arguments




DIM accessRegKeyString 
DIM applicationPath 
DIM subKeyString 
Dim strOrigDir, strLocalDir, strFileName, strFileAttr
Dim strOrigFile, strNewFile, strFile, strMDWFile
Dim fso

'Hier die richtigen Namen einsetzen

UName="MeinName" 

strCommand = "Meine Commands"
strOrigDir = "C:\DBs\" 
strLocalDir = "C:\DBs\" 
strFile = "meineDB.mdb" 
strMDWFile ="Sicherheit.mdw"

strOrigFile=strOrigDir & strFile
strNewFile=strLocalDir & strFile

 
SET WSHShell = CreateObject("WScript.Shell") 
 
rootPath = "HKLM\Software\Classes\" 
mdbKey = ".mdb\" 
subKeyString = "shell\Open\Command\" 
 
accessRegKeyString = WshShell.RegRead(rootPath & mdbKey) 

applicationPath = WshShell.RegRead(rootPath & accessRegKeyString & "\" & subKeyString ) 


applicationPath=left(applicationPath,instr( applicationPath,".EXE") + 4)

WSHShell.run applicationPath & " """ & strorigFile & """ /cmd strCommand /user " & UName & " /wrkgrp """ & strOrigDir & strMDWFile & """" 

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo,

der Schalter muß der EXE übergeben werden, nicht der MDB…

sowas habe ich befuerchtet!

Wenn der Installationsordner von MSAccess.exe nicht bekannt ,
bzw. unterschiedlich ist, mußt Du den aus der Registry
auslesen und weiterbenutzen.

Wie bitte soll das funktionieren? Der Link zur MDB soll in eine EMail eigestellt werden, hier den Installationspfad des Absenders einzubauen macht wenig Sinn, denn der Empfaenger der EMail hat u.U. eine andere Installation.
btw: Und ein Script fuer Outlook bzw. ActiveDirectory das dieses Problem loesen koennte steht leider nicht zur Diskusion.

Thanks anyway

Peter

Hallo,

wie das funktioniert, habe ich Dir doch geschrieben ?!

Wer spricht von Outlook oder Active Directory?

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo,

VB-Script ist keine gangbare Moeglichkeit, idF. wird das Ausfuehren von Scripts ueber Subnetgrenzen hinweg vom System nicht zugelassen.

Tschau
Peter

Hallo,

Subnet-Grenzen?

Die Script-Datei muß auf dem Zielrechner liegen. Der Link aus der Mail erhält als „Ziel“ den Pfaddateinamen der vbs-Datei UND als Schalter den Command-String für Access. Dieser Commandstring wird der vbs-Datei als „Öffnungsargument“ übergeben, die diesen wiederum an msaccess.exe neben der mdb-Datei weitergibt…

Viele Grüße vom Bodensee
Franz, DF6GL

Hallo,

wenns denn so einfach waere… und wenn man wuesste von welchem Rechner sich der Anwender einloggt, ewt.von sein Arbeitsstation im Werk in Deutschland, oder mit seinem Laptop aus dem Hotel ueber Terminalserver in England, oder irgend ein Rechner im Werk in Italien oder ??
die vorhandenen Sicherheitsrichtlinien lassen das verwenden eines Scripts in dieser Situation nicht zu.
Dann muss es eben ausreichen die Anwendung zu starten und zu dem ensprechende Satz „von Hand“ zu navigiern.

Tschasu
Peter

Hallo,

ich will da jetzt nicht weiterdiskutieren…

Nirgends wurde von Dir Terminalserver-Anwendung erwähnt.

Gerade bei Terminalserver-Betrieb solltest Du eigentlich genau wissen, wo und wie Access installiert ist. ??

Wie auch immer, wenn Du kein VS-Script benutzen kannst oder sonstige lokale Möglichkeit hast, den individuellen Install-Pfad der msaccess.exe herauszufinden, dann bleibt in der Tat der /CMD-Schalter außen vor…