MS Access 2007附加查询麻烦

时间:2011-09-29 15:27:19

标签: ms-access ms-access-2007

我有一个追加查询,试图将一些记录附加到我的一个表中。但是,我收到的错误是“由于密钥违规而未添加1200条记录。”1200是我尝试追加的记录总数。我不明白为什么我收到此错误,因为目标表中的所有列都允许重复(即使此追加查询不重复任何信息),如果我复制表的结构并将记录追加到一切正常。

问题似乎是我将数据附加到已有现有数据的表中。有人可以提供一些建议,我可以解决这个问题吗?

由于

1 个答案:

答案 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