Я знаю, что именно так вы получите список всех таблиц в базе данных (и даже больше, если вы измените критерии:
SELECT *
FROM MSysObjects
WHERE (((MSysObjects.Type)=1) AND ((MSysObjects.Flags)=0));
Но есть ли подобный способ получить список полей и к каким таблицам они принадлежат? Я думаю, что это было бы очень полезно для устранения неполадок и проведения быстрого аудита (т. Е. Ответа «в каких других таблицах используется это поле или группа полей»). Но по какой-то причине не смог найти ответ в интернете.
Если у кого-то есть относительно простой способ сделать это через VBA, это тоже может быть вариантом. Благодарю.
vba
microsoft-access
sql
daniellopez46
источник
источник
Ответы:
К сожалению, имена полей не доступны через хороший, компактный SQL-запрос. Этот код напечатает имя таблицы и каждое поле в отдельной строке в окне отладки.
источник
tbl_Name
должен был прочитатьtdf.Name
.Debug.Print
следует просто отправить вывод в ближайшее окноВ этом конкретном случае вы можете найти схемы ADO полезными.
Это перечислит поля и некоторые свойства для конкретной таблицы. Будьте осторожны с типами данных, вы можете не получить точное соответствие типам DAO. Вам понадобится ссылка
Microsoft ActiveX Data Objects x.x Library
, если вы не используете позднюю привязку.Вы также можете посмотреть на вещи с другой стороны и получить список таблиц, которые содержат определенное поле.
От: http://wiki.lessthandot.com/index.php/ADO_Schemas
Stackoverflow имеет немало информации на эту тему: https://stackoverflow.com/search?q=%5Bms-access%5D+schema
источник