0

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

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

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

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

我如何对整行进行验证(无需求助于编写代码)

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

在此处输入图像描述

4

1 回答 1

1

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

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

您已经从 1 层解决方案变为 3 层解决方案,这些层是用户界面层(访问)-业务逻辑层(访问/SQL Server?)-数据层(SQL Server)。对于每条信息,需要在每一层进行数据验证。

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

关于您的特定问题 - 如果仅在“cuttings”和“seed”之间进行选择,那么这应该由与新表的外键关系而不是使用文本字段来控制。您的 UI 可以使用它来生成一个组合框选择,以防止无效数据进入,即使发生这种情况,FK 关系也会拒绝它。只需向 FK 表添加一条记录,就可以适应对业务逻辑的更改(例如,允许“树苗”)。

于 2013-07-08T05:08:07.513 回答