WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   VB-Problem mit Shell (http://www.wcm.at/forum/showthread.php?t=71848)

Seidl 30.09.2002 16:11

VB-Problem mit Shell
 
Hallo!

Habe leider ein kleines Problem. Ich habe mehrere User die eine Access-DB verwenden sollen. Da sich die User ohnehin bei Windows anmelden wäre es schön, wenn sie sich nicht auch noch beim Starten der DB ein zweites mal anmelden müssten.
Mein Lösungsansatz war den User mit

UserName = environ("UserName")

auszulesen und dann per

call shell("C:\Programme\Microsoft Office\Office10\MSACCESS.EXE C:\Dokumente und Einstellungen\username\Desktop\Access\MyDB.mdb /user " & UserName & " /pwd XYZ")

die DB zu öffnen. Leider ist aber entweder die Shell oder Access der Meinung, dass der String nach dem ersten Space im Teil für das File lang genug ist und beginnt mit

C:\Programme\Microsoft Office\Office10\MSACCESS.EXE C:\Dokumente.mdb

zu arbeiten, was ja nicht ganz sinnvoll ist da dort selbstverfreilich nix zu finden ist. Wenn ich die Datenbank in einem Pfad ohne Spaces liegen habe funktioniert es wunderbar.

Sicher, ich könnte die DB auch in einen Pfad ohne Spaces legen, aber hier geht es mir auch um's Prinzip. Ich habe nämlich das dumme Gefühl, dass ich eigentlich wissen sollte wie das zu lösen ist.

danke im voraus
Seidl

Sesa_Mina 30.09.2002 16:46

Das hat einfach damit zu tun dass die leerzeichen die einzelnen parameter trennen.

Probiers mal mit

shell "C:\Programme\Microsoft Office\Office10 MSACCESS.EXE ""C:\Dokumente und Einstellungen\username\Desktop\Access\MyDB.mdb"" /user " & UserName & " /pwd XYZ"


wobei die "" jeweils ein " im string erzeugen.

Damit sollte es dann gehen.


Du kannst es aber auch so machen:

TheApp = "C:\Programme\Microsoft Office\Office10\MSACCESS.EXE "
TheDB = """C:\Dokumente und Einstellungen\username\Desktop\Access\MyDB.mdb"""
TheParams = " /user " & UserName &" /pwd XYZ"
shell TheApp & TheDB & TheParams

:D

Seidl 30.09.2002 18:06

Also das ist mir ja jetzt schon ein bisschen peinlich. Eine ähnliche Version hatte ich auch schon versucht um die Strings zu unterteilen. Anscheinend hab ich mich da aber irgendwo vertippt. Jetzt geht's nämlich plötzlich.


Const Q As String = """"

Path = "C:\Programme\Microsoft Office\Office10\MSACCESS.EXE " & Q & "C:\Dokumente und Einstellungen\username\Desktop\Access\MyDB.mdb" & Q & " /user A /pwd B"
Call Shell(Path)


Auf jeden Fall danke, dass du mich auf "den rechten Pfad" zurückgeführt hast. ;)

so long
Seidl


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag