Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 根据文本字段中的实时输入更新标题_Ms Access_Vba - Fatal编程技术网

Ms access 根据文本字段中的实时输入更新标题

Ms access 根据文本字段中的实时输入更新标题,ms-access,vba,Ms Access,Vba,我有一个标题标题,以“占位符”开头。然后我有三个领域;名字、姓氏和头衔。我想在用户键入这三个字段时更新并附加标题 因此,如果有人在名字字段中输入名字“Steven”,标题应该从占位符更新为Steven Private Sub First_Name_AfterUpdate(Cancel As Integer) Me.provider_label.Caption = Me.First_Name.Value End Sub 我原以为这个代码可以用,但实际上不行。似乎太简单了。我正在Micro

我有一个标题标题,以“占位符”开头。然后我有三个领域;名字、姓氏和头衔。我想在用户键入这三个字段时更新并附加标题

因此,如果有人在名字字段中输入名字“Steven”,标题应该从占位符更新为Steven

Private Sub First_Name_AfterUpdate(Cancel As Integer)
    Me.provider_label.Caption = Me.First_Name.Value
End Sub

我原以为这个代码可以用,但实际上不行。似乎太简单了。我正在Microsoft Access中的VBA表单上编写它。

我刚刚测试过,没有问题。你的名字是文本框吗

Private Sub ProviderUpdate()
    Me!provider_label.Caption = Me!first_name & " " & me!last_name & " " & me!Title
End Sub

然后在每个单独的文本框中,设置事件过程以使用textbox ControlSource中的表达式调用ProviderUpdate sub.

非VBA解决方案:

=IIf([姓氏]、[名字]、[头衔]、“=”、“占位符”、[姓氏]、[IIf(IsNull([姓氏])、“、”、”+[名字]、“-”+”+[头衔])


=IIf([姓氏]、[名字]、[头衔]、“=”、“占位符”、新西兰([姓氏]、“无LN”)、“&Nz([名字]、“无FN”)、”、“&Nz([头衔]、“无头衔”)

什么是“不”呢“平均错误信息,错误结果,什么都没发生?你为什么要这么做?很奇怪的设计。为什么标签要复制数据?为什么不只是一个像“名字”这样的通用标签。@June7我正在协助别人设计。更改文本字段时,占位符标题未更新。标题需要是名字、姓氏和标题的串联,因此我们不能使用通用标签。特别是因为表单旨在支持添加新客户,其属性在同一表单上定义。
AfterUpdate()
没有
Cancel
参数。这里有些不对劲。您是否已将事件放入first_name控件的AfterUpdate属性中。仍然很奇怪。这意味着在输入每个数据元素后更改标签标题。复制每个输入控件中已显示的内容。不使用VBA,只需要一个文本框,其中包含连接数据元素的表达式。将文本框设置为TabStop No。你说这是一个“标题”标题-标题是什么?或者这只是表单上的一个分离标签?建议在引用对象和控件时使用点(.)而不是砰(!)来获取intellisense提示。intellisense是什么?intellisense是VBA(以及其他编程平台)中的功能,在键入代码时提供弹出式帮助提示。点(.)将触发intellisense弹出窗口,而砰(!)不会。在Access 2010中,intellisense已扩展到表达式生成器,因此您可以查看表达式所需的参数。然而,在Access对象(查询、表单、报表)设计中,bang在那里提供弹出式帮助。啊,实际上我只是读了一下。我喜欢bang,因为我总是用它来指代集合成员和属性之前的点。我认为这是一个访问问题,因为我已经看到了符号在访问之外的变化——但似乎这是一个被广泛讨论的问题。dot将列出控件名称,以便在代码中键入控件名称以及它们的属性时有所帮助。我只是想注释:
NZ(Me!first_name,”&&NZ(Me!last_name,”&&NZ(Me!last_name,”)&&NZ(Me!Title,”
(或forms!control而不是me!如果您使用绝对引用)这很有效!这不是最佳选择,因为无论是否输入姓氏,都有逗号,但这就足够了。修改了第一个表达式以处理孤立逗号。