【发布时间】:2020-04-23 16:00:29
【问题描述】:
这是我的问题:
我正在尝试在 Access Form 中设置 TextBox 的 ControlSource,如下所示:
nombres(0)= "Tabla"
TextBox1.ControlSource= "=FormatoNúmero(DCont(""*"",""" & nombres(0) & """),0,0,0,-2)"
我的区域配置将“ListSeparator”设置为“;”并且无法更改,因为其他应用程序需要这样做。
表达式 "=FormatoNúmero(DCont(""*"",""" & nombres(0) & """),0,0,0,-2)",其中“nombres(0)”是一个格式正确的域名,已在设计视图中检查为工作正常,但使用“;”反而。
如果在 VBA 代码中使用“;”,模块会抛出 2438 错误“wrong sintaxis”。使用 "," 模块可以正常工作并为 TextBox1 设置 controlsource 属性。
点是表单执行的时间,在这些设置下,TextBox1 显示“#¿Nombre?”。
让我抓狂的是,如果在编辑视图中编辑如此创建的 TextBox1.ControlSource,表达式已更改为 "=FormatoNúmero(DCont("*";"Tabla");0; 0;0;-2)",预期结果,只需点击 "接受" theTextBox1 将结果评估为预计。
请问,有什么提示吗?
提前致谢
【问题讨论】:
-
既然是在代码中设置,为什么要直接设置ControlSource而不是Value?
-
老实说,我没想到。你是对的,我不确定我是否知道,但值得一试。即便如此,以及进一步的需求:关于如何解决实际问题的任何想法?
-
您可以随时在设计模式下设置ControlSource,然后调用
TextBoxName.Requery更新其值。 -
Kostas,感谢您的提示,但不幸的是,第二个不起作用。它一直显示“#¿Nombre?”重新查询后...我正在尝试您的其他方法
-
当然可以用 VBA 设置 ControlSource 属性。我已经做了。然而,从来没有像你这样复杂的表达方式。因为我在美国,所以逗号用作分隔符。在你使用双引号的地方,我会使用单撇号。