Добавление имени компьютера или идентификатора пользователя в новую запись в Access - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь настроить простую функцию, чтобы добавить имя компьютера человека, который добавляет запись в базу данных доступа. Например, если пользователь на компьютере 12345 создает новую запись в таблице tblTasks, то в поле «Владелец» будет указано имя этого человека.

То, как я сейчас это делаю (и не уверен, что это лучший способ), в форме под полем «Владелец» я установил значение по умолчанию = владелец, и я создал следующую функцию:

Function Owner()
 Dim cdb As DAO.Database, rst As DAO.Recordset
 Dim wshNet As Object

 Set wshNet = CreateObject("Wscript.Network")
 Set cdb = CurrentDb
 Set rst = cdb.OpenRecordset("SELECT * FROM tblTasks", dbOpenDynaset)
 rst.AddNew
 rst!Owner = wshNet.Computername
 rst.Update '<---- Error starts here
 Set wshNet = Nothing
End Function

При создании новой записи я получаю следующую ошибку:

error message

Я знаю, что часть проблемы заключается в том, что созданное мной правило проверки не позволяет создавать записи без имени задачи, но я хочу сохранить это на месте.

Я думаю, что проблема с полем «Владелец», дающим #Error, также связана с тем фактом, что вместо использования действия кнопки для создания записи я сохраняю возможность просто добавлять из нижней части запись. Который я бы тоже хотел держать в такте.

Любая помощь или совет будет принята с благодарностью!

Спасибо !! -Deke

1 Ответ

1 голос
/ 10 июля 2019

Я работал над чем-то похожим несколько дней назад и начал использовать такие поля, как вы.Я нашел решение, похожее на ваш макрос.

Создайте событие макроса для свойства BeforeInsert формы.Используйте приведенный ниже код для макроса и обновите его в соответствии с вашими потребностями.

Private Sub Form_BeforeInsert(Cancel As Integer)
Dim Owner As String
Owner = Environ("COMPUTERNAME")

            Me!AddedBy= Owner
End Sub

РЕДАКТИРОВАТЬ Что касается получаемой ошибки, я не уверен, поможет ли это, но попробуйте определить владельца как * 1006.*

Dim wshNet As String

 Set wshNet = Environ("COMPUTERNAME")
...