Механизм базы данных будет принимать операторы JOIN независимо от того, были ли определены связи для объединенных таблиц. Таким образом, эти запросы INNER JOIN не обязательно означают, что в вашей базе данных определены какие-либо отношения.
Информация об отношениях хранится в скрытых системных таблицах, MSysObjects и MSysRelationships. Вы можете использовать коллекцию связей базы данных для просмотра этой информации.
Public Sub InspectRelations()
Dim rel As DAO.Relation
Dim fld As DAO.Field
For Each rel In CurrentDb.Relations
Debug.Print "Relationship Name: " & rel.name
If rel.Attributes And dbRelationDontEnforce = dbRelationDontEnforce Then
Debug.Print "Relationship not enforced"
Else
Debug.Print "Relationship enforced"
End If
Debug.Print "Table: " & rel.Table
Debug.Print "ForeignTable: " & rel.ForeignTable
For Each fld In rel.Fields
Debug.Print "Field Name: " & fld.name
Debug.Print "ForeignName: " & fld.ForeignName
Next fld
Debug.Print String(10, "-")
Next rel
Set fld = Nothing
Set rel = Nothing
End Sub
Редактировать : Вы можете проверить атрибуты отношения. Я включил dbRelationDontEnforce в пример. Другие атрибуты, такие как dbRelationDeleteCascade и dbRelationUpdateCascade, могут быть полезны. Посмотрите раздел справки для перечисления RelationAttributeEnum, чтобы увидеть полный список доступных атрибутов.
Edit2 : чтобы использовать код, откройте свою базу данных в Access. Затем используйте сочетание клавиш Ctrl + g, чтобы открыть окно «Немедленно» в редакторе Visual Basic. Затем выберите Insert-> Module в главном меню VBE. Скопируйте код и вставьте его в модуль. Сохраните модуль, либо примите имя (которое будет похоже на «Module1»), а также присвойте ему другое имя, которое более важно для вас ... но не называйте модуль InspectRelations - модуль и процедура имеют разные имена.
Убедитесь, что компилятор принимает код, выбрав Debug-> Compile в главном меню. Поскольку вы используете Access 2000, вам может потребоваться установить ссылку на «Microsoft DAO 3.6 Object Library». Найдите его в списке и поставьте галочку рядом с ним, затем нажмите OK. Затем скомпилируйте снова.
Если он скомпилирован без ошибок, вы можете запустить процедуру, поместив курсор в теле процедуры и нажав F5, чтобы запустить ее. Операторы Debug.Print отправляют свои выходные данные в непосредственное окно.