Crear un botón en un formulario para que borre todos los registros de una tabla

Necesito crear un comando para borrar los registros de una tabla, y otro para lanzar una carga de una importación, ahora tengo access 2016 y no sé como hacerlo

3 respuestas

Respuesta

Para borrar los registros de una tabla lo mas usual es utilizar SQL y ejecutarlo con DoCmd (suele pedir confirmación) o con Execute que no solicita.

La SQL:

Delete * From [nombre-de-la-tabla]

Como se utilizaría:

DoCmd.RunSQL "Delete * From [nombre-de-la-tabla]"

Alternativa

CurrentDb.Execute "Delete * From [nombre-de-la-tabla]"

Una advertencia, si la tabla tiene relaciones subordinadas (hijos) ... primero tendrás que llamar a Herodes (Access no permite dejar huérfanos).

Si se diera el caso antes comentado, primero se 'limpian' las tablas relacionadas (los hijos) y tras ello se puede continuar con los padres (y si hubiera: abuelos)

Si 'lanzar una carga desde importación' es algo similar a 'insertar en una tabla datos externos', hay diversos métodos pero creo que lo mas sencillo para alguien poco experto (y discúlpame si me equivoco) s utilizar una consulta de inserción, esto es:
Supongamos que los datos externos provienen de una hoja de Excel, Access los puede interpretar y tratar como una tabla.

Se pueden dar dos opciones, crear una tabla nueva con ellos o añadir a una tabla ya existente y en este segundo caso, con la consulta se seleccionan (filtrándola si fuera preciso) y obtenida la selección deseada se modifica de consulta de selección a consulta de datos anexados.

Aparecerá una nueva línea para (mediante el combo en cada campo) seleccionar el campo de destino en la tabla ya existente.

Se ejecuta y de dar algún error ...(por ejemplo: un tipo de dato inadecuado), se corrige y se intenta otra vez.

Si se desea 'ver como lo crea Access', una vez logrado el éxito se abre la consulta en su 'Vista SQL'.

En principio si ambas tablas son compatibles (igual numero de campos y sus tipos) la SQL de la consulta puede ser tan sencillo como:

Insert Into [tabla destino] Select * From [Tabla origen]

Cuando no se pueden obtener los datos en un formato que Access entienda, queda como ultimo recurso lograr la ayuda de un experto mecanógrafo que lo haga de forma manual.

Respuesta

Puedes usar

Docmd. Runsql"delete * from nombretabla"

Con respecto a lo de la importación, si pudieras concretar algo más.

Respuesta

Tenga cuidado como le explican que es acertado, excepto que sobre el * estaría eliminando todos los registros, pero si fuera solo algunos debe adicionar la cláusula WHERE algo como:

CurrentDb.Execute "Delete  From tabla WHERE nombrecampo=condicion"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas