【问题标题】:AfterUpdate in Access 2010 to populate textbox not workingAccess 2010 中的 AfterUpdate 填充文本框不起作用
【发布时间】:2015-03-02 19:07:12
【问题描述】:

我在使用更新后事件填充文本框时遇到了一些问题。我的目标是使用 After Update 事件自动填充 Access 2010 中的多个文本框,该事件采用空字段或空字段,并为字符串字段插入 NA 或为数字字段插入 0。到目前为止,我所做的是创建一个 Handle Event,然后我从 After Update 函数中调用它们。另外,我只对文本框而不是表单进行了尝试,但由于我是 VBA 新手,我不确定该使用哪个。

当我转到文本框时,代码用于填充链接到代码中字段的表到另一排。如果我转到文本框并点击 space_bar 或删除条目,我可以让它工作。如何在不点击文本框的情况下让我的表格自动填充?

这是我的句柄事件代码:

Private Sub HandleEmptyStringEvent(object)
    If IsNull(object.Value) Or object.Value = "" Then
        object.Value = "NA"
    End If
End Sub

Private Sub HandleEmptyNumberEvent(object)
    If IsNull(object.Value) Or object.Value = "" Then
        object.Value = 0
    End If
 End Sub

然后它被调用:

Private Sub Field1_AfterUpdate()
    HandleEmptyStringEvent Me.Field1
End Sub

Private Sub Field2_AfterUpdate()
    HandleEmptyNumberEvent Me.Field2
End Sub

谢谢

【问题讨论】:

  • No Field 只是一个通用术语,用于保护我的真实数据的私密性。我修改了代码以更改字段名称。
  • 没有错误消息,它只是没有按照我希望的方式工作。我用更多信息和说明编辑了我的问题。

标签: ms-access vba


【解决方案1】:

看到这个我的第一直觉是“更新后”不是触发此代码的好事件。 - 如果您正在寻找空字段,那么触发的唯一方法是如果该字段中有内容,那么您将其删除。更新后需要更改值来触发它(否则它不会更新值)。退出将是您触发代码的更好选择。

【讨论】:

  • 我将 AfterUpdate 更改为 Exit(Cancel As Integer) 保持其余代码不变,但它仍然不起作用。我在代码中遗漏了什么吗?
  • 我刚刚测试了您拥有的代码,它工作正常。您将需要删除更新后列出的先前代码。然后从属性表中添加一个新事件并将代码粘贴到那里,但我猜这就是你所做的。您也可以使用以下方法解决此问题:If IsNull([Field1]) Then [Field1] = "NA" End If,但您的方法应该更容易使用更多字段。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 2014-10-12
  • 1970-01-01
相关资源
最近更新 更多