Access - ¿Cómo puedo utilizar DirListBox en Access?

 
Vista:

¿Cómo puedo utilizar DirListBox en Access?

Publicado por David (8 intervenciones) el 13/09/2001 12:40:07
Gracias por tu tiempo.
¿Cómo se pueden utilizar los controles de Visual Basic DriveListBox, DirListBox y FileListBox en Access?.
Pretendo que el usuario pueda elegir la unidad, directorio y fichero a través de 'cuadros de lista' sin tener que introducir toda la dirección del fichero a seleccionar. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

¿Cómo puedo utilizar DirListBox en Access?

Publicado por Alejandro (4142 intervenciones) el 18/04/2023 00:35:47
En Access, no existen controles predefinidos como DriveListBox, DirListBox y FileListBox. Sin embargo, puedes utilizar controles de cuadro de lista y código VBA para lograr una funcionalidad similar. Aquí te explico cómo:

1. Agrega un cuadro de lista para la unidad (DriveListBox) en tu formulario o informe.

2. Agrega un cuadro de lista para el directorio (DirListBox) en el mismo formulario o informe.

3. Agrega un cuadro de lista para el archivo (FileListBox) en el mismo formulario o informe.

4. En el evento OnChange del cuadro de lista de la unidad, agrega el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub cboDrive_Change()
    'Limpia los cuadros de lista de directorio y archivo
    cboDir.RowSource = ""
    cboFile.RowSource = ""
 
    'Agrega la unidad seleccionada al cuadro de lista de directorio
    cboDir.AddItem cboDrive.Value & "\", 0
 
    'Rellena el cuadro de lista de directorio con las subcarpetas de la unidad seleccionada
    Dim path As String
    path = cboDrive.Value & "\"
    Dim dir As String
    dir = Dir(path, vbDirectory)
    Do While Len(dir) > 0
        If (GetAttr(path & dir) And vbDirectory) = vbDirectory Then
            cboDir.AddItem path & dir, 0
        End If
        dir = Dir()
    Loop
End Sub

Este código agrega la unidad seleccionada al cuadro de lista de directorio y rellena el cuadro de lista de directorio con las subcarpetas de la unidad seleccionada.

5. En el evento OnChange del cuadro de lista del directorio, agrega el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub cboDir_Change()
    'Limpia el cuadro de lista de archivo
    cboFile.RowSource = ""
 
    'Rellena el cuadro de lista de archivo con los archivos de la carpeta seleccionada
    Dim path As String
    path = cboDir.Value
    Dim file As String
    file = Dir(path & "\*.*", vbNormal)
    Do While Len(file) > 0
        If (GetAttr(path & "\" & file) And vbDirectory) <> vbDirectory Then
            cboFile.AddItem file, 0
        End If
        file = Dir()
    Loop
End Sub

Este código rellena el cuadro de lista de archivo con los archivos de la carpeta seleccionada.

6. En el evento OnClick del cuadro de lista del archivo, agrega el siguiente código:

1
2
3
4
5
6
Private Sub cboFile_Click()
    'Abre el archivo seleccionado
    Dim path As String
    path = cboDir.Value & "\" & cboFile.Value
    Application.FollowHyperlink path
End Sub

Este código abre el archivo seleccionado utilizando la función FollowHyperlink de Access.

Con estos pasos, podrás utilizar cuadros de lista para permitir que el usuario seleccione la unidad, el directorio y el archivo sin tener que introducir toda la dirección del archivo a seleccionar. Espero que esto te sea de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar