Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Cerber
Проблему почти решил
1 создал копию таблицы с которой ведется лог
2 добавил поля тип операции, имя пользователя, номер компьютера, дату
3 на событие формы повесил (сокращен):

Private Sub Form_AfterUpdate()
Dim db As Database
Dim tblLog As DAO.Recordset
Set db = CurrentDb
Set tblLog = db.OpenRecordset("VLog", dbOpenDynaset)
tblLog.AddNew
tblLog![Id] = Me.Id
tblLog![Surname] = Me.Surname
tblLog![Name_s] = Me.Name_s
. . .
tblLog![DateUpdate] = Now()
tblLog![Type_Operation] = "Обновление"
tblLog![LoginName] = GetCurrentUserName
tblLog![MachineName] = GetComputerName
tblLog.Update
End Sub

4 Таблицу VLog экспортировал в текстовый файл
5 Вместо таблицы VLog установил связь с экспортированным текстовым файлом

Аналогично можно отследить любые действия пользователя (предположим нажатие кнопки)

Public Sub Btn_Load_Frm_1()
Dim qd As DAO.QueryDef

Set qd = CurrentDb.CreateQueryDef("")
qd.SQL = "INSERT INTO VLog Values ( '', '', '', . . ., Now(), 'Кнопка Загрузить форму 1', GetCurrentUserName, GetComputerName)"
qd.Execute

Set qd = Nothing
End Sub

Единственная нерешенная проблема - нужны дополнительно старые записи перед
редактированием или удалением
Есть ли у кого мысли по данному поводу?


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.