Crear una carpeta automáticamente en Windows desde un formulario Access usando VBA

Escrito por Administrador

13 de diciembre de 2021

Hoy voy a enseñaros a crear automáticamente una carpeta en Windows desde un formulario Access usando VBA. De esta manera, podremos decidir la ruta en la que guardaremos los informes elaborados o cualquier otro tipo de información de nuestra base de datos sin tener que salir al explorador de Windows.

En el ejemplo que adjunto al final del post, encontraréis un único formulario llamado "Crear carpeta". En el campo "Nombre", podréis escribir el nombre de la carpeta que, por configuración en el propio código, se creará en la carpeta raíz de la unidad C. Evidentemente, esto lo podéis modificar a vuestro gusto y seleccionar la ruta que mejor os venga.

bloquear-access-fecha

El código a implementar en el evento "Al hacer clic" del botón Crear es el siguiente,

Private Sub Crear_Click()

Dim MiFso As Object
Dim Ruta As String

'La ruta se creará en el directorio raíz de la unidad C y el nombre de la carpeta será el escrito en el campo nombre

Ruta = "C:\" & Form!Nombre

Set MiFso = CreateObject("Scripting.FileSystemObject")

DoCmd.SetWarnings False

On Error GoTo nocrear

MiFso.CreateFolder Ruta

msgbox "Carpeta creada con éxito"

nocrear:

DoCmd.SetWarnings True

End Sub

Vamos a continuar con el ejemplo para verlo de manera más clara. Para ello, selecciona como nombre de carpeta "VBATotal" y, después, pulsa el botón Crear.

Si todo ha ido bien, verás un mensaje de creación de carpeta exitosa y, si navegas a través del explorador de archivos de Windows, la encontrarás en la raíz de la unidad C.

A continuación, te dejo el enlace donde explico el funcionamiento de la función msgbox, por si te interesa profundizar más en ella.

bloquear-access-fecha
bloquear-access-fecha

Espero que con este ejemplo, hayas aprendido a crear una carpeta automáticamente en Windows desde un formulario Access usando VBA.

Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.

Hasta la próxima.

Si te ha servido y quieres donar

Descarga el archivo del ejemplo

6 Comentarios

  1. Avatar

    Buenos dias, Por favor me puede orientar o si tienes un ejemplo.
    Requiero validar y que la base de datos el usuario pueda seleccionar un sitio o carpeta del disco Duro para almacenar y guardar el archivo luego del proceso ejecutado.
    Ejemplo:
    Tengo una Consulta X que el resultado es el filtro de N usuario. El resultado es "id, Nombre, Direccion, Pocision, usuario, CheckValida, Fecha", este resultado el usuario debe tener la posibilidad de escoger la carperta y el nombre del archivo (debe ser XSL, XLSX, CSV y txt).
    Quedo atento a sus comentarios
    Gracias

    Responder
    • Avatar

      Hola Fernando,

      Deberás realizar una exportación de datos desde Access hasta Excel, y allí seleccionar el formato y ruta a la hora de guardar.

      Otra opción es pasar con input el nombre, la extensión y la ruta del archivo, pero no creo que adelantes nada así.

      Saludos.

      Responder
      • Avatar

        Buenos días. eso es claro, ya lo tengo en código a través de un comando
        DoCmd.OutputTo acOutputForm, "Frm_ctas", acFormatXLSX, "C:\Users\user1\Documents\Resultado_Tempo99.xlsx", 1
        Pero si hago la operación desde otro computador esa ruta ya no va existir en el equipo donde la vaya a hacer.
        Por eso estoy tratando de hacer un código en un form que desde un botón y una caja de texto pueda manipular el destino del archivo y también asignar un nombre cualquiera con las respectivas extensiones como lo comente anteriormente. Estuve revisando la propiedad OpenArgs, sin embargo es algo que no he manejado anteriormente. Le agradecería su orientación si hay algún código o ejemplo en access para poder lograr este cometido, mil gracias de antemano

        Responder
        • Avatar

          Hola Fernando,

          Tendrías que crear un campo llamado Ruta y asociar el siguiente código a un botón,

          Dim str as string
          str=Form!Ruta
          DoCmd.OutputTo acOutputForm, "Frm_ctas", acFormatXLSX, str, 1

          Saludos.

          Responder
  2. Avatar

    Buenas intento canviar la ruta a
    \\192.168.1.250\Administracio\FoldersAlumnes y no me la crea?
    Gracias

    Responder
    • Avatar

      Buenos días,

      Se me ocurren dos cosas...la primera es que no tengas permisos para crear carpetas en ese destino.

      La segunda es que para crear la carpeta FoldersAlumnes, tengas que crear previamente la carpeta Administracio porque no esté creada aún.

      Ya me dices.

      Saludos.

      Responder

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Últimas publicaciones

Categorías

abril 2024
LMXJVSD
1234567
891011121314
15161718192021
22232425262728
2930 

Debates en el foro

Avatar
Formularios con ADO

Contacto