问题
What is an easy way to list the foreign key contraints in an MDB?
Is there a system table that can be queried in order to list this information?
Specifically, I need to know whether any foreign key contraints exist in the MDB.
回答1:
Take a look at the results of select * from MSysRelationships.
回答2:
Or you can examine the relationships collection of the database object:
Public Sub PrintRelationships()
Dim varItem As Variant
Dim varItem2 As Variant
For Each varItem In CurrentDb.Relations
Debug.Print varItem.Name
Debug.Print " " & varItem.Table
Debug.Print " " & varItem.ForeignTable
For Each varItem2 In varItem.Fields
Debug.Print ": " & varItem2.Name
Next varItem2
Next varItem
End Sub
There are other properties that might be of interest. Also, an MS Knowledge Base article on copying relationships may give you some ideas.
回答3:
Dim rs As ADODB.Recordset
Set rs = oConn.OpenSchema(adSchemaForeignKeys)
where oConn is ADODB.connection
来源:https://stackoverflow.com/questions/2793365/what-is-an-easy-way-to-list-the-foreign-key-contraints-in-an-mdb