![]() |
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 |
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 |
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