Access 2013 - 验证规则疑难解答

时间:2016-03-23 19:28:14

标签: sql validation ms-access append ms-access-2013

我正在尝试将旧系统中的数据导入Access后端。在新的Access后端,我有多个字段的字段验证规则。

我已将旧数据导入文件转储表。然后查询此转储表以确保重新格式化与我的验证规则不匹配的所有字段值以匹配规则。然后在附加查询中使用此查询的结果,以使用验证规则将导入的记录添加到新表中。

示例SQL代码

INSERT INTO Employees_T ( EmployeeName, [EmpPhone-Home], [EmergencyContactPhone-Mobile])

SELECT 
[myReFormatQuery].[Employee Name] AS EmployeeName, [myReFormatQuery].[Employee HomeNumber-Reformated] AS EmployeeNbr, [myReFormatQuery].[EmergencyContactCell-Reformated] AS EmergencyCell

FROM myReFormatQuery;

我的问题

我的大多数记录都没有附加(只有331中的5个)。生成的错误消息是:

  

Microsoft Access无法附加附加查询中的所有记录...以及由于违反验证规则而 331条记录。

故障排除

复制和粘贴查询结果-vs-追加查询

我的第一个念头是我在最初的“重新格式化”查询中搞砸了。为了检查情况并非如此(除了视觉检查),我只是运行该查询并执行了一个副本&将结果粘贴到表中。这样做,由于一些奇怪的原因,附加了更多(总共142个)记录,但其余记录仍然没有粘贴。这些记录的错误是:

  

验证规则禁止一个或多个值...

然而,至少这导致了“粘贴错误”表,允许进行单独的记录故障排除!

复制并粘贴单个粘贴错误记录

我检查了粘贴错误表中的记录,没有看错。所以我决定复制一条单独的记录并粘贴它......同样的错误。

复制并粘贴单个粘贴错误字段

接下来,我决定复制&从记录中粘贴导致验证错误的各个字段 - 奇迹般地,它们粘贴而没有违反验证规则!我将所有剩余的单个字段粘贴到记录中,记录完全保存完好。

我的问题

为什么我的追加查询无效,显然字段值符合验证规则?

从旧系统迁移到新系统时,这将是一个常规过程,因此我不想通过手动粘贴每个字段来存储数千条记录和数十万个字段。 ;)

非常感谢任何建议。谢谢!

1 个答案:

答案 0 :(得分:0)

这不是我的问题的“答案”(因此我不会将其标记为希望有人可以为未来的读者提供更好的解决方案),但我找到了一个可行的解决方案,所以我可以继续我的项目。 ..

  1. 删除验证规则(我在字段中复制并粘贴) 描述,因为我有近20个规则领域。
  2. 运行我的追加查询(没有问题,因为没有违反验证规则)
  3. 将验证规则添加回表格。
  4. 对所有三个提示选择“是”。
  5. 这将允许根据验证规则检查将来的条目......但是您的旧数据将保留(即使在步骤4的提示中,它指出您违反了规则)。