Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
296to300
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
296to300
296to300
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datei im Fenster selektieren und in Variable

Datei im Fenster selektieren und in Variable
21.08.2003 09:40:09
Michael
Hallo Zusammen.
Ich greife mit Excel auf eine Datenbank zu.
Pfad = "M:\Produkt\Kunden\treffen\06_03\meier.mdb"
Set db = OpenDatabase(Pfad)
Leider ist der Pfad somit immer festgelegt.
Ich möchte, dass der Anwender die Datei über ein Fenster suchen kann (als wenn man z.B. in Excel eine vorhandene Datei öffnet).
Der komplette Pfad soll dann in die Variable "Pfad" geschrieben werden.
Gibt es hierfür ein entsprechendes Objekt ?
Vorab vielen Dank!
Michael

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei im Fenster selektieren und in Variable
21.08.2003 09:55:04
Dieter Maj
Hallo Michael,
folgende Funktion erfüllt deinen Zweck
Gruß Dieter
Option Explicit
Public Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
'** 32-bit API-Deklarationen
Declare

Function SHGetPathFromIDList Lib "shell32.dll" _
Alias "SHGetPathFromIDListA" ( _
ByVal pidl As Long, _
ByVal pszPath As String) As Long
Declare 

Function SHBrowseForFolder Lib "shell32.dll" _
Alias "SHBrowseForFolderA" ( _
lpBrowseInfo As BROWSEINFO) As Long

Function OrdnerAuswahl() As String
Dim bInfo As BROWSEINFO
Dim strPath As String
Dim lngR As Long
Dim lngX As Long
Dim intPos As Integer
bInfo.pidlRoot = 0&
'Info: bei der Anweisung bInfo.pidlRoot = 0& kann man die Zahl in der
'       Anweisung jeweils erhöhen, was folgenden Effekt hat:
'       1   Route-Verzeichnis
'       2   Programme
'       3   Systemsteuerung
'       4   Drucker
'       5   Eigene Dateien
'       6   Favoriten
'       7   Autostart
'       8   Recent(Verlaufsordner)
'       9   SendTo (Senden an)
'      10   Papierkorb
'**Titel des Dialogs
bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus"
'**Unterverzeichnis ermitteln
bInfo.ulFlags = &H1
'**Dialog anzeigen
lngX = SHBrowseForFolder(bInfo)
strPath = Space$(512)
'**Ausgewähltes Verzeichnis einlesen
lngR = SHGetPathFromIDList(ByVal lngX, ByVal strPath)
If lngR Then
intPos = InStr(strPath, Chr$(0))
OrdnerAuswahl = Left(strPath, intPos - 1)
frmDiaProjektor.lblVerzeichnisName.Caption = Left(strPath, intPos - 1)
Else
OrdnerAuswahl = ""
End If
End Function


Anzeige
AW: Datei im Fenster selektieren und in Variable
21.08.2003 10:27:18
Michael
Hallo Dieter,
vielen Dank!
Ich habe aber Probleme die Funktion anzuwenden.
Nachdem Start bekomme ich die Meldung:
frmDiaProjektor
Variable nicht definiert.
Hast Du eine Lösung ?
Gruß
Michael

AW: Datei im Fenster selektieren und in Variable
21.08.2003 10:36:39
Dieter Maj
Hallo Micheal
lösch die Zeile einfach raus
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
frmDiaProjektor.lblVerzeichnisName.Caption = Left(strPath, intPos - 1)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sie stammt von meiner Anwendung und ist für dich nicht relevant
Sorry und Gruß
Dieter

Anzeige
immer noch ein Problem
21.08.2003 11:08:07
Michael
Hallo Dieter,
jetzt sehe ich schon mal die Ordnerauswahl.
Wenn ich auf "Abbrechen" drücke, wird ein Dialogfenster "Datenquelle auswählen" geöffnet. Wie kann man das verhindern.
Wenn ich den Ordner gefunden habe und auf "OK" drücke bekomme ich folgende Fehlermeldung:
"Laufzeitfehler 3051" Ich hätte keine Berechtigung die Datei zu öffnen bzw. sie wäre schon geöffnet - was nicht der Fall ist.
Wäre super, wenn Du mir hier nochmal helfen könntest.
Gruss michael

AW: immer noch ein Problem
21.08.2003 11:18:58
Dieter Maj
Hallo Micha
hier ein Beispiel wie du die Funktion aufrufen mußt:

Sub pfaderstellen()
Dim pfad As String
pfad = OrdnerAuswahl & "\"
msgbox pfad
End Sub

die Funktion ermittelt nur den Pfadnamen (ohne die Datenbankanwendung)

Anzeige
Funktioniert
21.08.2003 11:44:30
Michael
Danke!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige