Backup backend |
Responder |
Autor | ||
Erick Gamer
Asiduo Unido: 08/Mayo/2016 Localización: Mexico Estado: Sin conexión Puntos: 387 |
Tema: Backup backend Enviado: 31/Mayo/2023 a las 19:59 |
|
Hola a todos, tengo problemas con el codigo a continuacion para crear un Backup de mi Backend, el error obtenido es el error 52, este es el codigo.
Hice algunos debug.prints para validar las rutas origen y destino y veo estan bien, alguna idea donde puede estar el problema? Saludos Erick Gamer
|
||
Aprendiz de todos, maestro de nadie.
|
||
happy
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Moderador Unido: 29/Enero/2005 Localización: España Estado: Sin conexión Puntos: 3192 |
Enviado: 31/Mayo/2023 a las 20:40 | |
Imagino que el error 52 lo da en la línea en que intentas crear la base de datos con la copia de seguridad. Ahora no recuerdo de qué va ese error, pero si lo da en esa línea seguramente es porque hay alguna falta en la cadena de texto con la ruta y nombre de la copia de seguridad. He comprobado que la instrucción WeekdayName(Weekday(DATE), True) & ".accdb" devuelve ju..accdb y eso provocará un error al intentar guardar el archivo.
Si es eso, yo te sugiero que utilices otro tipo de personalización para las copias de seguridad. Si te sirve, yo les suelo poner al final la fecha y hora con minutos y segundos, así es prácticamente imposible que se repita ese nombre. Puedes sustituir la línea donde das finalmente el nombre a la copia de seguridad, en vez de esto: strDestinationFile = strPath & "backup\" & strBackendFile & "-" & WeekdayName(Weekday(DATE), True) & ".accdb" utiliza esto otro: strDestinationFile = strPath & "backup\" & strBackendFile & "-" & Format(Date,"ddmmyyyy_hhnnss") & ".accdb"
|
||
Saludos,
Juan M. Afan de Ribera |
||
happy
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Moderador Unido: 29/Enero/2005 Localización: España Estado: Sin conexión Puntos: 3192 |
Enviado: 31/Mayo/2023 a las 20:50 | |
Además de lo que te decía en el anterior mensaje, pienso que la rutina para extraer nombre y ruta puedes simplificarlo mucho si lo haces de esta otra manera:
|
||
Saludos,
Juan M. Afan de Ribera |
||
Erick Gamer
Asiduo Unido: 08/Mayo/2016 Localización: Mexico Estado: Sin conexión Puntos: 387 |
Enviado: 31/Mayo/2023 a las 21:51 | |
Una disculpa Happy por no poner en donde me tira el error.
El error me lo da en esta línea:
Haciendo un debug print no me da esos .. que le arroja a usted.
Me convencen sus comentarios para tener la fecha, hora minutos en segundos en que se creo al copia de seguridad y la simplicacion del codigo. Los aplicare una vez solucionado el problema con la copia de seguridad. Un saludo Erick Gamer |
||
Aprendiz de todos, maestro de nadie.
|
||
happy
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Moderador Unido: 29/Enero/2005 Localización: España Estado: Sin conexión Puntos: 3192 |
Enviado: 31/Mayo/2023 a las 23:30 | |
Yo comentaba que si imprimía esto (que es parte de la cadena que haces servir para formar el strDestinationFile)
?WeekdayName(Weekday(DATE), True) me imprimía esto ju. (supongo que a tí te aparece Wed porque tienes configurado Windows con idioma inglés) pero fíjate que acaba con un punto. Si luego le añades & ".accdb", la cadena terminará con algo como ju..accdb o Wed..accdb En todo caso, si lo que dices en tu última respuesta de que strDestinationFile contiene la cadena "MS Access;PWD=1234;DATABASE=C:\Apps\My_db\Datos\backup\MART_BackEnd-Wed.accdb", si das la instrucción de guardar un fichero en esa ruta, windows devolverá el error de que no puede, ya que esa cadena no está apuntando a ninguna ruta válida. Debes asegurarte de que la strDestinationFile contiene únicamente la ruta y el nombre de la copia de seguridad. Por ejemplo: C:\Apps\My_db\Datos\backup\MART_BackEnd-Wed.accdb Entonces, si la ruta de la carpeta es válida supongo que ya podrás guardar el archivo sin más problemas
|
||
Saludos,
Juan M. Afan de Ribera |
||
happy
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Moderador Unido: 29/Enero/2005 Localización: España Estado: Sin conexión Puntos: 3192 |
Enviado: 31/Mayo/2023 a las 23:38 | |
Disculpa, ya entiendo, me he equivocado antes cuando te aconsejaba simplificar la obtención de las cadenas. Quedaría así:
|
||
Saludos,
Juan M. Afan de Ribera |
||
Erick Gamer
Asiduo Unido: 08/Mayo/2016 Localización: Mexico Estado: Sin conexión Puntos: 387 |
Enviado: 01/Junio/2023 a las 00:49 | |
Hola Happy,
Le he pasado una ruta valida manualmente y el error persiste:
Resultado: C:\Apps\My_db\Datos\backup\MART_BackEnd-31052023.accdb Erick Gamer
|
||
Aprendiz de todos, maestro de nadie.
|
||
happy
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Moderador Unido: 29/Enero/2005 Localización: España Estado: Sin conexión Puntos: 3192 |
Enviado: 01/Junio/2023 a las 09:14 | |
Por lo que he comprobado el error 52 dice "Nombre o número de archivo incorrecto" y en un mensaje anterior dices que ese error salta en la línea
strDestinationFile = strPath & "backup\" & strBackendFile & "-" & WeekdayName(Weekday(DATE), True) & ".accdb" esto me tiene algo confundido. ¿Estás seguro? Porque el error según lo entiendo yo, no tiene lógica que salte en esa línea, sino en la siguiente, la línea FileCopy strSourceFile, strDestinationFile Por favor, comprueba si strSourceFile es un fichero válido y si strDestinationFile está formado adecuadamente. Tú me dices por ejemplo que haces esto: strDestinationFile = "C:\Apps\My_db\Datos\backup\" & strBackendFile & "-" & Format(DATE, "ddmmyyyy_hhnnss") & ".accdb" Debug.Print strDestinationFile Resultado: C:\Apps\My_db\Datos\backup\MART_BackEnd-31052023.accdb y esto tampoco lo entiendo, pues la parte de la cadena que dice "Format(DATE,"ddmmyyyy_hhnnss") tendría que provocar que el resultado fuera algo diferente del que pones ahí, ya que esa instrucción le está pidiendo que ponga las horas minutos y segundos y no lo veo en ese resultado. Debería salir algo como C:\Apps\My_db\Datos\backup\MART_BackEnd-31052023_235903.accdb (o algo así, dependiendo de cuándo hayas ejecutado esa instrucción) En todo caso, en este enlace dan una explicación del error 52 y las causas que pueden provocar el error: https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/bad-file-name-or-number-error-52 Repasa bien los nombres de los archivo, tanto el archivo origen, como el archivo destino y comprueba manualmente si el de origen realmente existe (haz la prueba copiando esa ruta en el navegador de archivos) y si el de destino realmente apunta a una carpeta que ya haya sido creada y que la cadena no tenga caracteres prohibidos o cosas por el estilo, de manera que el sistema rechace la creación del fichero Editado por happy - 01/Junio/2023 a las 09:15 |
||
Saludos,
Juan M. Afan de Ribera |
||
Erick Gamer
Asiduo Unido: 08/Mayo/2016 Localización: Mexico Estado: Sin conexión Puntos: 387 |
Enviado: 02/Junio/2023 a las 22:33 | |
Hice estos pequeños cambios en estas líneas y ahora funciona.
Solo un detalle, las hrs, minutos y segundos no me los da, lo que me da un en su lugar es esto: NombreDb-02062023_000000 El OS lo tengo en ingles. Erick Gamer.
Editado por Erick Gamer - 02/Junio/2023 a las 22:35 |
||
Aprendiz de todos, maestro de nadie.
|
||
Erick Gamer
Asiduo Unido: 08/Mayo/2016 Localización: Mexico Estado: Sin conexión Puntos: 387 |
Enviado: 02/Junio/2023 a las 22:44 | |
Happy, cambie el formato de Data a Now() y ahora funciona no se si este descontinudao ese tipo de formato pero no me daba la hora, minutos y segundos.
Quedo así:
Erick Gamer |
||
Aprendiz de todos, maestro de nadie.
|
||
happy
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Moderador Unido: 29/Enero/2005 Localización: España Estado: Sin conexión Puntos: 3192 |
Enviado: 03/Junio/2023 a las 08:07 | |
Sí, sí, tienes razón. Al darle como dato la fecha actual no le estamos dando posibilidad de imprimir la hora minutos y segundos. Fallo mío, fallo mío
|
||
Saludos,
Juan M. Afan de Ribera |
||
Erick Gamer
Asiduo Unido: 08/Mayo/2016 Localización: Mexico Estado: Sin conexión Puntos: 387 |
Enviado: 05/Junio/2023 a las 16:13 | |
Se puede cerrar este hilo.
Muchas Gracias Erick Gamer
|
||
Aprendiz de todos, maestro de nadie.
|
||
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |