Có cách nào trong MS-Access xóa dữ liệu trong tất cả các bảng cùng một lúc hay không. Chúng tôi chạy một cơ sở dữ liệu trong truy cập, lưu dữ liệu mỗi tháng và sau đó xóa tất cả các dữ liệu trong truy cập. Nhưng nó yêu cầu xóa dữ liệu từ nhiều bảng. Không phải là một cách đơn giản/dễ dàng hơn để làm như vậy?Làm thế nào để xóa dữ liệu trong tất cả các bảng truy cập ms cùng một lúc?
Trả lời
Tại sao bạn không giữ bản sao trống của cơ sở dữ liệu trên tay. Vào cuối tháng, lưu cơ sở dữ liệu hiện có, sau đó sao chép cơ sở dữ liệu rỗng vào vị trí của nó.
Vì đây là một hành động lặp đi lặp lại, sẽ tốt hơn nếu bạn tạo một kịch bản SQL đơn giản để thực hiện việc này.
DELETE FROM <table1>;
DELETE FROM <table2>;
...
DELETE FROM <tablen>;
Truy cập MS không cho phép có nhiều hơn một truy vấn DELETE trong tập lệnh. –
Câu trả lời của Craig rất đơn giản và hợp lý. Nếu bạn thực sự muốn có một giải pháp có lập trình, tập lệnh VBA sau sẽ xóa tất cả dữ liệu từ mọi bảng, trừ các bảng ẩn. Nó đòi hỏi DAO để được kích hoạt - trong Visual Basic Editor, vào Tools -> Tài liệu tham khảo, và đánh dấu vào Microsoft DAO 3.6 Thư viện Object, rồi nhấn OK:
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
Highlight tất cả các ROWS và sau đó nhấn phím Delete trên của bạn bàn phím. Nếu truy cập đang làm điều đó là nó không cho phép bạn đi đến phía dưới, sau đó đi vào một tế bào và bấm ctrl + mũi tên xuống. Để đánh dấu tất cả các hàng, hãy chọn hàng trên cùng và sau đó cuộn xuống hàng dưới cùng và giữ phím shift trong khi bạn chọn hàng dưới cùng. Tất cả các hàng phải được đánh dấu.
Câu trả lời hay từ Alistair, mặc dù nó cần được cập nhật. Câu lệnh if cũ sẽ gây ra lỗi và chuỗi động cũ sẽ không hoạt động trên các bảng có tên có không gian. Nó sẽ coi một cái tên như "thông tin cá nhân" là "người". Tôi đã cập nhật mã, cũng như làm cho nó dễ dàng hơn một chút để thêm ngoại lệ vào câu lệnh if, nếu bạn muốn một số bảng giữ lại dữ liệu của chúng.
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
Hãy chú ý! Điều này cũng sẽ xóa mọi bảng được liên kết. Tôi sẽ chỉnh sửa để thêm điều kiện 'Len (tdf.Connect) = 0' để ngăn chặn điều này. – mvbentes
này sẽ xóa tất cả dữ liệu từ tất cả các bảng trừ từ Hệ thống Bàn
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
cách tiếp cận khác: (Căn cứ vào Đề xuất của 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. Làm thế nào để xóa tất cả người nghe sự kiện cùng một lúc trong AS3
- 2. Làm thế nào để xóa tất cả các bảng trong cơ sở dữ liệu MySQL?
- 3. Làm thế nào để xóa tất cả các liên kết trong một Hibernate JoinTable cùng một lúc?
- 4. Làm thế nào để xóa tất cả bí danh git cùng một lúc?
- 5. Xóa dữ liệu khỏi tất cả các bảng trong MYSQL
- 6. Xóa tầng của bảng dữ liệu và bảng tìm kiếm cùng một lúc
- 7. Làm thế nào để lặp qua tất cả các bảng trong MS Access DB
- 8. Làm thế nào để bạn tải lại tất cả các cửa sổ vim cùng một lúc?
- 9. Eclipse: Làm thế nào để chấm dứt tất cả các ứng dụng cùng một lúc?
- 10. Làm thế nào tôi có thể truy cập siêu dữ liệu trong rspec trước (: tất cả)?
- 11. Cách lấy tất cả dữ liệu trong một truy vấn
- 12. Làm thế nào tôi có thể xóa tất cả các bản ghi từ một TClientDataset cùng một lúc?
- 13. SQL: xóa tất cả dữ liệu khỏi tất cả các bảng có sẵn
- 14. Xóa bản ghi từ nhiều bảng cùng một lúc?
- 15. Xóa tất cả trừ n trên cùng khỏi bảng cơ sở dữ liệu trong SQL
- 16. Đang cập nhật tất cả các bảng trong một cơ sở dữ liệu MySQL
- 17. Cách nhanh nhất để xóa tất cả dữ liệu trong một bảng lớn
- 18. Cập nhật tất cả các ràng buộc trong UserControl cùng một lúc
- 19. Xóa tất cả các hàng trong bảng khỏi bảng cơ sở dữ liệu SQLite
- 20. Làm thế nào để xóa tất cả các cơ sở dữ liệu trên Postgres?
- 21. Làm cách nào để hiển thị tất cả các lỗi xác thực HTML5 cùng một lúc?
- 22. Xóa tất cả các hàng trong bảng
- 23. Làm cách nào để gửi tất cả các thẻ cùng một lúc?
- 24. Có cách nào để setTitle trên UIButton cập nhật tất cả UIControlStates cùng một lúc không?
- 25. Lưu trữ Dữ liệu trong Truy cập MS và Truy vấn Dữ liệu trong Excel
- 26. làm thế nào để xóa tất cả các phần tử trong bảng Lua?
- 27. Làm cách nào để truy cập cơ sở dữ liệu MS Access từ Oracle?
- 28. jQuery Xóa Lớp CSS khỏi tất cả các Con cháu cùng một lúc
- 29. Làm thế nào để xóa nhiều bộ sưu tập mongodb cùng một lúc?
- 30. Làm thế nào để animate một tập hợp các đối tượng jQuery cùng một lúc (thay vì tất cả cùng một lúc)
này cũng đồng nghĩa với việc bạn làm không cần phải nhỏ gọn và sửa chữa. – Fionnuala
Câu trả lời hay. Rất thực dụng. – JohnFx
Và sau đó bạn phải sao chép bất kỳ bản sửa lỗi hoặc cải tiến nào trên cơ sở dữ liệu trống. Tôi đã làm điều đó một thời gian, nhưng nó rất dễ bị lỗi, không nói tẻ nhạt. Tôi sẽ cung cấp cho các giải pháp khác một thử. – mvbentes