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 SubN = DB.TableDefs.CountN = DB.QueryDefs.Count
N= Forms.Count
N = Reports.CountApplication.SetHiddenAttribute acTable, DB.TableDefs(i).Name, HApplication.SetHiddenAttribute acQuery, DB.QueryDefs(i).Name, H
Application.SetHiddenAttribute acForm, Forms(i).Name, H
Application.SetHiddenAttribute acReport, Reports(i).Name, HHidetable TrueHideTable falsehaquocquan > 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 SubNoname > 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 Subhaquocquan > 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 Subdbdata.TableDefs(i).Properties("Attributes").Value = 0haquocquan > 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