'Sección de Declaraciones del Módulo:
DefLng A-Z
Type BROWSEINFO
hWndOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
uFlags As Integer
lpfn As Long
lParam As Long
iImage As Long
End Type
Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Declare Function SHBrowseForFolder Lib "Shell32" Alias "SHBrowseForFolderA" (lpbi As BROWSEINFO) As Long
Const BIF_RETURNONLYFSDIRS As Integer = 1
' -------------- Hasta aquí las Declaraciones ---------------------
'Función para el cuadro de diálogo buscar Ruta en el Módulo:
Function BrowseForFolder(ByVal f_HWnd As Long, Optional lpTitle As Variant) As String
On Error Resume Next
Dim lpiidl As Long, lResult As Long
Dim lpbi As BROWSEINFO
Dim lpszBuf As String
Dim lpszNameSpace As String
lpszBuf = String$(255, Chr$(0))
lpszNameSpace = String$(255, Chr$(0))
With lpbi
.hWndOwner = f_HWnd
.pidlRoot = vbNullString
.lpszTitle = lpTitle
.pszDisplayName = lpszBuf
.uFlags = BIF_RETURNONLYFSDIRS
.lpfn = vbNullString
.lParam = 0&
.iImage = 0&
End With
lpiidl = SHBrowseForFolder(lpbi)
If lpiidl = 0 Then BrowseForFolder = "": Exit Function
lResult = SHGetPathFromIDList(lpiidl, lpszNameSpace)
If lResult = 1 Then
BrowseForFolder = Left$(lpszNameSpace, InStr(lpszNameSpace, Chr$(0)))
End If
End Function
' --------------- Hasta aquí la Función -------------
'Esto ya vá en el Formulario:
'Evento "Al hacer click" del botón de comando "RutaCarpeta"
Private Sub RutaCarpeta_Click()
Dim ShellPath As String
ShellPath = BrowseForFolder(Me.Hwnd, "Seleccione el Path de la Carpeta ...")
If ShellPath <> "" Then
Carpeta = Mid(ShellPath, 1, Len(ShellPath) - 1)
Me.Requery
Carpeta.SetFocus
Else
Carpeta.SetFocus
End If
End Sub
Creas un cuadro de texto en el formulario de nombre "Carpeta" y un botón de comando
junto a él de nombre "RutaCarpeta", a hacer clic se abrirá un cuadro de diálogo que
busca sólo rutas sin nombre de archivos, luego si al cuadro de texto le pones como
origen del control el campo de una tabla, el path se grabará en un registro de esa
tabla.
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)