Hay una forma en MS-Access de eliminar los datos en todas las tablas a la vez. Ejecutamos una base de datos en acceso, guardamos los datos cada mes y luego borramos todos los datos en acceso. Pero requiere eliminar datos de muchas tablas. ¿No hay una manera más simple/más fácil de hacerlo?¿Cómo eliminar datos en todas las tablas de ms-access a la vez?
Respuesta
¿Por qué no mantener a mano una copia vacía de la base de datos? Al final del mes, guarde la base de datos existente, luego copie la base de datos vacía en su lugar.
Dado que esta es una acción repetitiva, sería mejor si realizara una secuencia de comandos SQL simple para hacer esto.
DELETE FROM <table1>;
DELETE FROM <table2>;
...
DELETE FROM <tablen>;
MS-access no permite tener más de una consulta DELETE en el script. –
La respuesta de Craig es simple y sensata. Si realmente desea una solución programática, la siguiente secuencia de comandos de VBA borrará todos los datos de todas las tablas, excluidas las ocultas. Requiere DAO para estar habilitado - en el Editor de Visual Basic, vaya a Herramientas -> Referencias, y marque Microsoft DAO 3.6 Object Library, a continuación, en Aceptar:
Public Sub TruncateTables()
'Majority of code taken from a data dictionary script I can no longer source nor find the author
On Error GoTo Error_TruncateTables
Dim DB As DAO.Database
Dim TDF As DAO.TableDef
Dim strSQL_DELETE As String
Set DB = CurrentDb()
For Each TDF In DB.TableDefs
If Left(TDF.Name, 4) <> "MSys" Then
strSQL_DELETE = "DELETE FROM " & TDF.Name & ";"
DB.Execute strSQL_DELETE
End If
Next
MsgBox "Tables have been truncated", vbInformation, "TABLES TRUNCATED"
DB.Close
Exit_Error_TruncateTables:
Set TDF = Nothing
Set DB = Nothing
Exit Sub
Error_TruncateTables:
Select Case Err.Number
Case 3376
Resume Next 'Ignore error if table not found
Case 3270 'Property Not Found
Resume Next
Case Else
MsgBox Err.Number & ": " & Err.Description
Resume Exit_Error_TruncateTables
End Select
End Sub
Resalte todas las filas y luego pulse la tecla Supr del teclado. Si el acceso está haciendo esa cosa, no te permite ir al fondo, luego ve a una celda y presiona ctrl + flecha abajo. Para resaltar todas las filas, resalte la fila superior y luego desplácese a la fila inferior y mantenga presionada la tecla shift mientras selecciona la fila inferior. Todas las filas deben estar resaltadas.
Gran respuesta de Alistair, aunque debe actualizarse. La antigua instrucción if causaría errores, y la cadena dinámica anterior no funcionaría en las tablas con nombres que tienen un espacio. Se trataría un nombre como "información de la persona" como "persona". He actualizado el código, y también he hecho que sea un poco más fácil agregar excepciones a la declaración if, si desea que algunas tablas retengan sus datos.
Public Sub TruncateTables()
'Majority of code taken from a data dictionary script I can no longer source nor find the author
On Error GoTo Error_TruncateTables
Dim DB As DAO.Database
Dim TDF As DAO.TableDef
Dim strSQL_DELETE As String
Set DB = CurrentDb()
For Each TDF In DB.TableDefs
If Not (TDF.Name Like "MSys*" Or TDF.Name Like "~*" Or Len(TDF.Connect) > 0) Then
'This will prevent system, temporary and linked tables from being cleared
strSQL_DELETE = "DELETE FROM " & "[" & TDF.Name & "]"
DB.Execute strSQL_DELETE
End If
Next
MsgBox "Tables have been truncated", vbInformation, "TABLES TRUNCATED"
DB.Close
Exit_Error_TruncateTables:
Set TDF = Nothing
Set DB = Nothing
Exit Sub
Error_TruncateTables:
Select Case Err.Number
Case 3376
Resume Next 'Ignore error if table not found
Case 3270 'Property Not Found
Resume Next
Case Else
MsgBox Err.Number & ": " & Err.Description
Resume Exit_Error_TruncateTables
End Select
End Sub
¡Cuidado! Esto también borrará cualquier tabla vinculada. Editaré para agregar la condición 'Len (tdf.Connect) = 0' para evitar esto. – mvbentes
Esto eliminará todos los datos de todas las tablas excepto de tablas del sistema
Dim T As TableDef
DoCmd.SetWarnings False
For Each T In CurrentDb.TableDefs
If T.Name Like "d2s_*" Then
DoCmd.RunSQL "DELETE * FROM " & T.Name
End If
Next T
DoCmd.SetWarnings True
Otro enfoque: (basado en la sugerencia de Christopher Duke)
Dim T As TableDef
DoCmd.SetWarnings False
For Each T In CurrentDb.TableDefs
If Not Left(T.Name, 4) = "MSys" Then
DoCmd.RunSQL "DELETE * FROM [" & T.Name & "]"
End If
Next T
DoCmd.SetWarnings True
- 1. ¿podemos listar todas las tablas en la base de datos msaccess usando sql?
- 2. Reparar todas las tablas de una vez
- 3. Eliminar datos de todas las tablas en MYSQL
- 4. ¿Cómo colocar todas las tablas en la base de datos sin soltar la base de datos?
- 5. Renombrar todas las tablas en la base de datos
- 6. Una forma rápida de eliminar todas las filas de una tabla de datos a la vez
- 7. Eliminar datos de las tablas dependientes
- 8. Lista de todas las tablas en la base de datos
- 9. Cómo eliminar todas las asociaciones en una Hibernate JoinTable a la vez?
- 10. ¿Cómo eliminar todas las tablas en una base de datos MySQL?
- 11. ¿Cómo eliminar datos de varias tablas?
- 12. Django: elimine todos los datos de todas las tablas (pero conserve las tablas)
- 13. Cómo mostrar todas las tablas de múltiples bases de datos
- 14. SQL: elimine todos los datos de todas las tablas disponibles
- 15. ¿Cómo eliminar todas las tablas de db? No se puede eliminar de sys.tables
- 16. ¿Cuál es el comando django para eliminar todas las tablas?
- 17. Seleccionar de todas las tablas
- 18. Cómo colocar todas las tablas de la base de datos con manage.py CLI en Django?
- 19. Omitir todas las tablas comando
- 20. Eclipse: ¿cómo finalizar todas las aplicaciones a la vez?
- 21. Psql enumera todas las tablas
- 22. ¿Cómo cierro todas las pestañas abiertas a la vez?
- 23. ORMLite restablecer todas las tablas
- 24. Listar todas las tablas en una base de datos
- 25. Cómo omitir la macro Autoexec al abrir MSAccess desde MSAccess?
- 26. ¿Importa todas las importaciones en eclipse a la vez?
- 27. ¿Cómo truncar todas las tablas de usuario?
- 28. MySQL OPTIMIZE todas las tablas?
- 29. ¿Cómo se eliminan todas las restricciones de clave externa en todas las tablas?
- 30. Eliminar todas las entidades en Entity Framework
Esto también significa que usted hace No es necesario compactar y reparar. – Fionnuala
Gran respuesta. Muy pragmático – JohnFx
Y luego tiene que replicar las correcciones o mejoras en la base de datos vacía. He estado haciendo eso por un tiempo, pero es muy propenso a errores, por no decir tedioso. Voy a probar las otras soluciones. – mvbentes