как узнавать были изменены данные или нет?

crazytrain
Дата: 09.09.2005 11:07:35
Есть база данных в аксесе. Там создана мастером форма, простая в табличном виде, можно пролистывать данные и изменять их. Так вот в чем загвостка, человек может зайти на эту форму и изменить что-нибудь случайно на неправильное, но это не самое страшное. Надо узнать что именно он изменил какую запись? и потом обновить в соответствии с изменениями другую таблицу, а потом может еще и таблицу в экселе. Как обновить другие я как-нибудь придумаю. но вот как отловить измененую запись понять не могу. Помогите , пожалуста.
Пользователь2
Дата: 09.09.2005 11:13:46
Private Sub Form_BeforeUpdate(Cancel As Integer)
    MsgBox "Данные изменил " & CurrentUser()
End Sub
crazytrain
Дата: 09.09.2005 11:29:04
а к чему это я что -то не очень понял, можете пояснить поразвернутее.
Bor-L
Дата: 09.09.2005 11:41:35
продется добавить в таблицу 2 поля - "дата_последнего_изменения" и "кто"
и, самое главное, как-то запретить изменение данных непосредственно в таблице (поскольку триггеров в Асcеss-e нет - это непростая задача)
crazytrain
Дата: 09.09.2005 12:06:57
запрещать изменения в принципе не надо. Это очень часто изменяемая таблица. Надо узнавать когда была изменена та или иная запись. Допустим я добавлю поле "дата изменения", как мне туда данные то заносить?
Bor-L
Дата: 09.09.2005 13:54:41
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me![ДатаИзменения] = Date
End Sub
crazytrain
Дата: 12.09.2005 13:36:41
Меня видимо не совсем правильно поняли. Есть форма, в ней в табличном виде отображается одна из таблиц базы. Представьте себе ситуацию, зашел малознакомый человек и случайно ( сам даже этого не заметив) поменял одно из значений. Как узнать куда он внес изменения? Если бы при изменении значения, записывать дату изменения имеено в соответствущую запись.
Тяп-ляп
Дата: 12.09.2005 13:53:00
Похоже, тебе нужно протоколирование действий пользователей.

Тут просто дополнительными столбцами не обойтись, нужна таблица протокола
со столбцами "имя поля", "юзер", "старое значение", "новое значение"
Заполняешь ее в процедуре BeforeUpdate или AfterUpdate тех полей формы, которые нужно протоколировать

Ну и соответсвенно, дополнительная форма, в которой можно анализировать этот протокол.
Leytenant
Дата: 24.09.2007 23:03:54
Тяп-ляп


Ну и соответсвенно, дополнительная форма, в которой можно анализировать этот протокол.


А можно о форме подробней?
Ёжик`
Дата: 25.09.2007 09:36:32
Полный журнал