Quisiera saber si existe algun OCX para capturar carpeta, es decir el
microsoft command dialog 6.0 me captura ficheros pero lo q yo quiero es
capturar la ruta de la carpeta. He hecho una chapuzilla con el OCX
mencionado, pero me gustaria realizarlo correctamente, gracias


RESPONDE JUAN M. AFAN DE RIBERA
===============================

Para mostrar el cuadro de diálogo "Escojer carpetas" yo uso una API, que
creo la saque de una utilidad de Tomas Boixet

     http://www.abarcode.net/accesslab/default.asp

 copia y pega lo siguiente en un módulo estandard

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

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

Const BIF_RETURNONLYFSDIRS = &H1

Function BrowseFolder(szDialogTitle As String) As String
Dim x As Long, bi As BROWSEINFO, dwIList As Long
Dim szPath As String, wPos As Integer

  With bi
    .hOwner = hWndAccessApp
    .lpszTitle = szDialogTitle
    .ulFlags = BIF_RETURNONLYFSDIRS
  End With
  dwIList = SHBrowseForFolder(bi)
  szPath = Space$(512)
  x = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)
  If x Then
    wPos = InStr(szPath, Chr(0))
    BrowseFolder = Left$(szPath, wPos - 1)
  Else
    BrowseFolder = ""
  End If

End Function

Después, a modo de ejemplo, puedes llamarla de esta manera:

Sub escogerCarpeta()
Dim carpeta As String

  carpeta = BrowseFolder("Escoja una carpeta")
  MsgBox "La ruta escogida es: " & carpeta

End Sub


    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)