Crear Carpeta al crear un nuevo registro

Estoy terminando una bbdd en access 2007 que me ha costado sangre, sudor y lágrimas... Después de esto me quito el sombrero con vosotros!

Quería preguntaros una duda

Quiero que al dar de alta un registro mediante form (Pacientes), ejecutar una macro (en el botón que guarda el registro después de comprobar que los datos se intoducieron ok) que cree una carpeta siempre en la misma ruta "c:\.....gestion\pacientes" con el nombre Id_pac&Apellidos_pac.

La verdad es que no tengo mucha idea de vb, si me lo podéis explicar fácil o directamente decirme cómo puedo guardarlo como una función a la que después llamar desde la macro os lo agradecería en el alma.

Ya he visto que esto está en otros sitios en el foro, pero no termino de aclararme.

1 respuesta

Respuesta
3

Emmanuel: En el Código del Botón Guardar que mencionas del Formulario Pacientes.

'Necesitarás Microsoft Scripting Runtime >> C:\Windows\SysWOW64\scrrun.dll. Para Windows 8.1 64. Si es otro Buscar

Dim NombreCarpeta As String
Dim ExisteCarpeta As Boolean
Dim Dir As FileSystemObject
NombreCarpeta = Me.Id_Pc & Me.Apellidos_Pac
Set Dir = New FileSystemObject

'Establezco True o False según si Existe o nó la Carpeta
ExisteCarpeta = Dir.FolderExists(“C:\......\” & NombreCarpeta & “\") 'para comprobar si existe

'Sondeo el valor de ExisteCarpeta
If ExisteCarpeta = False Then
Dir.CreateFolder ((“C:\......\” & NombreCarpeta & “\") 'Para crear un directorio
MsgBox "Se ha creado la Carpeta ” & NombreCarpeta & “!!!", vbExclamation, "CREACION DE CARPETA"
End If

Set Dir = Nothing

Ya me contarás: Saludos >> Jacinto

¡Gracias Jacinto!!!!

Me ha servido un montón. 

Al final he adaptado el código, al principio no funcionaba y mirando, mirando y probando lo puse así y funciona. 

Le he puesto tb un msg si la carpeta existe.

Es la primera vez que hago algo así con VB !!

Gracias por tu ayuda, porque si no habría sido imposible.

Private Sub Comando263_Click()
Dim NombreCarpeta As String, Path As String
Dim ExisteCarpeta As Boolean
Dim Dir As FileSystemObject
NombreCarpeta = Me.Id_Pac & "-" & Me.Nombr_Pac & " " & Me.Apellidos_pac
Path = "C:\Dropbox\Pacientes\"
Set Dir = New FileSystemObject

'Establezco True o False según si Existe o nó la Carpeta
ExisteCarpeta = Dir.FolderExists(Path & NombreCarpeta)
'para comprobar si existe

'Sondeo el valor de ExisteCarpeta
If ExisteCarpeta = False Then
Dir.CreateFolder (Path & NombreCarpeta)
'Para crear un directorio
MsgBox "Se ha creado la Carpeta" & NombreCarpeta & "!!!", vbExclamation, "CREACION DE CARPETA"
ElseIf ExisteCarpeta = True Then
MsgBox "La carpeta ya existe", vbExclamation, "CREACION DE CARPETA"


End If

Set Dir = Nothing
End Sub

Una cosa más (sin querer ser muy pesado). Si ese código que tengo asociado a un comando lo quisiera convertir en una función que poder llamar desde otros eventos, cómo lo podría hacer?

Gracias de nuevo

En un Modulo Standard declara las Variables que ya hay como Publicas >> Ejemplo: Public NombreCarpeta As String ... y así con cada una.

Declara una Variable nueva que se llame:

Public Frm As Form

Desde donde llames a la Función >>

Set Frm = Me

Call NombreDeLaFuncion

Set Frm = Nothing

Y ya dentro de la Función donde tienes Me. pones Frm.

Ejemplo: Me.Nombr_Pac pasaría a Frm.Nombr_Pac

Un saludo>> Jacinto

Emmanuel: Estaba repasando preguntas sin valoración y ésta es una de ellas.
Te agradeceré si la valoras, o si necesitas información adicional, me comentas.
Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas