首页 > 解决方案 > 访问宏 - 文本框是否从默认值更改?

问题描述

我有一个带有包含一些默认文本的文本框的 Access 表单。用户需要用自己的单词替换文本,所以我编写了一个宏来确认(在继续下一条记录之前)文本框不再包含默认文本。(它给用户一个警告和一些其他任务,这就是我不使用内置验证规则的原因。)

宏包含以下序列:

SetLocalVar
Name: booDetailDefault
Expression = [Forms]![frmChangeReq]![txtProblem].[Text]=[Forms]![frmChangeReq]![txtProblem].[DefaultValue]

想法是如果...[Text]与 相同...[DefaultValue]booDetailDefault则为 TRUE,否则为 FALSE。

但是,我得到的是“类型匹配”。我认为 Text 和 DefaultValue 将是同一类型。

  1. 你能告诉我为什么会出现这个错误吗?
  2. 有什么方法可以显示 Text 和 DefaultValue 值,以便我了解 Access 认为它​​们不同的原因吗?
  3. 有没有更好的方法来查看文本框是否已更改?

编辑:默认文本在文本框的属性表中设置。我一直在手动运行它,还没有将它绑定到一个事件,直到我让它工作。

我使用文本而不是值,因为这是宏生成器中可用的,但以防万一我尝试将其更改为值。它可以工作,尽管我必须告诉表达式在它的一半左右使用引号:

[Forms]![frmChangeReq]![txtProblem].[DefaultValue]="""" & [Forms]![frmChangeReq]![txtProblem].[Value] & """"

标签: vbams-accesscontrols

解决方案


推荐阅读