验证访问中的整行/记录

时间:2013-07-08 04:15:49

标签: sql sql-server validation ms-access

我们正在将Access表单/ Access数据库迁移到Access表单/ SQL数据库。

我在模仿访问中发生的验证时遇到了问题。

当用户输入新记录并跳过必填字段并尝试保存访问时,会显示一个消息框,说明需要某些字段(验证规则)

对我来说问题是,同样的场景为我提出了关于丢失字段的SQL异常。尽管我有一个验证规则。 验证规则不起作用,除非您先移动到该字段然后尝试逃避或保存。但是,例如1)开始新记录2)在第一个字段中键入内容3)按向下箭头保存记录

如何在整行上进行验证(pref而不必求助于编写代码)

示例显示在下一个屏幕截图中,显示的最后一列应该有一个值,但除非您专门转到该字段然后键入错误,否则不会强制执行验证。 如您所见,最后2条记录已保存而未经验证。

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要了解Access和SQL Server之间的区别。

  • Access是一个用户集成的数据库/用户界面 - 使用简单,通常由同一个人编程。
  • SQL Server是一个高性能的多用户数据库,仅依靠其他东西来提供用户界面:Windows窗体项目,网站或(在您的情况下)访问。它期望其程序员和用户将是具有截然不同技能的不同人,并且前者需要保护它免受后者的侵害。

您的目标是3层解决方案的1层解决方案,层是用户界面层(Access) - 业务逻辑层(Access / SQL Server?) - 数据层(SQL Server)。每个信息都需要在每个层上进行数据验证。

我建议您阅读多层应用程序。

关于您的特定问题 - 如果选择仅在“剪切”和“种子”之间进行,则应通过与新表的外键关系来控制,而不是使用文本字段。您的UI可以使用它来生成一个组合框选择,以防止无效数据进入,即使FZ关系发生,FK关系也会拒绝它。只需在FK表中添加记录,就可以适应业务逻辑的变化(例如允许“树苗”)。