【问题标题】:Key violation when running append query the 1st time, but NOT the 2nd time第一次运行附加查询时的键违规,但不是第二次
【发布时间】:2017-12-18 21:21:43
【问题描述】:

当我使用 VBA 运行附加查询时,我收到一条错误消息,指出存在密钥冲突。但是,我没有做任何事情来更改表的主键,那为什么会出现键冲突呢?

这是奇怪的部分——我第一次运行附加查询时,我得到了这个密钥冲突错误。但是当我立即再次运行它时,即不做任何其他事情,它工作正常。

SQL 字符串:

INSERT INTO tblQuoteVendors (QuoteID, CompanyID, ContactID)
VALUES (360, 236, 491);

表架构:

Field Name    Datatype
ID            Autonumber
QuoteID       Number
CompanyID     Number
ContactID     Number
VendorQuote   Short Text

表关系:

表关系截图

【问题讨论】:

  • 请提供所有索引的列表。 ID 是唯一的索引字段吗?是否存在强制参照完整性的关系?
  • @ErikvonAsmuth 除了 VendorQuote 之外的所有字段都已编入索引。是的,此表与其他表相关。我将添加关系的屏幕截图。
  • 您是否检查了所有外键,它们是否有效?

标签: sql vba ms-access primary-key ms-access-2013


【解决方案1】:

这可能是由于您在此处 tblQuote 和 tblCompany 之间的“双重”关系:

tblQuote.CompanyID/tblCompany.CompanyID

这里:

tlQuote.QuoteID/tblQuoteVendors.QuoteID - tblQuoteVendors.Company.ID/tblCompany.CompanyID

【讨论】:

    【解决方案2】:

    我也有同样的情况:

    这是奇怪的部分——我第一次运行附加查询时,我得到了 此键违规错误。但是当我立即再次运行它时,即 不做任何其他事情,它工作正常。

    压缩和修复数据库解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多