Access de Xavi
Bienvenido(a), Visitante. ¿Que quieres hacer? ingresar o registrarse.
¿Perdiste tu email de activación?
Septiembre 10, 2010, 06:12:02
Registrate para acceder a las áreas restringidas

Ingresar con nombre de usuario, contraseña y duración de la sesión
Buscar:     Búsqueda Avanzada
Debido a la intrusión de spammers, se ha desactivado la posibilidad de introducir mensajes. Tambien se han baneado las IP's con múltiples usuarios. Si algún usuario 'legal' ha resultado afectado, que me lo comunique (seguro que encuentra la forma)
505 Mensajes en 445 Temas por 1505 Usuarios
Último usuario: insurance431664798
* Inicio Ayuda Ingresar Registrarse
+  Access de Xavi
|-+  Access: Por temas
| |-+  Archivos y carpetas
| | |-+  Seleccionar una carpeta
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Seleccionar una carpeta  (Leído 1815 veces)
xavi
Administrador
*****
Sexo: Masculino
Mensajes: 442



« en: Junio 16, 2008, 19:41:34 »

Palabras clave:seleccionar, carpeta, directorio, GetFolder
Autor: Chea proporcionando un código de Terry Kreft


Pregunta
Quisiera poder abrir una ventana desde un formulario que me mostrase el arbol de unidades con sus directorios y archivos y poder seleccionar uno de ellos desde una aplicación Access.


Responde Chea
Copia el siguiente código en un módulo. Luego, para buscar un directorio basta con llamar a la función GetFolder()

Código:
'Code courtesy of
'Terry Kreft

Private 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

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

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

Private Const BIF_RETURNONLYFSDIRS = &H1
'

Public Function GetFolder(szDialogTitle As String) As String
  Dim X As Long, bi As BROWSEINFO, dwIList As Long
  Dim szPath As String, wPos As Integer

    With bi
' Im original:
        .hOwner = hWndAccessApp
' Geändert zu:
        '.hOwner = XHwnd
        .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))
        GetFolder = Left$(szPath, wPos - 1)
    Else
        GetFolder = ""
    End If
End Function


Nombre archivo Búho: arboldirectorios.txt
En línea
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC XHTML 1.0 válido! CSS válido!