Renombrar y copiar archivos desde acces

Tengo dos archivos

1-  Datos                                UBICACION C:\TARIFADOR\

2- Datos_Vacios                   UBICACION C:\TARIFADOR\DATOS

Necesito un codigo en un boton que haga lo sieguiente:

A - que el Archivo Datos pase llamarse "Datos Año" osea datos 2018

B- El archivo datos_vacios que esta en la carpeta del programa currentpath\datos se copie a cl currentpath con el nombre de Datos.

Podran ayudarme

1 respuesta

Respuesta
2

Pon esto en el código de tu botón (tendrás que modificar la extensión del archivo, yo supuse que era un excel):

Const ruta1 As String = "C:\TARIFADOR\"
Const ruta2 As String = "C:\TARIFADOR\DATOS"
Dim fso As Object
Dim fsa As Object
Set fso = CreateObject("Scripting.FileSystemObject")
'Renombras Datos
Set fsa = fso.GetFile(ruta1 & "Datos.xlsx")
fsa.Copy ruta1 & "Datos_" & Year(Date) & ".xlsx"
'Copias el archivo plantilla
Set fsa = fso.GetFile(ruta2 & "Datos_Vacios .xlsx")
fsa.Copy ruta1 & "Datos" & ".xlsx"
MsgBox "Archivos copiados"
Set fsa = Nothing
Set fso = Nothing

Un saludo.


     bit.ly/ForoNkSv 

¡Gracias! 

hola lo sulucione con parte de tu codigo que es lo que me faltaba. pero tal cual me lo enviaste no me funciono

'declaro variables
Dim ruta3 As String
Dim ruta4 As String
Dim fs As Object
Dim A As String
Dim C As Object
'verifico que existan los directorios y si no los crea
Set fs = CreateObject("Scripting.FileSystemObject")
If Not fs.FolderExists((CurrentProject.Path & "\Respaldo")) Then
Set fs = CreateObject("Scripting.FileSystemObject")
Set C = fs.CreateFolder((CurrentProject.Path & "\Respaldo"))
End If

ruta3 = CurrentProject.Path & "\Datos.accdb"
ruta4 = CurrentProject.Path & "\Respaldo\" & "Datos_" & Year(Date) & ".accdb"
'ejecuta copia a carpeta respaldodel archivo principal
Dim B As String
B = ruta3
Set fs = CreateObject("Scripting.FileSystemObject")
fs.CopyFile B, ruta4, True
MsgBox "Archivos copiados"

lo dejo por si le sirve a alguien.

CONSULTA FINAL :  Me gustaria ejecutar ese codigo cada 1 hora en mi formulario principal

se que deberia hacerlo en al cronometro pero no tengo claro como aun

Pues tal como te lo envié funciona perfectamente (según tu explicación), porque lo probé antes de responder...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas