我有一个追加查询,试图将一些记录附加到我的一个表中。但是,我收到的错误是“由于密钥违规而未添加1200条记录。”1200是我尝试追加的记录总数。我不明白为什么我收到此错误,因为目标表中的所有列都允许重复(即使此追加查询不重复任何信息),如果我复制表的结构并将记录追加到一切正常。
问题似乎是我将数据附加到已有现有数据的表中。有人可以提供一些建议,我可以解决这个问题吗?
由于
答案 0 :(得分:1)
确认您没有忽略桌面上的任何唯一索引。将此过程保存在标准模块中,并使用目标表的名称从立即窗口调用它。
Public Sub InspectIndexes(ByVal pTable As String)
Dim db As DAO.Database
Dim i As Long
Dim j As Long
Dim strFields As String
Set db = CurrentDb
With db.TableDefs(pTable)
Debug.Print "Indexes.Count = "; .Indexes.Count
For i = 0 To (.Indexes.Count - 1)
With .Indexes(i)
Debug.Print i + 1 & ": Index Name = "; .name
If .Primary Then
Debug.Print vbTab & "Primary Key (Unique)"
Else
Debug.Print vbTab & "Unique: "; .Unique
End If
Debug.Print vbTab & "Fields.Count = "; .Fields.Count
strFields = vbNullString
For j = 0 To (.Fields.Count - 1)
strFields = strFields & "; " & .Fields(j).name
Next j
strFields = Mid(strFields, 3)
Debug.Print vbTab & "Fields: "; strFields
End With
Next i
End With
Set db = Nothing
End Sub
这里是示例输出,其中tblFoo有3个索引:id上的主键(按定义唯一); num_field1和num_field2上的唯一索引;和parent_id上的非唯一索引。
InspectIndexes "tblfoo"
Indexes.Count = 3
1: Index Name = both_num_fields
Unique: True
Fields.Count = 2
Fields: num_field1; num_field2
2: Index Name = parent_id
Unique: False
Fields.Count = 1
Fields: parent_id
3: Index Name = pkey
Primary Key (Unique)
Fields.Count = 1
Fields: id