3
我正在嘗試使用關係窗口來查看MS-Access數據庫中的表之間的關係。我隱藏了所有其他表,並在其中一個表中找到一個外鍵,就像它應該鏈接到具有主鍵的另一個表一樣,這是我需要追蹤的信息。在ms-access中獲取表的外鍵約束列表?
有什麼辦法可以在Access中的表中列出現有的外鍵約束,很像SHOW CREATE TABLE syntax in MySQL?
我正在嘗試使用關係窗口來查看MS-Access數據庫中的表之間的關係。我隱藏了所有其他表,並在其中一個表中找到一個外鍵,就像它應該鏈接到具有主鍵的另一個表一樣,這是我需要追蹤的信息。在ms-access中獲取表的外鍵約束列表?
有什麼辦法可以在Access中的表中列出現有的外鍵約束,很像SHOW CREATE TABLE syntax in MySQL?
DAO和ADOSchemas中的tabledef集合將顯示外鍵。
Dim tdf As TableDef
Dim db As Database
Dim ndx As Index
Set db = CurrentDb
For Each tdf In db.TableDefs
For Each ndx In tdf.Indexes
If ndx.Foreign = True Then
Debug.Print tdf.Name, ndx.Name
For Each fld In ndx.Fields
Debug.Print fld.Name
Next
End If
Next
Next
關係
Dim rel As DAO.Relation
Dim db As Database
Set db = CurrentDb
For Each rel In db.Relations
Debug.Print rel.Name, rel.ForeignTable
For Each fld In rel.Fields
Debug.Print fld.Name
Next
Next
ADOSchema
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = CurrentProject.Connection
Set rs = cn.OpenSchema(adSchemaForeignKeys)
Do While Not rs.EOF
For i = 0 To rs.Fields.Count - 1
Debug.Print rs.Fields(i).Name & ":- " & rs.Fields(i)
Next
rs.MoveNext
Loop
最後,還有一個隱藏的系統表:
SELECT * FROM MSysRelationships
所以我必須使用宏來查看這些信息? – leeand00 2012-07-31 14:22:36
有一個隱藏的系統表MSysRelations顯示所有關係,但它是一個不受支持的功能:'SELECT * FROM MSysRelations',不用說,但我會,不要惹它。 – Fionnuala 2012-07-31 14:30:49
但是從它讀取是好嗎? – leeand00 2012-07-31 14:38:40