Thứ Bảy, 14 tháng 11, 2009

Code kiểm tra sự tồn tại của table


Public Function KIEMTRA(TableName As String)As Boolean
' Khai báo biến cục bộ truy xuất đến Database Access
Dim DB As Database
' Biến N lưu trữ số Tables của Database (dùng Byte là đủ)
Dim N As Byte
' Biến i để duyệt qua từng Table
Dim i As Byte
' Khởi tạo biến DB
Set DB = DBEngine.Workspaces(0).Databases(0)
' Lấy số Tables có trong Database
n = DB.TableDefs.Count
' Duyệt tuần tự từng Table
For i = 0 To n - 1
' Nếu tên Table thứ i bằng với tên Table muốn tìm
If DB.TableDefs(i).Name = TableName Then
' Hàm trả về giá trị TRUE
KIEMTRA = True
' Thoát khỏi hàm
Exit Function
End If
' Chuyển qua Table kế
Next i
' Nếu ra khỏi vòng lặp mà vẫn chưa tìm thấy thì hàm trả về False
KIEMTRA = False
End Function

4 nhận xét:

  1. Có thể dùng For Each table in DB được không bác Noname:
    Function Kiemtra(TableName as string) as boolean
    Dim DB as Database
    Dim table as tabledefs
    Set DB = currentdb()
    For Each table in DB.TableDefs
    If table = TableName
    KIEMTRA = True
    Exit Function
    End if
    Next Table
    KIEMTRA = False
    End Function

    Sent by: haquocquan

    Trả lờiXóa
  2. Cũng được. Nhưng chú ý chỗ phát biểu If
    If Table.Name = TableName then

    Trả lờiXóa
  3. Thanks voi doan code kiem tra su ton tai cua table cua ban nhe! Vi minh dang can no!
    Nhung o vong lap for, ban nen gan i=0, neu khong se khong tim thay table dau tien
    trong csdl neu no la table dang can tim!

    Trả lờiXóa
  4. Cảm ơn bạn góp ý! :) Mình sẽ sửa lại! :)

    Trả lờiXóa