У меня есть проблема, которую я пытался решить в течение нескольких дней с помощью MS Access и функции VBA.
Для начала у меня есть следующая таблица
Имя = Команда
поля являются в основном текстовыми базами, если не указано иное ID (первичный ключ автономного номера) TeamID Non Prenom Location (создается путем объединения полей Nom, Prenom и Location)
В моей форме я хотел быизвлекать частичные детали, введенные в поля Nom, Prenom и Location.Затем передайте это обратно в базу данных, чтобы войти в поле TeamID для индивидуума.
Извлечение должно принять форму TeamID = mid(Location,0,4) & mid(Prenom,0,2) & mid(Nom,0,2à)
Однако я понимаю, что не могу поместить это всекция 'controle source' свойств для любого поля.
Поэтому после долгих поисков я решил, что мне следует использовать функцию в отдельном модуле (я делаю это довольно часто, объединяясь для создания «разумных» значений индекса).в большом количестве моих таблиц я нахожу первичный ключ autonumber не очень удобным для пользователя или не требующим пояснений.
Итак, в моем файле базы данных я создал модуль (называемый getInfo) с открытой функцией
Public Function getID() As String
Dim r As String
Dim i As String
i = "Twenty"
Ниже приведены некоторые из опций, которые я пробовал ....
'r = VBA.Strings.UCase$(String:=i) 'turning the value of i to uppercase
getID = r 'returns "TWENTY" as expected
или
'r = VBA.Strings.Mid$("TWENTY", 0, 2)
getID = r 'error and highlights above line?
или
'r = StrReverse(i)
getID= r 'again error and highlights above line
getID = VBA.Strings.Mid$(String:="TWENTY", Start:=0, Length:=2)
End Function
Затем я откроюнапример, окно «Выполнение» и запуск функции.
Мне кажется, что я могу только преобразовать значение в верхний или нижний регистр, любой поиск или манипулирование строкой просто дает мне сообщение с последующимg ошибка
Ошибка выполнения '5' аргумент или неправильный вызов процедуры
(пожалуйста, потерпите меня, я работаю на французском терминале, и поэтому мой перевод этой ошибки может быть не очень точным).
Однако все функции отображаются правильно, когда я их набираю, как и передаваемые параметры.при поиске в сети информация также остается такой же http://www.techonthenet.com/excel/formulas/index_vba.php
Так что я теряюсь в том, где я ошибаюсь.
Я предполагаю, что неправильно объявляю значение моих переменных, но я не понимаю почему.Этот код не работает в других местах (другие терминалы), поэтому я уверен, что это моя ошибка!
Но что это такое?
Я чувствую, что это действительно основная проблема,но просто не могу заставить функцию работать при работе со строкой.
Нужно ли вызывать эту функцию только из подпрограммы, а не напрямую, будет ли это так же на моей странице формы?
При необходимости я могу создать мини-базу данных с этим кодом.