docusnap-dude
Goto Top

MSaccess Datenbank mit Userabfrage im ActiveDirectory als Link

Versuche einen einheitlichen Shortcut zu einer Datenbank zu kreieren schlagen fehl

Hallo,

da haben wir unterschiedlichste Systeme im Einsatz (windows XP, Windows 7, Windows 7x64) und auch unterschiedliche Officeversionen (2003Pro,2003Std + Runtimes, 2007pro etc.).

Jetzt hab ich da eine Access-Datenbank auf einem UNC-Path mit Userabfrage; den link zur Datenbank möchte ich per GPO definieren. Aber das schlägt fehl... Warum:

-rufe ich die Datenbank direkt auf über folgenden Link "\\Sharename\Folder\MyDatabase.mde /wrkgrp \\Sharename\Folder\system.mdb" geht die DB zwar auf allerdings ohne Userabfrage (die System.mdb wird nicht beachtet)
-gebe ich zusätzlich vorher an wo die MSACCESS.exe liegt (also der link dann etwa wie folgt: "C:\Program Files (x86)\Microsoft Office\Office12\MSACCESS.exe\\Sharename\Folder\MyDatabase.mde /wrkgrp \\Sharename\Folder\system.mdb" funktioniert das ganze....ABER:
-durch die unterschiedlichen Pfade zur MSACCESS.exe äußerst uneffizient (mal unter C:\Program Files (x86)\Microsoft Office\Office12, mal unter ...\Office11\ usw....)

Was ich nicht so ganz peile:

Rufe ich über Start--> Ausführen einfach "MSACCESS.exe "auf startet Access problemlos. Wozu muss ich diesen gruseligen Pfad vorher angeben?

Irgendeiner eine gute zündende Idee wie ich schlicht und ergreifend die DB direkt mit Parameter verlinken kann?

Danke für "Gehirnfutter".

Frank

Content-Key: 166858

Url: https://administrator.de/contentid/166858

Printed on: April 23, 2024 at 22:04 o'clock

Member: Edi.Pfisterer
Edi.Pfisterer May 25, 2011 at 22:19:58 (UTC)
Goto Top
Hallo!

ist zwar ein bisschen "mit der Kirche ums Kreuz" , funktioniert dafür aber mit hoher Sicherheit:

Ich würde mir ein Script basteln, das den Pfad zur msaccess.exe aus der Registry ausliest.

den Pfad findest Du zb unter
HKCU\Software\Microsoft\Windows\CurrentVersion\Extensions\

Set WshShell = WScript.CreateObject("WScript.Shell")  
WScript.Echo WshShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Extensions\mdb")  
sollte dir - als xyz.vbs gespeichert - den Pfad ausgeben...
{ich Frevler sitz hier gerade an einem MacBook, daher ungetestet....}

der Rest sollte dann keine große Hexerei sein...
(sollte VBScript nicht zu Deinen Steckenpferden zählen, so helfe ich Dir gerne bei der restlichen Umsetzung der Idee... - einfach hier im Forum Bescheid geben)

Ich würde mich (auch im Sinne von Kollegen, die ein ähnliches Problem in der Zukunft haben und auf diesen Beitrag über die Suchfunktion stossen) über Feedback freuen, ob der Tipp Früchte trägt...

lg
gutes Gelingen
Edi
Member: DocuSnap-Dude
DocuSnap-Dude May 26, 2011 at 06:44:24 (UTC)
Goto Top
Hi,

hat ich auch schon probiert. Ich hab das sogar mal Systemvariable deffiniert und ruf das wie folgt auf:

%Officepath%\msaccess.exe \\Share\MyDB.mde /wrkgrp \\share\system.mdw

Aber:
Access brüllt mich an das ich "ungültige Command-Line Optionen" benutze.

KREEEIIISSSCCCHHH.

Noch 'ne Idee?

Danke
Member: Edi.Pfisterer
Edi.Pfisterer May 26, 2011 at 09:51:15 (UTC)
Goto Top
Hallo!

ist das ein Tippfehler, oder ein Tippfehler:

C:\Program Files (x86)\Microsoft Office\Office12\MSACCESS.exe\\Sharename\Folder\MyDatabase.mde /wrkgrp \\Sharename\Folder\system.mdb
ungleich
%Officepath%\msaccess.exe \\Share\MyDB.mde /wrkgrp \\share\system.mdw

eventuell brüllt Access, weil Du ihm ein W für ein B vormachst?
Member: DocuSnap-Dude
DocuSnap-Dude May 26, 2011 at 10:02:44 (UTC)
Goto Top
Hi,

du meinst "system.mdb" anstatt "System.mdw" --> da hab ich mich vertippt.

na wie gesagt: im Script nutze ich die variable %Officepath% (welche bei mir folgendes als Result auswirft):

"C:\Program Files (x86)\Microsoft Office\Office12"

Das Problem ist halt:

Sobald ich mit meiner Variablen arbeite (also %Officepath%\MSACCESS.exe\\Sharename\Folder\MyDatabase.mde /wrkgrp \\Sharename\Folder\system.mdw) geht das nicht; nutze ich den harten Pfad (also C:\Program Files (x86)\Microsoft Office\Office12\MSACCESS.exe\\Sharename\Folder\MyDatabase.mde /wrkgrp \\Sharename\Folder\system.mdw) geht das problemlos. Ich krieg das nicht in die Rübe :-S
Member: Edi.Pfisterer
Edi.Pfisterer May 26, 2011 at 10:19:58 (UTC)
Goto Top
Poste mal das ganze Script, das Du in der GPO verwendest!

wir werden das schon hinbekommen, muss ja gehen!

lg
Member: DocuSnap-Dude
DocuSnap-Dude May 26, 2011 at 11:07:44 (UTC)
Goto Top
janz simpel a la "good old school" erstmal zum testen wie folgt benutzt (soll mal vbs werden oder so):

echo off
if exist "%ProgramFiles(x86)%\Microsoft Office" goto 64bit  
if not exist "%ProgramFiles(x86)%\Microsoft Office" goto 32bit  
goto error

:64bit
if exist "%ProgramFiles(x86)%\Microsoft Office\Office12\MSACCESS.exe" goto Office2007_64bit  
if exist "%ProgramFiles(x86)%\Microsoft Office\Office11\MSACCESS.exe" goto Office2003_64bit  
goto error

:32bit
if exist "%ProgramFiles%\Microsoft Office\Office12\MSACCESS.exe" goto Office2007_32bit  
if exist "%ProgramFiles%\Microsoft Office\Office11\MSACCESS.exe" goto Office2003_32bit  
goto error


:Office2007_64bit
set Officepath="%ProgramFiles(x86)%\Microsoft Office\Office12"  
goto run

:Office2003_64bit
set Officepath="%ProgramFiles(x86)%\Microsoft Office\Office11"  
goto run

:Office2007_32bit
set Officepath="%ProgramFiles%\Microsoft Office\Office12"  
goto run

:Office2003_32bit
set Officepath="%ProgramFiles%\Microsoft Office\Office11"  
goto run

:run
%Officepath%\msaccess.exe \\Servername\Share\MyDB.mde /wrkgrp \\Servername\Share\system.mdw

goto ende


:error
echo Your Operatingsystem is not supported or you use a not authorized Office-Package !!!
pause
goto ende


:ende
exit
Member: Edi.Pfisterer
Edi.Pfisterer May 26, 2011 at 12:36:49 (UTC)
Goto Top
Hallo!
gleich vorweg:

das wird, wenn sie groß ist, "nur" eine Batch-Datei werden, vbs eher nicht... face-wink

in Zeile 34 steht erneut system.mdw...

ansonsten halt doch ein bisschen Umständlich, Deine herangehensweise... (ohne, dass ich Dich kritisieren möchte...)

wenn ich Dich richtig verstehe, möchtest Du am Desktop (?) des Clients eine Datei anlegen, die als Verknüpfung zur DB dient, oder?

was wäre mit folgender Lösung:

Starte_meine_db.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")  
pfad = WshShell.RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Extensions\mdb")  

alles = pfad & " \\SERVERNAME\Sharename\Folder\MyDatabase.mde /wrkgrp \\SERVERNAME\Sharename\Folder\system.mdb"  

wshshell.run alles, 1, False

und diese Starte_mein_db.vbs kopierst Du per GPO auf den Desktop
sollte so funktionieren...
Member: DocuSnap-Dude
DocuSnap-Dude May 26, 2011 at 14:48:04 (UTC)
Goto Top
Yeeeah!


Das funzzt! Danke Dir.

Hast ein Bier gut!