Как сохранить действия Form_Current при запуске ошибок проверки таблиц?

Вопрос:

У меня есть таблица T с требуемым текстового поля item, и текстовое поле userID, который предназначен для заполнения текущего пользователя идентификатор входа. У меня есть форма mainForm с TForm на основе этой таблицы. Чтобы убедиться, что у каждой записи есть идентификатор пользователя, я добавил следующее событие в TForm:

Sub form_current()
Me.userID = Environ("username")
End Sub

Когда я открываю mainForm, я получаю это сообщение об ошибке сразу при открытии:

You must enter a value in the 'T.item' field.

Я думаю, что здесь происходит то, что form_current() заставляет Access думать, что я попытался завершить запись новой записи, в то время как T.item все еще пуст, что нарушает ограничение таблицы, потому что это обязательное поле. Любопытно, однако, это происходит только при открытии mainForm; когда я открываю TForm сам по себе, я не получаю это сообщение об ошибке при открытии.

Должен ли я использовать другое событие для заполнения идентификатора входа пользователя для каждого поля? Или есть ли лучший способ использовать form_current() для этого?

Лучший ответ:

Первый путь.

Создайте функцию в модуле:

Public Function getUserName() As String
    getUserName = Environ("Username")
End Function

Затем откройте окно свойств для вашего TForm, выберите поле «userId», выберите вкладку «Данные» в окне свойств, найдите строку с «значением по умолчанию» и поместите следующее выражение: = getUserName().

Я не знаю, почему, но доступ не видит функцию Environ().

Второй путь.

Внедрите событие OnLoad следующим образом:

Private Sub Form_Load()
    Me.userID.DefaultValue = "=""" & Environ("username") & """"
End Sub

Оцените статью
TechArks.Ru
Добавить комментарий