WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 30.09.2002, 16:11   #1
Seidl
Veteran
 
Registriert seit: 10.01.2001
Beiträge: 478


Standard 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
Seidl ist offline   Mit Zitat antworten
Alt 30.09.2002, 16:46   #2
Sesa_Mina
Schwarzfußfrettchen
 
Registriert seit: 28.01.2001
Beiträge: 2.071


Standard

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

____________________________________
Wann die kan Almdudler ham... \"Es gibt nur einen Weg zur Lunge, und der muss geteert werden, damit der Krebs nicht stolpert!\"
http://www.dream.at/gizmo/bunny.gif
Image is © 2001 Merle
Sterndalsäg.. ähh... jäger
Sesa_Mina ist offline   Mit Zitat antworten
Alt 30.09.2002, 18:06   #3
Seidl
Veteran
 
Registriert seit: 10.01.2001
Beiträge: 478


Standard

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
Seidl ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:17 Uhr.


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