VBA对象属性以小写形式显示

时间:2016-07-28 15:02:47

标签: vba ms-access

有时候在开发时会发现典型的属性名称会以小写字母显示。

TempVars.Item("abc")

可能会出现这样的情况。

TempVars.item("abc")

tbxMyTextbox.Value

显示为

tbxMyTextbox.value

问题是为什么会发生这种情况,你如何解决?

2 个答案:

答案 0 :(得分:10)

我已多次问自己这个问题,看到其他人在SO和其他地方问过这个问题。在大多数情况下,在搜索其他编码错误的答案时会出现问题。有时开发人员( me too )会怀疑他们是否有错误导致这种小写问题。

前段时间我遇到了一个答案(我将在我再次遇到它时添加原始引用),这是最有意义的,并且实际上允许我纠正这个唠叨的问题。

显然,当你使用一个名称与属性相同的小写变量时会发生这种情况。

所以

 Dim value as string

将导致

 myObject.Value

显示为

 myObject.value

<强>解决方案吗

因为VBE显然在整个IDE中考虑了这个变量 - 显然不考虑范围;恢复到正确情况的方法是临时以大写形式创建变量,并避免使用与应用程序中现有属性相同的名称命名变量。

因此上述.value / .Value问题的解决方案是暂时包含该行

Dim Value as string

在您应用内的模块中。运行包含此行的代码。

然后,删除此临时代码行。

然后,如所希望的那样,.value属性将再次显示为.Value而不是.value

当然,我们应该首先避免使用那些保留字词,但如果在某些时候没有完成,则上述情况应解决问题。

以下是一些保留字链接:

感谢@ScottCraner关于避免保留字的推动。

答案 1 :(得分:-1)

尝试这样的事情:

CallByName(myObject, "value", VbGet)