創建access主鍵的時候有兩種方式,一種是在access中手動創建的,另一種是在用代碼創建的(不管是在access中執行的還是在外部程序)。
方式不同主鍵名稱也不同,第一種創建方式的主鍵名字都是primarykey,注意中間沒有空格;第二種主鍵的名字需要藉助VBA代碼才能查出來:
Public Sub fnGetPrimaryKeyName()
Dim v_DB As New ADOX.Catalog
Dim v_Table As ADOX.Table
Dim v_Key As ADOX.Key
Dim objTable As New ADOX.Table
Dim strKey As String
Dim strKeyName As String
v_DB.ActiveConnection = CurrentProject.Connection
objTable.ParentCatalog = v_DB
Set objTable = v_DB.Tables( "你的表名 ")
For Each v_Key In objTable.Keys
Select Case v_Key.Type
Case adKeyPrimary
strKey = "Primary KEY "
strKeyName = v_Key.Name
End Select
Next
Debug.Print "主鍵約束名: " & strKeyName
End Sub
上述代碼需要引用ADOX。
1--> 打開VBA代碼窗口
2--> 工具菜單,引用菜單項
3--> 選擇“Microsoft ADO Ext. 2.X for DLL and Security”
由於不懂VBA,運行的時候不知道在哪兒看執行結果,我只好用個笨方法,用單步調試,一步一步執行,執行到最後一步把光標放strKeyName 變量上面就顯示出這時的值了(誰懂怎麼看執行結果的麻煩告知一下,非常感謝)。
有一點要注意的是,同一個數據庫文件放到不同的地方用代碼創建的主鍵的名字是不同的,這一點要記住。