Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2011, 14:19   #1
erzi
 
Регистрация: 27.01.2011
Сообщений: 4
По умолчанию Ведение лога изменений в базе

День добрый!

Подскажите пожалуйста, существует ли возможность ведение лога изменений данных в базе на основе Microsoft Office Access 2003, если да, то как ей его организовать?
erzi вне форума Ответить с цитированием
Старый 30.01.2011, 19:03   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте erzi.
"..существует ли возможность ведение лога изменений данных в базе.." - конечно существует.
"..как ей его организовать? .." - все зависит от того, что Вы планируете регистрировать, дату ввода/изменения , пользователя,...
В любом случае задача выполнима.

Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 01.02.2011, 21:41   #3
erzi
 
Регистрация: 27.01.2011
Сообщений: 4
По умолчанию

Доброго времени суток Евгений.
Была база локально на машине, теперь хотят её сделать сетевой. В БД есть таблицы, состоящие из 20...25 столбцов. Изменения в них вносятся из ленточной формы (фактически пользователи проставляют в ней только дату выполнения, и если необходимо изменяют номер месяца). Руководство хочет видеть какой пользователь вносит дату или изменяет месяц выполнения (перенос месяца) с указанием даты внесения изменений.
erzi вне форума Ответить с цитированием
Старый 01.02.2011, 22:39   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте erzi.
Задача выполнима если пользователи сети подключаются к БД согласно допуску организованному в файле Рабочей группы, можно прочесть значение CurrentUser, иначе можно "выловить имя пользователя компутера, хорошо если он участник Домена, иначе на нескольких машинах (компутерах) разные пользователи могут войти в систему под одинаковыми именами, и задача теряет смысл.
добавив в таблицу пару полей (.LogTime - Дата/время, LogUser - Текстовый), разместив их на форме например в областях Заголовки или Примечания Формы, задав свойству Вывод на экран значение - Нет.
Ваша задача будет решаться подобным кодом :
Код:
Private Sub Form_AfterInsert()
    upUser
End Sub
Private Sub Form_AfterUpdate()
    upUser
End Sub
Sub upUser()
    Me.LogTime = Now
    Me.Log User = Environ("username")
End Sub
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 01.02.2011, 23:01   #5
erzi
 
Регистрация: 27.01.2011
Сообщений: 4
По умолчанию

Доброго времени суток Евгений.
Спасибо за ответ.
Подскажите пожалуйста где можно почитать про файл "Рабочей группы" (его создание). И ещё, если я правильно понимаю, то данный код позволяет зафиксировать только последнее изменение; а как можно фиксировать все изменения записи таблицы, которые будут вноситься? Насколько я себе это представляю, то, наверное, нужно создать дополнительную таблицу для ведения лога изменений, только совсем не представляю как можно это сделать :-(
P.S. Евгений, если Вас это не затруднит, то подскажите название хорошей книги по Access 2003.

Последний раз редактировалось erzi; 01.02.2011 в 23:04.
erzi вне форума Ответить с цитированием
Старый 02.02.2011, 21:48   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте erzi.
"..где можно почитать про файл "Рабочей группы" (его создание)..."
выложено очень много статей освещающих этот вопрос, например : здесь или здесь.
"..данный код позволяет зафиксировать только последнее изменение.."
действительно подобная конструкция не предназначена для ведения архива изменений, что-бы "..фиксировать все изменения .." необходимо разработать конструкцию безусловно создающую копию записи перед её изменением, эта копия может быть расположена как в другой таблице так и в текущей.
"..название хорошей книги по Access.." - для начала изучения MS Acces подойдет практически любой учебник дающий представление о объектах БД и VBA.
А для знакомства с SQL, рекомендую - Мартин Грубер - Понимание SQL 1.28 Мб, замечательная "Азбука".

Успехов Вам.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 02.02.2011, 21:55   #7
erzi
 
Регистрация: 27.01.2011
Сообщений: 4
По умолчанию

Евгений огромное спасибо!
Буду изучать
erzi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ведение лог-файла Vladya Общие вопросы C/C++ 5 16.03.2017 18:54
Чем отличается Очередь на базе списка от Очереди на базе массива? TwiX Общие вопросы C/C++ 7 16.02.2011 12:17
Ведение лога. Тупик. Одновременное обрашение двух обьектов к одному файлу. Человек_Борща Общие вопросы Delphi 6 20.12.2010 10:13
Как "в ручную" правильно организовать ведение истории в базе данных grenles БД в Delphi 2 18.09.2010 10:53
Как добавить ведение лога в свою программу? Человек_Борща Общие вопросы Delphi 12 20.02.2010 14:30