Noname > 26-08-10, 11:03 AM
Sub hideTable(H As Boolean)
On Error Resume Next
Dim DB As Database
Dim N As Byte
Dim i As Byte
Set DB = DBEngine.Workspaces(0).Databases(0)
N = DB.TableDefs.Count
For i = 1 To N - 1
Application.SetHiddenAttribute acTable, DB.TableDefs(i).Name, H
Next
End Sub
N = DB.TableDefs.Count
N = DB.QueryDefs.Count
N= Forms.Count
N = Reports.Count
Application.SetHiddenAttribute acTable, DB.TableDefs(i).Name, H
Application.SetHiddenAttribute acQuery, DB.QueryDefs(i).Name, H
Application.SetHiddenAttribute acForm, Forms(i).Name, H
Application.SetHiddenAttribute acReport, Reports(i).Name, H
Hidetable True
HideTable false
haquocquan > 31-08-10, 10:50 PM
Noname > 31-08-10, 10:59 PM
haquocquan > 31-08-10, 11:09 PM
Sub hideTable(H As Boolean)
On Error Resume Next
Dim DB As Database
Dim N As Byte
Dim i As Byte
Set DB = opendatabase(application.currentProject.Path & "\data.mdb")
N = DB.TableDefs.Count
For i = 1 To N - 1
[color=#FF0000]DB.SetHiddenAttribute acTable, DB.TableDefs(i).Name, H[/color]
Next
End Sub
Noname > 31-08-10, 11:20 PM
(31-08-10, 11:09 PM)haquocquan Đã viết:kỳ vậy! Vì mình đã có câu lệnh On Error Resume Next, nếu gặp lỗi nó bỏ qua hết mới phải,Báo lỗi tại phần đỏ.Mã:Sub hideTable(H As Boolean)
On Error Resume Next
Dim DB As Database
Dim N As Byte
Dim i As Byte
Set DB = opendatabase(application.currentProject.Path & "\data.mdb")
N = DB.TableDefs.Count
For i = 1 To N - 1
[color=#FF0000]DB.SetHiddenAttribute acTable, DB.TableDefs(i).Name, H[/color]
Next
End Sub
haquocquan > 31-08-10, 11:37 PM
Sub hideTable(H As Boolean)
On Error Resume Next
Dim DB As Database
Dim N As Byte
Dim i As Byte
Set DB = opendatabase(application.currentProject.Path & "\data.mdb")
N = DB.TableDefs.Count
For i = 1 To N - 1
Application.SetHiddenAttribute acTable, DB.TableDefs(i).Name, H
Next
End Sub
haquocquan > 16-03-11, 02:42 PM
(26-08-10, 11:03 AM)Noname Đã viết: Show / Hide Object ( tables, querys, forms, reports )
Question : Làm thế nào để có thể ẩn nhiều bảng cùng lúc.Hay là ta phải chọn từng bảng rôi ẩn.Vì trong CSDL có nhiều bảng mà ẩn từng cái bảng một thì rất là lâu.Tưng tụ với Form hay Report
Bạn làm copy thủ tục sau:
Tương tự với query, form, report, bạn thay các dòng :Mã:Sub hideTable(H As Boolean)
On Error Resume Next
Dim DB As Database
Dim N As Byte
Dim i As Byte
Set DB = DBEngine.Workspaces(0).Databases(0)
N = DB.TableDefs.Count
For i = 1 To N - 1
Application.SetHiddenAttribute acTable, DB.TableDefs(i).Name, H
Next
End Sub
bằng:Mã:N = DB.TableDefs.Count
Mã:N = DB.QueryDefs.Count
N= Forms.Count
N = Reports.Count
Và thay dòng
Mã:Application.SetHiddenAttribute acTable, DB.TableDefs(i).Name, H
bằng
trong thủ tụcMã:Application.SetHiddenAttribute acQuery, DB.QueryDefs(i).Name, H
Application.SetHiddenAttribute acForm, Forms(i).Name, H
Application.SetHiddenAttribute acReport, Reports(i).Name, H
Giờ bạn muốn có thể tạo 2 nút nhấn và gọi:
Để ẩnMã:Hidetable True
và
để hiện trở lạiMã:HideTable false
Public Sub HideTable()
Dim dbdata As Database
Dim i As Byte
Set dbdata = OpenDatabase(Getthumuc() & "\datasys\data.mdb")
For i = 0 To dbdata.TableDefs.Count - 1
dbdata.TableDefs(i).Properties("Attributes").Value = dbHiddenObject
Next
End Sub
dbdata.TableDefs(i).Properties("Attributes").Value = 0
haquocquan > 16-03-11, 04:10 PM
Sub HideForms()
On Error Resume Next
Dim i As Long
For i = 0 To CurrentProject.AllForms.Count - 1
Application.SetHiddenAttribute acForm, CurrentProject.AllForms.Item(i).Name, True
Next
End Sub