访问VBA更改大写&随机小写

时间:2018-06-04 08:27:24

标签: vba svn access-vba

我在MS Access中有一个编码项目。有些开发人员将源代码编码和检查到SVN服务器。 由于SVN-Server用于管理代码,因此它可识别源代码文件中的更改。 在这些源代码文件中存在问题。 VBA经常更改大写和小写字母,我们不知道为什么。

当我提交时,即

'two examples
Call myfunction(txtNodeID)
rst![Username] = Environ("USERNAME")

另一位开发人员更新了他的存储库并使用了我的代码并将其更改为

'two examples
Call myfunction(txtNodeId)
rst![UserName] = Environ("USERNAME")

SVN认为这是一种变化。所以我们有很多改变的文件,虽然逻辑没有改变,但Access修改了大写和小写。

有谁知道Access为什么会这样做以及如何防止这种情况?

谢谢。

3 个答案:

答案 0 :(得分:2)

VBA编辑器应该强制变量名称大小写与声明的变量名称相同。这意味着,您应该无法编写以下内容:

Dim someID As String
someId = "5"

它与功能相同。因此ENVIRON变为Environ

但是,如果您不强制执行变量声明(顶部没有Option Explicit),这可能会变得奇怪。然后编辑将很难知道哪个是正确的情况,并倾向于将所有内容更改为第一次出现。

解决方案是让所有开发人员使用Option Explicit,因此显式声明每个变量,并且VBA编辑器知道哪个是正确的情况(并且还有许多其他优点)。为了避免怪癖,它们还应该使编辑的线在保存之前失去焦点(当检查发生时,这样你可以如果你真的想要做错了。如果你这样做,它可以改为触摸时的正确情况。)

答案 1 :(得分:1)

txtNodeID更改为txtNodeId,因为后者是以某种方式在程序中声明的。试试这件:

Sub TestMe()
    someVariable = 5
End Sub

然后只在另一个模块上写Public SOMEVARIABLETestMe子现在看起来像这样:

Sub TestMe()
    SOMEVARIABLE = 5
End Sub

答案 2 :(得分:0)

对我来说,@ VincentG在此评论Access VBA changes uppercase & lowercase randomly

中有答案

我在使用API​​的关键字而没有认识到这一点,我在对象/变量/元素中使用相同的名称而没有识别。 VBA变得混乱并转换资本化