PDA

Vollständige Version anzeigen : Pfad


CyberTroll
01.10.2001, 16:02
Ich hab da mal ein Problem *fg*
Wie bekomme ich es hin dass ich über einen Button ein Verzeichniss in ein Textfeld einfügen kann (bzw. in ein Formular).

Das mit der _shell hat funktioniert, leider bekomme ich es nur hin das ich ein Pfad zu einer Datei angezeigt bekomme (möchte allerdings nur den Pfad ohne die Datei).

Beispiel:

richtig:

C:\Temp\

falsch:

C:\Temp\tmp.exe

Gruß

Jürgen

Stefan Kulpa
01.10.2001, 17:55
<font face="Verdana" size="2">Hallo Jürgen,

da gibt es verschiedene Möglichkeiten. Wenn Du Access 2000 besitzt (und damit VBA 6.0) steht Dir die InStrRev()-Funktion zur Verfügung, mit der Du das letzte Auftreten des Backslashs ermitteln kannst.</font>

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre> <span class="TOKEN">Dim</span> sPath <span class="TOKEN">As</span> <span class="TOKEN">String</span>
sPath = "C:\Temp\tmp.exe"
MsgBox Left(sPath, InStrRev(sPath, "\"))</pre></div>

<font face="Verdana" size="2">Ansonsten musst Du den String "durchsuchen":</font>

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre> <span class="TOKEN">Dim</span> sPath <span class="TOKEN">As</span> <span class="TOKEN">String</span>
<span class="TOKEN">Dim</span> lOffset <span class="TOKEN">As</span> <span class="TOKEN">Long</span>

sPath = "C:\Temp\tmp.exe"
<span class="TOKEN">For</span> lOffset = Len(sPath) <span class="TOKEN">To</span> 1 <span class="TOKEN">Step</span> -1
<span class="TOKEN">If</span> Mid(sPath, lOffset, 1) = "\" <span class="TOKEN">Then</span>
MsgBox Left(sPath, lOffset)
<span class="TOKEN">Exit For</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span></pre></div>

<font face="Verdana" size="2">HTH</font>

CyberTroll
02.10.2001, 10:57
Nein, Access 2000 hab ich nicht drauf.

Ich habe leider noch keine große Ahnung von Access. Muss C:\Tmp\tmp.exe da drinstehen?

Dim sPath As String
Dim lOffset As Long
sPath = "C:\Temp\tmp.exe"
For lOffset = Len(sPath) To 1 Step -1
If Mid(sPath, lOffset, 1) = "\" Then
MsgBox Left(sPath, lOffset)
Exit For
End If
Next

Gruß

Jürgen

Wile E G
02.10.2001, 11:42
Hi
du kannst hinter sPath jeden beliebigen Pfad eingeben. Die Funktion kürzt dir dann den letzten Dateinamen weg.
du kannst auch
sPath = ME!Meintextfeld
eingeben, wenn der Pad in einem Textfeld gespeichert ist.
HTH
Wile E.G.