最近需要统计Access文件中各个对象的规模,经过一番查找和尝试用VBA写了一个小工具,只要修改里面的文件路径就可以使用了。
Sub getMdbCount()
Dim accapp As Object
tagpth = "D:\access"
Set accapp = CreateObject("Access.Application")
Set fso = CreateObject("scripting.filesystemobject")
Set gfolder = fso.getfolder(tagpth)
For Each sfil In gfolder.Files()
sfilnm = sfil.Name
sfilHz = Right(sfilnm, Len(sfilnm) - InStrRev(sfilnm, "."))
sfilNa = Left(sfilnm, InStrRev(sfilnm, ".") - 1)
nowFile = sfil.Path
If UCase(sfilHz) = "MDB" Then
accapp.OpenCurrentDatabase nowFile
newpath = tagpth & "\" & sfilNa
If Not fso.folderexists(newpath) Then
fso.createfolder (newpath)
End If
For Each modu In accapp.CurrentProject.AllModules
accapp.DoCmd.OutputTo acOutputModule, modu.Name, , newpath & "\" & modu.Name & ".bas"
Next
Set tagrng = [a65536].End(xlUp).Offset(1, 0)
tagrng.Resize(1, 5) = Array(sfilnm, accapp.CurrentData.AllQueries.Count, accapp.CurrentData.AllTables.Count _
, accapp.CurrentProject.AllForms.Count, accapp.CurrentProject.AllReports.Count)
accapp.CloseCurrentDatabase
End If
Next
MsgBox ("SUCCESS !!")
End Sub
本文介绍了一款VBA小工具,用于自动化统计Access数据库文件(MDB)中各类对象的数量,包括查询、表格、窗体及报表。通过遍历指定文件夹下所有Access文件并读取其内容,该工具能够输出详细的统计数据。
715

被折叠的 条评论
为什么被折叠?



