如何删除MS ACCESS中列的“验证规则” - 使用查询

时间:2013-01-16 06:34:21

标签: c# ms-access

我在MS ACCESS中有一个客户文件,它包含许多表格。

案例:

在列(Y)的表(X)中,存在“= 1或2”的验证规则。如果可能,我想将其更改为“= 1 OR 2 OR 3 OR 4”,它是一个字节列。 Otherwsie我想完全删除该列的验证规则。我正在使用C#,我需要一个查询来这样做.......

1 个答案:

答案 0 :(得分:1)

Access SQL不能用于添加,删除或更改验证规则。这只能通过DAO TableDef来完成。

如果您在Access中使用VBA,则可以执行此操作来创建验证规则。

CurrentDb.TableDefs("X").Fields("Y").ValidationRule = "IN (1,2,3,4)"

我使用IN (1,2,3,4)代替1 OR 2 OR 3 OR 4,但要么应该有效。

也许您可以使用Microsoft.Office.Interop.Access从c#中执行相同操作。

另一种方法是使用Access SQL创建检查约束。检查约束与验证规则不同,但可用于实现相同的目标。

ALTER TABLE X ADD CONSTRAINT one_to_four CHECK (Y IN (1,2,3,4));

您仍需要放弃现有的验证规则。如果这不可行,您可以创建一个与旧结构相同的新表,添加检查约束,最后从旧表加载数据到新表。