Как называется нарушающее ограничение уникального индекса в dao / ms-access? - PullRequest
1 голос
/ 30 октября 2009

Я пытаюсь вставить запись в таблицу с DAO (в MS-Access), и при этом я получаю сообщение об ошибке 3022 (которое указывает на нарушение уникального индекса). Ошибка правильная, так как на самом деле запись для попытки вставки имеет значение, которое уже найдено в таблице.

Теперь я хотел бы узнать имя нарушенного уникального индекса. У кого-нибудь есть подсказка, как я могу получить это?

Спасибо за любой указатель Рене

1 Ответ

0 голосов
/ 30 октября 2009

Вот некоторые заметки:

Sub WithADO()
''Reference: Microsoft ADO Ext x.x For DLL and Security
Dim catTables As ADOX.Catalog
Dim cn As ADODB.Connection
Dim ndx As Object

Set catTables = CreateObject("ADOX.Catalog")

Set cn = CreateObject("ADODB.Connection")
dbfile = "C:\Docs\LTD.mdb"

    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
              "Data Source=" & dbfile & ";"

Set catTables.ActiveConnection = cn

For Each ndx In catTables.Tables("Table1").Indexes
    strlist = ndx.Name & " " & ndx.Properties("Primary Key") & vbCrLf & strlist
Next
MsgBox strlist

Set catTables = Nothing

End Sub

Sub WithDAO()
''Reference: Microsoft DAO x.x Object Library
Dim db As DAO.Database
Dim tdf As TableDef
Dim ndx As Object

Set db = CurrentDb
Set tdf = db.TableDefs("Table1")

For Each ndx In tdf.Indexes

    If ndx.Primary = True Then
        MsgBox ndx.Name
    End If
Next
End Sub

Вы также можете использовать схемы.

...