Ms access 设置新记录源的默认值

Ms access 设置新记录源的默认值,ms-access,vba,Ms Access,Vba,我有一个表单,它利用查询作为记录源来更新后端的表。查询和表是相同的。现在,我在查询中隐藏了一些列,以便在更新记录时,它们不会显示在拆分表单视图的数据表上。但是,由于这些字段是隐藏的,因此无法使用足够的信息更新新记录,以获取表中的值,因为未设置隐藏列的值 有没有办法为每个为隐藏列创建的新记录设置默认值?例如,假设我希望一个名为Location的列为创建的任何未显示在表单上的新记录提取一个默认值。我已经创建了一个临时变量,它将是新记录的默认值。我尝试将tables默认值设置为临时变量,但它不起作用。

我有一个表单,它利用查询作为记录源来更新后端的表。查询和表是相同的。现在,我在查询中隐藏了一些列,以便在更新记录时,它们不会显示在拆分表单视图的数据表上。但是,由于这些字段是隐藏的,因此无法使用足够的信息更新新记录,以获取表中的值,因为未设置隐藏列的值


有没有办法为每个为隐藏列创建的新记录设置默认值?例如,假设我希望一个名为Location的列为创建的任何未显示在表单上的新记录提取一个默认值。我已经创建了一个临时变量,它将是新记录的默认值。我尝试将tables默认值设置为临时变量,但它不起作用。

您应该使用表单的BeforeUpdate\u事件。这样,在将新记录提交到表并弹出错误消息之前,可以为隐藏列指定值

dim mTempVariable as String
'* Set the value for your temporary variable. 
'* Make sure it is always set. The Form_Load Event could be a good place.

Private Sub Form_BeforeUpdate(Cancel As Integer)

  Me.txtLocation = mTempVariable

End Sub

实际上,我在表单上没有该变量的控件。我可以,我可以隐藏文本框,但是位置列会在数据表的表单上-这是我不想要的。您可以将隐藏变量设置为不可见:''Me.txtLocation.visible=False''。也可以在数据表视图中隐藏它。另一种方法是解除表单中所有字段的绑定,完全依赖执行SQL Insert语句的VBA代码。它会将所有值写入表中,包括有问题的值。是否有属性将其设置为隐藏在数据表视图中?明白了。只需在表单视图中单击鼠标右键。谢谢你对梅纳普的帮助。