Thủ Thuật Access

Thế Giới Thủ Thuật với Access

Xoá các table theo điều kiện trong Access

Posted by Noname trên 13.11.2009

Hỏi: Tromg file MDB của em có nhiều table để lưu dữ liệu của các năm khác nhau. EM chỉ muốn lưu 3 năm gần nhất thôi. Ví dụ: năm nay là 2009, em chỉ cần lưu dữ liệu của 2007, 2008, 2009; năm tới 2010: chỉ lưu 2008, 2009, 2010.
Em muốn tự khi lưu dữ liệu ngày đầu tiên của năm mới, thì table từ 3 năm về trước sẽ tự động bị xoá đi. Cụ thể: ngày 01/01/2010, em lưu dữ liệu thì table lưu dữ liệu của 2007 bị xoá đi.
Đồng thời, em muốn xoá table với điều kiện nó tồn tại: Cụ thể: câu lệnh để thực hiện:
Nếu tableA có trong MDB thì xoá tableA
Các bác cho em xin đoạn code nhé

Đáp:  
Mình gửi bạn 1 đoạn code xóa table:

Code:
Sub DelTable(T As String)
DoCmd.DeleteObject acTable, T

End Sub

Bây giờ bạn có thể tạo 1 table với thông tin: tblTableInfo(tableName,TableDate)
Ở đây bạn khai báo table nào thuộc năm nào.
sau đó có thể gọi 1 sub xóa table cũ hơn 3 năm:

Code:
sub DelTable3yearOld()
Dim Db As Database, Rs As Recordset, sql1 as string
SQL1="select TableName from tblTableInfo where (year(date())-year(TableDate))>=3
Set Db = CurrentDb()
Set Rs = Db.OpenRecordset(SQL)
Do Until rs.EOF
Deltable rs(0)
rs.MoveNext
Loop

Rs.Close
set DB = Nothing
End Sub

Nhớ lưu trước khi thử nghiệm nhé

Bình luận về bài viết này

Trang web này sử dụng Akismet để lọc thư rác. Tìm hiểu cách xử lý bình luận của bạn.