【问题标题】:Changing Many Null Textboxes to 0 in Access在 Access 中将许多空文本框更改为 0
【发布时间】:2015-01-09 15:38:30
【问题描述】:

在失去焦点后将表单中的所有文本框更改为 Null 值为 0.0 时遇到问题。具体来说,如果在按 Tab 后文本框为空白,它将恢复为 0,因为它会影响表单其他部分的计算。为每个文本框事件过程(大约 57 个框)编写代码似乎很乏味,而且所有框的名称都不同。

我想知道是否有一种有效的方法可以在轻松失去焦点后更改文本框的值,而不是更改表单中每个文本框的事件过程。

谢谢

【问题讨论】:

  • 这是什么应用程序? Windows / 网络???
  • 仅适用于 Windows。打开访问权限时要填写的表格
  • 我不相信您可以在所有文本框上调用“失去焦点”事件,而无需为每个文本框单独设置过程。您是否考虑过将它们全部默认为 0.0?
  • 我尝试过默认设置,但问题仍然存在,当我切换到下一个文本框时,如果该框为空白,它仍然为空白
  • 我明白你的意思。我唯一的其他建议是给每个控件一个标签,然后当您要计算循环遍历所有控件以及任何具有标签的控件时,如果为空,则将它们设置为零。虽然这变得几乎和在每个失去焦点事件中设置它一样乏味。

标签: database ms-access vba


【解决方案1】:

我想我会和我的 cmets 一起举一个例子。您可以使用以下内容:

Public Function DefaultToZero(frm As Form)

    Dim ctrl As Access.Control

    For Each ctrl In frm
        If ctrl.Tag = "Default" Then
            If Nz(ctrl.Value, "") = "" Then
                ctrl.Value= "0.0"
            End If
        End If
    Next ctrl

End Function

然后您只需在设计模式下选择所有控件并将标签设置为“默认”。不是最好的答案,但除了使用每个“失去焦点”事件之外,我真的没有看到任何其他选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-01
    相关资源
    最近更新 更多