Как мне вывести все количество таблиц в моей базе данных, кроме скрытых и системных таблиц? - PullRequest
0 голосов
/ 07 августа 2020

В настоящее время я использую AllTables.Count для подсчета всех таблиц в моей БД. Но он возвращает большое значение из-за системных таблиц и скрытых таблиц, которые я использую для хранения данных. Есть ли способ их игнорировать?

Ответы [ 2 ]

2 голосов
/ 07 августа 2020

Вы можете использовать функцию GetHiddenAttribut, чтобы проверить, скрыта ли таблица. Вы должны l oop поверх CurrentDb.TableDefs -collection:

Следующая функция считает видимые таблицы:

Function CountTables()
    
    Dim cnt As Long, tbl As TableDef
    For Each tbl In CurrentDb.TableDefs
        If Not GetHiddenAttribute(acTable, tbl.Name) Then 
            cnt = cnt + 1
            ' Debug.Print "visible table found: " & tbl.Name
        End If
    Next
    CountTables = cnt
End Function
0 голосов
/ 07 августа 2020

Вы можете использовать DCount :

TableCount = DCount("*", "MSysObjects", "[Type] = 1 And [Flags] = 0")
...