Пребройте всички обекти във вашата база данни
Онзи ден нашата компания беше натоварена със задачата да преобразува много бази данни на Access в множество сървъри на SQL Server. За да добием представа за съответните задачи, ни трябваше начин да преброим всички таблици, заявки, формуляри и макроси във всяка база данни.
Направих бързо търсене в Интернет, но не ми хареса нито един от кодовите фрагменти, затова създадох моя собствена малка програма, която ще отпечата статистиката в непосредствения прозорец:
Public Sub CountObjects()
Dim qdf As DAO.QueryDef
Dim obj As Object
Dim tdf As DAO.TableDef
Dim i As Long
i =0
Debug.Print CurrentDb.TableDefs.Count
За всеки tdf в CurrentDb.TableDefs
Ако не е Left(tdf.Name, 4) =“MSys” Тогава
i =i + 1
Край, ако
Следващ tdf
Отстраняване на грешки. Печат „Брой таблици:” &i
„Определете броя на заявките
Отстраняване на грешки. Отпечатване „Брой заявки:” &CurrentDb.QueryDefs.Count
„Определете броя на формуляри
Отстраняване на грешки. Отпечатайте „Брой формуляри:” &CurrentProject.AllForms.Count
„Определете броя на макроси
Отстраняване на грешки. Отпечатайте „Брой макроси:” &CurrentProject.AllMacros.Count
„Определете броя на отчетите
Отстраняване на грешки. Отпечатайте „Брой отчети:” &CurrentProject.AllReports.Count
Край на под
Няколко наблюдения:
- За да не преброя системните таблици, преглеждам колекцията TableDef и игнорирам всяко име на таблица, което започва с MSys
- Не можах да използвам колекцията от формуляри, за да преброя формулярите, тъй като членовете й се състоят само от отворени формуляри.
Насладете се!