Página 1 de 1

¿Cómo reparar una base de datos en Access?

Publicado: 26 Sep 2014, 15:39
por esteban
Hola, soy nuevo acá y tengo un problema. Necesito recuperar tablas perdidas en una base de datos en Access 2003. Ya he probado muchas cosas que dicen en varios foros, pero ninguna ha funcionado, incluídas las técnicas de compatar y reparar que dan en el soporte de Microsoft, que son estas http://office.microsoft.com/es-ar/acces ... 87449.aspx.

Ya llevo varios días sin poder resolver este problema y al finalizar el mes necesito presentar unos datos en el trabajo que no tengo y que me dará un dolor de cabeza si no puedo conseguir. Mi pregunta es ¿qué herramienta de recuperación de base de datos me recomiendan?, ya he probado la versión gratis de Kernel, pero es un desastre, no funciona. Así que bueno, estaré atento a leer sus respuestas y opiniones.

Gracias!

Re: ¿Cómo reparar una base de datos en Access?

Publicado: 26 Sep 2014, 16:23
por federico
esteban escribió:Hola, soy nuevo acá y tengo un problema. Necesito recuperar tablas perdidas en una base de datos en Access 2003. Ya he probado muchas cosas que dicen en varios foros, pero ninguna ha funcionado, incluídas las técnicas de compatar y reparar que dan en el soporte de Microsoft, que son estas http://office.microsoft.com/es-ar/acces ... 87449.aspx.

Ya llevo varios días sin poder resolver este problema y al finalizar el mes necesito presentar unos datos en el trabajo que no tengo y que me dará un dolor de cabeza si no puedo conseguir. Mi pregunta es ¿qué herramienta de recuperación de base de datos me recomiendan?, ya he probado la versión gratis de Kernel, pero es un desastre, no funciona. Así que bueno, estaré atento a leer sus respuestas y opiniones.

Gracias!

hola Esteban bienvenido. El enlace que publicas no funciona.

Podrías probar con http://www.cimaware.com/main/products/accessfix.php

Re: ¿Cómo reparar una base de datos en Access?

Publicado: 15 Oct 2014, 14:10
por esteban
Muchas gracias Federico, la verdad es que ha funcionado de maravillas. No conocía este software, pero realmente es excelente, pude recuperar absolutamente todos los campos dañados en mi base de datos y lo mejor de todo es que los pude guardar en otro archivo. Perdón por la demora, pero bueno dije que iba a responder si me funcionaba y la verdad que fue excelente, gracias nuevamente por la ayuda.

Re: ¿Cómo reparar una base de datos en Access?

Publicado: 15 Oct 2014, 16:04
por Alejandro
Botella de vino fino para Federico :alabanza:

Re: ¿Cómo reparar una base de datos en Access?

Publicado: 16 Oct 2014, 02:11
por elQuique
El enlace creo que era este: office.microsoft.com/es-es/access-help/restaurar-una-base-de-datos-HA010235588.aspx#BM2 acortado para que quede http://goo.gl/GG5PMB

Igualmente es bueno tener en cuenta que si bien funciona casi siempre en base de datos pequeñas no siempre es posible recuperar todo, por lo general la estructura lo logra bien o la toma de la cabecera o bien la "adivina" pero en muchos casos se pierden registros y a veces ni cuenta nos damos jeje.

Siempre es bueno sacarle copia antes de intentar repararla, en todos los casos, pero sobre todo ya que como con un método de pronto no podemos recuperar todo por otro método si y de esa forma logramos recomponer algún que otro registro adicional.

Y como siempre, sobre todo en Access que es bastante débil por meter todo en un solo archivo, es bueno tener un respaldo diario por las dudas que no tengamos vuelta atrás. De pronto un simple archivo por lotes que se ejecute al apagar o prender el PC y que comprima el archivo y lo tire a un dropbox o disco externo es buena práctica.

Les tiro uno que uso desde que era niño en DOS 1.0 jaja

Respaldo.bat

Código: Seleccionar todo

set Today=%date:~0,2%%date:~3,2%%date:~8,2%
set Now=%time:~0,2%%time:~3,2%%time:~6,2% 

7z a "C:\respaldos\Archivo-%Today%-%Now%" C:\datos\archivoaccess.mdb -p
Las primeras dos líneas toman la Fecha (formato diamesaño ddmmyy ejemplo 161014) y Hora (formato horaminutosegundo hmmss ejemplo 130403)

Y la otra línea utiliza el 7zip para crear en la carpeta c:\respaldos un archivo llamado "Archivo-161014-140403.7z" usando fecha y hora como guía para que no se repita, con la base de datos que se llama en el ejemplo archivoaccess.mdb

Re: ¿Cómo reparar una base de datos en Access?

Publicado: 16 Oct 2014, 08:35
por federico
esteban escribió:Muchas gracias Federico, la verdad es que ha funcionado de maravillas. No conocía este software, pero realmente es excelente, pude recuperar absolutamente todos los campos dañados en mi base de datos y lo mejor de todo es que los pude guardar en otro archivo. Perdón por la demora, pero bueno dije que iba a responder si me funcionaba y la verdad que fue excelente, gracias nuevamente por la ayuda.

Genial!!

Uno recibe mucha ayuda en este foro y es bueno de vez en cuando poder contribuir

:grindance: :grindance:

Re: ¿Cómo reparar una base de datos en Access?

Publicado: 16 Oct 2014, 08:38
por federico
elQuique escribió:
Les tiro uno que uso desde que era niño en DOS 1.0 jaja

Respaldo.bat

Código: Seleccionar todo

set Today=%date:~0,2%%date:~3,2%%date:~8,2%
set Now=%time:~0,2%%time:~3,2%%time:~6,2% 

7z a "C:\respaldos\Archivo-%Today%-%Now%" C:\datos\archivoaccess.mdb -p
Las primeras dos líneas toman la Fecha (formato diamesaño ddmmyy ejemplo 161014) y Hora (formato horaminutosegundo hmmss ejemplo 130403)

Y la otra línea utiliza el 7zip para crear en la carpeta c:\respaldos un archivo llamado "Archivo-161014-140403.7z" usando fecha y hora como guía para que no se repita, con la base de datos que se llama en el ejemplo archivoaccess.mdb
Muy interesante!!! Me puede servir para que unos clientes respalden automáticamente las bases de datos de unos programas que no permiten cambiar el directorio de trabajo.... voy a probar!!

Re: ¿Cómo reparar una base de datos en Access?

Publicado: 16 Oct 2014, 08:50
por federico
Quique, quiero hacer funcionar el BAT pero usando Copy en lugar de comprimir el archivo y me da error por al crear el nuevo directorio

si uso:

Código: Seleccionar todo

copy C:\ejemplo\texto.txt C:\respaldo\Archivo-%Today%-%Now%\*.*
Me da error porque la ruta de copia que genera tiene un espacio en blanco luego del "-" y antes de la hora

Si le quito la hora y dejo solo

Código: Seleccionar todo

copy C:\ejemplo\texto.txt C:\respaldo\Archivo-%Today%\*.*
También me da error, por la ruta adonde copiamos, supongo que al no existir el directorio de destino?

Se puede solucionar o siempre es necesario recurrir a comprimir el archivo?

Re: ¿Cómo reparar una base de datos en Access?

Publicado: 16 Oct 2014, 15:24
por Alejandro
No estoy seguro, así que le puedo estar errando, si le pones comillas "C:\respaldos\..." a la ruta que tenga el espacio tampoco funciona?

Re: ¿Cómo reparar una base de datos en Access?

Publicado: 18 Oct 2014, 08:58
por federico
Alejandro escribió:No estoy seguro, así que le puedo estar errando, si le pones comillas "C:\respaldos\..." a la ruta que tenga el espacio tampoco funciona?
Creo que si le pongo comillas toma todo el texto como literal, o sea tal cual se lee, y en ese caso no toma %Today% como una variable a sustituir por su valor.

El lunes hago la prueba y te confirmo.

Re: ¿Cómo reparar una base de datos en Access?

Publicado: 24 Oct 2014, 15:03
por federico
federico escribió:
Alejandro escribió:No estoy seguro, así que le puedo estar errando, si le pones comillas "C:\respaldos\..." a la ruta que tenga el espacio tampoco funciona?
Creo que si le pongo comillas toma todo el texto como literal, o sea tal cual se lee, y en ese caso no toma %Today% como una variable a sustituir por su valor.

El lunes hago la prueba y te confirmo.
No hay caso, no logré solucionar, logro que me quede una cadena del tipo C:\respaldo\20141024 pero después no me copia el archivo. Aclaro que usando el comando Copy del sistema operativo y no comprimiendo como hace elQuique.

Al final resuelvo de esta forma:
-Instalo Copy (el similar a Dropbox pero con 15 gigas gratis)
-Instalo Cobian Backup
-Configuro en Cobian el respaldo como servicio para que se haga automáticamente y respalde las carpetas que quiero por ejemplo c:\cont\*.* c:\memory\*.* etc... y las guarde en la carpeta de Copy con diferentes nombres para diferentes fechas y listo.

Cobian manda el respaldo a Copy y este lo sube a la nube

Re: ¿Cómo reparar una base de datos en Access?

Publicado: 27 Nov 2014, 16:56
por elQuique
En este ejemplo:

Código: Seleccionar todo

copy C:\ejemplo\texto.txt C:\respaldo\Archivo-%Today%-%Now%\*.*
lo de Archivo-%Today%-%Now% es una carpeta, que tal si la creas primero y luego copias ?

Código: Seleccionar todo

md C:\respaldo\Archivo-%Today%-%Now%
copy C:\ejemplo\texto.txt C:\respaldo\Archivo-%Today%-%Now%\*.*
En cuanto a la fecha y espacios te dejo un BATCH que muestra como obtener la fecha en formato USA

Código: Seleccionar todo

FOR %%A IN (%Date%) DO (
    FOR /F "tokens=1-3 delims=/-" %%B in ("%%~A") DO (
        SET Today=%%D%%B%%C
    )
)

ECHO %Today%
El FOR de arriba toma la fecha, recorre y quita los guiones - dejándola en formato YYYYDDMM y la guarda en una variable Today, que luego la imprimo en pantalla con ECHO %Today% o la puedes usar tu en un COPY así:

Código: Seleccionar todo

MD C:\Respaldo\DIA%Today%
COPY C:\DATOS\*.* C:\Respaldo\DIA%Today%
Otra cosa, COPY es demasiado básico es mejor utilizar ROBOCOPY que es mucho más potente y rápido.