У меня есть база данных с информацией о посетителях нашего отдела. Вот мои настройки: пользователь выбирает имя посетителя из списка. Access назначает значения из записи этого посетителя временным переменным и открывает несвязанную форму, где эти переменные являются значениями по умолчанию в текстовом поле. Когда пользователь изменяет значение в текстовом поле, событие After_Update использует SQL для обновления соответствующего поля в записи этого посетителя и назначает новое значение временной переменной.
Пример After_Update:
Dim strRUN As String
strRUN = updateVisitorOnDirty(Me.txtVisitorTravelMethod, "VisitorTravelMethod", 1)
HideWarnings (strRUN)
TempVars!strVisitorTravelMethod = Nz(Me.txtVisitorTravelMethod.Value, "")
"updateVisitorOnDirty" - это функция, которая возвращает SQL для обновления поля (указанного во втором аргументе) в таблице с информацией о посетителях с первым аргументом. (Число в конце говорит, что это строка.) «HideWarnings» отключает предупреждения, выполняет SQL, а затем снова включает предупреждения.
Моя проблема:
Когда пользователь очищает текстовое поле, событие After_Update возвращает текстовое поле к его предыдущему значению.
Сначала я подумал, что, возможно, несвязанное текстовое поле вернулось к значению по умолчанию, когда оно было очищено, но я установил точку останова в подпрограмме, которая срабатывает во время After_Update:
Если я изменю значение в mytextbox с a на b, debug.print отобразит значение mytextbox как b. Если я изменю значение в mytextbox с a на (пустая или пустая строка), debug.print покажет значение mytextbox равным a.
Мой обходной путь заключался в добавлении небольшого символа «x» рядом с текстовым полем, которое пользователь может щелкнуть, чтобы: 1) очистить текстовое поле, 2) обновить временную переменную и 3) обновить таблицу. Это работает нормально, но, похоже, должен быть лучший способ. Помощь
Пожалуйста, дайте мне знать, если вам нужна какая-либо другая информация или я должен перефразировать это. Я все время прихожу сюда, чтобы получить ответы, но я впервые задаю свой вопрос. Спасибо!
(Я отредактировал это, чтобы код правильно отображался ... раньше не выходил из строки.)