Access VBA меняет прописные и строчные буквы случайным образом - PullRequest
0 голосов
/ 04 июня 2018

У меня есть проект кодирования в MS Access.Некоторые разработчики кодируют и проверяют исходный код на SVN-сервере.Поскольку SVN-сервер предназначен для управления кодом, он распознает изменения в файлах исходного кода.В этих исходных кодах есть проблема.VBA часто меняет прописные и строчные буквы, и мы понятия не имеем, почему.

Когда я делаю коммит, то есть

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

Другой разработчик обновляет свой репозиторий и использует мой код, и он меняется на

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

SVN распознает это как изменение.Таким образом, у нас есть много измененных файлов, хотя логика не изменилась, но Access изменил прописные и строчные буквы.

Кто-нибудь знает, почему Access действует так и как это предотвратить?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 04 июня 2018

txtNodeID изменяется на txtNodeId, потому что последний как-то объявлен в программе.Попробуйте этот кусок:

Sub TestMe()
    someVariable = 5
End Sub

Тогда пишите только на другом модуле Public SOMEVARIABLE.Подставка TestMe теперь будет выглядеть так:

Sub TestMe()
    SOMEVARIABLE = 5
End Sub
0 голосов
/ 05 июня 2018

Для меня @VincentG получил ответ в этом комментарии Доступ к VBA меняется случайным образом в верхнем и нижнем регистре

Я использовал ключевое слово для API, не распознавая этого, и я использовал то же имя для объектов/ переменные / элементы без распознавания.VBA запутался и поменял капитализацию

0 голосов
/ 04 июня 2018

Редактор VBA должен обеспечить, чтобы регистр имени переменной совпадал с объявленным именем переменной.Это означает, что вы не сможете написать следующее:

Dim someID As String
someId = "5"

То же самое происходит с функциями.Таким образом, ENVIRON становится Environ.

Однако, это может стать странным, если вы не обеспечите принудительное объявление переменных (без Option Explicit вверху).Тогда редактору будет непросто узнать, что такое правильный случай, и он будет стремиться изменить все до первого появления.

Решение состоит в том, чтобы заставить всех разработчиков использовать Option Explicit,поэтому каждая переменная объявлена ​​явно, и редактор VBA знает, какой это правильный случай (и есть много дополнительных преимуществ).Чтобы избежать причуд, они также должны сделать так, чтобы отредактированная строка теряла фокус перед сохранением (вот когда проверка происходит, поэтому вы можете сделать это неправильно, если вы действительно этого хотите. Если вы это сделаете, она может измениться на правильнуюслучай при касании).

...