【问题标题】:Allowing User to Select off of Partial Records in a Continuous Form in Access允许用户在 Access 中以连续形式选择部分记录
【发布时间】:2020-11-28 02:45:31
【问题描述】:

我正在创建一个表单以允许用户输入一天的多个生产记录。

表单设置为连续数据输入表单,并进行数据验证以确保输入的信息一致。

我遇到了一个问题,如果用户开始在新条目上输入内容,他们基本上无法在未完全填写表单的情况下退出或取消该条目。

我想保持数据验证以确保记录的数据是准确的,但也不想将用户锁定在一个条目中,除非它完全填写。

我认为理想的情况是允许用户创建新记录或选择其他记录,而无需保存当前记录。

如果有可能做到这一点,那么只有在按下表单顶部的按钮时才保存记录,我认为这将是理想的,但我还没有找到一个好方法来做到这一点,而不需要在每一个进入。

我附上了我正在谈论的内容的图片,可能会有各种错误消息,但基本上如果您在记录不完整时尝试单击关闭,则会出现错误,直到填写整个表格。

错误信息示例和连续形式的图像

【问题讨论】:

  • 只要记录没有被保存,用户可以按Esc键一次或多次取消。这是默认方法。
  • 感谢 Gustav,这应该适用于大多数情况!您是否知道在不删除内容的情况下获得类似结果的方法?所以本质上它会在不保存的情况下“取消选择”,但仍会保存到目前为止输入的内容。
  • 直到用户离开表单,导航到新记录,或者您可能在表单上有一个保存按钮(me.Dirty = false 是要保存的代码)。因此,只是坐在表格上输入数据并不会写入表格。因此,这是您做什么或允许做什么的问题(导航到另一条记录 = 保存,或关闭表单 = 保存。但是,您也可以在不保存的情况下关闭表单。
  • ValidationRule 可以设置为允许 Null。就像:.... Or Is Null,这将允许用户将该控件留空并继续下一步。使用表单 BeforeUpdate 事件来验证必填字段。我不熟悉该错误消息。
  • June 这个想法基本上只是针对例外情况,即用户对某事有部分信息并希望填写他们现在知道的内容。在阅读了每个人的 cmets 之后,我认为这是一个足够的边缘案例,我们只需要向用户解释他们必须填写所有内容或不填写任何内容,所以就像 Gustav 解释的那样点击逃生就可以了。我们不希望保存空值,因为这会在稍后上传到我们的 MRP 系统时导致问题。

标签: vba ms-access ms-access-forms


【解决方案1】:

“取消选择”而不保存,但仍保存已输入的内容 那一点。

可以通过在每个控件的AfterUpdate事件中设置每个控件的DefaultValue来模拟:

Me!SomeTextBox.DefaultValue = Nz(Me!SomeTextBox.Value)

但是,我不确定这是否是一个好主意。并且您可能需要在打开表单时重置默认值。

【讨论】:

  • 感谢 Gustav 的建议,我想我会接受您最初的建议,经过进一步考虑,我同意它可能最终会导致更多问题,而这本来应该是一个非常罕见的情况.
猜你喜欢
  • 2012-09-24
  • 2012-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多