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.
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.
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
Enviar un comentario
Últimas publicaciones
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
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.
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
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.
Buenas intento canviar la ruta a
\\192.168.1.250\Administracio\FoldersAlumnes y no me la crea?
Gracias
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.