我正在尝试在Access 2013中将数据从一个表附加到另一个表。目标表[ActionItems]
尚无记录。
源表格[Students]
包含必要的列:[AutoID]
(自动编号),[Action Status]
(短文本),[Action Status Last Updated]
(日期/时间),{{ 1}}(短文)。
我已将目标表设置为与数据类型和字段匹配(尽管字段名称略有不同,我已在追加查询中正确加入它们)。目标表中的[Action Status Description]
字段设置为Number,Long Integer,正如我在其他地方所建议的那样。
如果我在数据表视图中查看追加查询,我会看到731条记录,就像我应该的那样。但是当我尝试运行查询时,我收到以下错误:
“Microsoft Access无法附加所有记录...将0字段设置为 由于类型转换失败而为空... 0 ...密钥违规... 0 ... 锁定违规,以及由验证规则引起的 731条记录 违反“。
目标表中有 NO 验证规则!两个文本字段都允许零长度,[AutoID]
字段没有默认值。我不明白我错过了什么。
这是我的SQL(我意识到我的列名相当冗长):
[AutoID]
如果有帮助,这里有一个指向数据库精简版的链接:https://drive.google.com/file/d/0BysgnYaEVPnJemNnOUc3ZmFsWXM/view?usp=sharing
我删除了所有其他表格和任何可识别的信息。唯一的另一个主要区别是INSERT INTO [ActionItems] ( AutoID, [Action Status], [Action Status Last Updated], [Action Status Description] )
SELECT [Students].[AutoID (Do not use)], [Students].Status, [Students].[Status Last Updated], [Students].[Status Description]
FROM [Students];
表中的主键已从复合键([Students]
,[First Name]
和[Last Name]
)更改为单个主键( [Email]
)。我对[AutoID (Do not use)]
表没有任何改动。即使进行了这些更改,错误仍然与先前描述的完全相同。
答案 0 :(得分:0)
目标表ActionItems
包含名为Action Status Last Updated By
的字段。该字段的必需属性设置为是,其默认值属性为空。这意味着每当您向该表添加新行时,必须为Action Status Last Updated By
提供值。
请注意,INSERT
声明不会为Action Status Last Updated By
提供任何内容。因此INSERT
不会添加任何行。
在我的数据库副本中,我将字段的必需属性更改为否。完成更改后,执行INSERT
查询会向ActionItems
添加731行... Students
中的每一行都有一行。
如果您更喜欢其他解决方案,可以将必需设置为 True ,然后将某些内容放入字段的默认值属性中或更改INSERT
为该字段提供值。