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____________________________________________________________________________________
Thảo luận thêm tại: http://thuthuataccess.co.cc/forum
Có thể dùng For Each table in DB được không bác Noname:
Trả lờiXóaFunction 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
Cũng được. Nhưng chú ý chỗ phát biểu If
Trả lờiXóaIf Table.Name = TableName then
Thanks voi doan code kiem tra su ton tai cua table cua ban nhe! Vi minh dang can no!
Trả lờiXóaNhung 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!
Cảm ơn bạn góp ý! :) Mình sẽ sửa lại! :)
Trả lờiXóaCám ơn các anh em! Xưa mình học Visual Fox... 2.0. Nay mày mò access! Mấy hôm nay theo dõi chủ đề này và đã làm được một đoạn code. Hiện nó đã tạo được thư mục, tạo được file database và table trong thư mục đó.
Trả lờiXóaMong quý anh em xem xét góp ý thêm!
Mình có ý định là làm sao để sau khi tạo csdl, các bảng, sẽ tiếp tục tạo liên kết giữa các bảng đó, rồi lấy dữ liệu từ các bảng trong file cơ sở dữ liệu khác đưa vào các bảng của csdl trong thư mục vừa tạo luôn.
Rất mong sự chỉ giáo!
Sub create_F_D_T()
Dim tenfolderTest As String
Dim thang As String
Dim duongdan As String
Dim csdl As Database
Dim tencsdl As String
Dim bang As TableDef
Dim tenbang As String
Dim i As Integer
i = 0
duongdan = Application.CurrentProject.Path
tenfolder = duongdan & "\" & Trim(Str(Year(Date)))
thang = Format(Trim(Str(Month(Date) - 1)), "00")
tencsdl = tenfolder & "\" & Trim(Str(Year(Date)))
tenbang = thang
' create folder "tenfolder" if not exists
If Dir(tenfolder, vbDirectory) = "" Then
MsgBox "Tao thu muc"
MkDir tenfolder
End If
' create database "tencsdl" if not exists
Set wrkDefault = DBEngine.Workspaces(0)
If Dir(tencsdl & ".*") = "" Then
MsgBox "Chua co csdl doi tao tao csdl cho may"
Set csdl = wrkDefault.CreateDatabase(tencsdl, dbLangGeneral)
Set csdl = OpenDatabase(tencsdl)
Else
MsgBox "Co csdl roi khoi tao nua nghe may"
Set csdl = OpenDatabase(tencsdl)
End If
' create table tenthang
For i = 0 To csdl.TableDefs.Count - 1
If csdl.TableDefs(i).Name = tenbang Then
MsgBox "bang nay da co roi nghe may", vbOKOnly
Exit For
Else
MsgBox "doi de tao tao bang cho may"
Set bang = csdl.CreateTableDef(tenbang)
bang.Fields.Append bang.CreateField("MaKH", dbText, 3)
bang.Fields.Append bang.CreateField("TenKH", dbText, 10)
csdl.TableDefs.Append bang
csdl.Close
Exit For
End If
Next
MsgBox "Chuc mung: Da tao duoc thu muc va csdl trong do!"
End Sub