Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.58/76: Рейтинг темы: голосов - 76, средняя оценка - 4.58
1 / 1 / 0
Регистрация: 27.02.2016
Сообщений: 32

Учет изменений БД (лог?)

14.03.2016, 09:11. Показов 16138. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Такой вопрос, может быть кто сталкивался:

каким образом можно отслеживать изменения в БД Access, вести лог изменений. Или сравнивать рекордсет с массивом в Excel? Какие есть варианты и в сторону чего смотреть?

Пока что реализована простая авторизация через эксель в БД/подгрузка/запись по условиям.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.03.2016, 09:11
Ответы с готовыми решениями:

Лог изменений
сорри если вопрос обсуждался, я в базах не силён и поиском внятного ничего не нашёл. суть такова: есть база данных по работе (учёт...

Учет изменений
Подскажите пожалуйста, есть бд с готовыми данными которые при обновлении должны обновляться в главной таблице и история изменения...

Regedit лог изменений реестра
Есть лог изменений реестра, внесенных посредством regedita?

43
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
14.03.2016, 09:20
В "Microsoft Access 2010 PROGRAMMER’S REFERENCE" есть общий пример, использующий макросы данных для отслеживания изменений в таблицах. Если Access 2010 и старше - сработает.
2
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
14.03.2016, 10:14
Цитата Сообщение от Remphan Посмотреть сообщение
каким образом можно отслеживать изменения в БД Access, вести лог изменений
Создать таблицу с логами и глобальную функцию для записи логов, а на событиях форм использовать эту функцию. Я так делаю. Фиксирую изменения, где надо удаления и т.д.

Добавлено через 7 минут
вот пример:
Протоколирование изменений в формах
1
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
14.03.2016, 10:31
Что-то ссылка ничего мне не открывает
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
14.03.2016, 10:40
я вот не могу понять как это возможно?
а эта? Учет изменений БД (лог?)

вот не на сообщение а на всю тему:
"https://www.cyberforum.ru/ms-access/thread1555639-page2.html"
0
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
14.03.2016, 11:11
Эта работает

Добавлено через 30 минут
Теперь и первая работает
0
14.03.2016, 11:42

Не по теме:

ай нехарашё!

0
1 / 1 / 0
Регистрация: 27.02.2016
Сообщений: 32
14.03.2016, 12:30  [ТС]
Спасибо! Тут еще одну ссылку по пути предложили. Все что нужно, - 1 таблица и 1 функция.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
14.03.2016, 12:53
Цитата Сообщение от Remphan Посмотреть сообщение
Спасибо! Тут еще одну ссылку по пути предложили. Все что нужно, - 1 таблица и 1 функция.
Вариант гораздо слабее, чем вариант с макросами таблиц.

1) Записываются только изменения уже существующих записей. Добавляения и удаления не записываются.

2) Записываются только изменения, выполняемые пользователем через форму.
Изменения, вносимые программой, запросом и т.д. не записываются.

3) Изменения записываются в лог, даже если на самом деле они не произошли (были отменены, например, программно), или пользователь исправил поле, а затем отменил правку записи. Изменения будут записаны столько раз, сколько пользователь входил в поле вносил правку, даже если он не покидал запись и вообще не сохранил ее в итоге.
2
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
14.03.2016, 13:47
Цитата Сообщение от texnik-san Посмотреть сообщение
2) Записываются только изменения, выполняемые пользователем через форму.
Изменения, вносимые программой, запросом и т.д. не записываются.
Очень интересный пункт. Есть пример реализации?
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
14.03.2016, 14:15
Цитата Сообщение от corbis Посмотреть сообщение
Есть пример реализации?
Выше упоминалась книга, в которой он есть (книга на английском, перевода мне не попадалось).
1
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
14.03.2016, 14:27
Цитата Сообщение от corbis Посмотреть сообщение
Очень интересный пункт. Есть пример реализации?
Лично у меня не может быть примера, т.к. у меня 2007 аксес - в нем еще нет макросов таблиц.

Но, по моим представлениям, макросы таблиц должны срабатывать независимо от того, каким способом меняются в таблице данные - пользователем, запросом или программой. Поправьте меня, если я не права.

Ну и на форуме уже кто-то пример с макросами таблиц выкладывал.
1
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
14.03.2016, 14:54
спасибо за первую ссылку на макросы данных


Кликните здесь для просмотра всего текста
MACROS стр 63
One area with major changes in the new version of Access is macros. Not only did the macro interface get a facelift (as we mentioned earlier), but it was revamped and upgraded to include table-level triggers and a rich functionality previously available only through VBA coding. Access 2010 offers two types of macros: UI macros and Data macros. We discuss them brie? y here and refer you to Chapter 4 for a more detailed explanation of how to use them.
-----------------
Одной из областей с большими изменениями в новой версии Access является макросы. Мало того, что интервьюер макро Лицо получить подтяжку лица (как мы уже упоминали ранее), но он был модернизирован и обновлен, чтобы включить на уровне таблицы триггеры и богатые функциональные возможности, ранее доступные только через кодирование VBA.
Access 2010 предлагает два типа макросов:
--макросы UI и
--макросы данных.

Мы обсудим их кратко здесь и направить вас к Глава 4 для более подробного объяснения того, как использовать их.
=============================


UI Macros
UI macros are what we used to call macros in previous versions of Access. However, they not only have a new name, but they also feature a number of notable improvements.
The UI macro Editor, shown in Figure 2-16, provides an interface that resembles a code editor complete with complex logic, error handling, and looping through records. And, it provides the added convenience of collapsible segments. The redesigned UI macros allow you to create a rich and productive UI for your users to interact with the data. UI macros can be used in combination with Data macros to report back validation rule status and errors that may have occurred.
---------------
UI Макросы
макросы UI это то, что мы привыкли называть макросы в предыдущих версиях Access. Тем не менее, они не только иметь новое имя, но они также имеют ряд заметных улучшений.
Макрос редактор UI, показанный на рисунке 2-16, обеспечивает интерфейс, который напоминает редактор кода в комплекте с сложной логики, обработки ошибок и пробегаем по записям. И, это обеспечивает дополнительные удобство складных сегментов. Реконструированные макросы пользовательского интерфейса позволяют создать богатую и продуктивную пользовательский интерфейс для ваших пользователей, чтобы взаимодействовать с данными. макросы пользовательского интерфейса могут быть использованы в сочетании с данными макросы сообщить состояние правил проверки и ошибок, которые могут иметь место.
=================

Data Macros
Data macros can serve as a convenient vehicle to help implement business rules in your applica-
tion. Similar to using Triggers in SQL Server, (discussed in Chapter 21), you can use Data macros to attach logic to record events (also referred to as table events), centralizing the logic in one place, the table, where forms that are bound to the table inherit that logic.
Data macros also enable you to manage calculated ? elds, ensuring that the current data stored is always the most accurate. The table events that can be used to set the macros are BeforeChange, BeforeDelete, AfterInsert,AfterUpdate, and AfterDelete. Figure 2-17 shows the available actions for the AfterInsert event. You can also set your macro as a Named macro and associate it with a table. The Named [Data] Macro can be called from other Data macros or UI macros and from VBA code so it can easily be leveraged and reused through the application.
---------------------
макросы данных могут служить в качестве удобного транспортного средства, чтобы помочь реализовать бизнес-правила в вашем приложении. Аналогично с помощью триггеров в SQL Server, (обсуждается в главе 21), вы можете использовать макросы данных, чтобы прикрепить логику для записи событий (также называемые таблицы событий), централизовать логику в одном месте, за столом, где формы, которые связаны к столу наследуют эту логику.
макросы данных также позволяют управлять вычисляемых полей, гарантируя, что текущие данные, сохраненные всегда является наиболее точным. В таблице событий, которые могут быть использованы для установки макросов являются BeforeChange, BeforeDelete, после вставки, после обновления, и после Delete.
Рисунок 2-17 показывает доступные действия для события AfterInsert. Вы также можете настроить свой макрос как именованный макрос и связать его с таблицей. Названный [Data] Макрос может быть вызвана из других макросов данных или макросов UI и из кода VBA, так что легко могут быть использованы и повторно через приложение.

============================



FIGURE 2-16
One key factor to remember is that Data macros do not have a user interface. So although you can interact with the Data macro and pass parameters to it from a UI macro, a Data macro cannot open a form or a report. However, you can use UI macros to process the errors returned by the Data macros and display the error to the user. The errors are also written to the UsysApplicationLog table in your database.
----------------
Одним из ключевых факторов, чтобы помнить о том, что макросы данных не имеют пользовательского интерфейса. Так что, хотя вы можете взаимодействовать с макро-данных и передать ему параметры из макроса пользовательского интерфейса, макро данных не может открыть
форма или отчет. Тем не менее, вы можете использовать макросы UI для обработки ошибок, возвращаемых данных macROS и отобразить сообщение об ошибке пользователю. Ошибки также записываются в таблицу UsysApplicationLog в вашей базе данных.
======================================== =
.As we mentioned earlier, data macros can also be used to calculate and store de-normalized values in calculated ? elds in a table. Despite the apparent con? ict with designing a fully normalized database, there are bene? ts to storing calculated values in a table, such as improved performance for data retrieval. Calculated columns and Data macros may prove to be invaluable functional alternatives to aggregate queries which are not supported Web databases
-------------------
Как мы уже упоминали ранее, макросы данных также могут быть использованы для расчета и сохранения де-нормированные значения в расчетных фи полей в таблице. Несмотря на кажущуюся конфликт с разработки полностью нормализованы данные-база, есть выгода тс к хранению расчетных значений в таблице, такие как улучшенная производительность для поиска данных. Вычисляемые столбцы и макросы данных могут оказаться неоценимыми функциональные альтернативы агрегатные запросы, которые не поддерживаются веб-базы данных
Миниатюры
Учет изменений БД (лог?)  
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
14.03.2016, 14:59
С помощью макросов данных можно логировать изменения, запрещать пользователям изменять таблицы, определенные поля в таблицах и т.п., но есть один момент, снижающий ценность этих возможностей - все это работает в неразделенной базе (кроме логирования без авторства).
Как определить в базе с таблицами данных, пользователя, который вносит изменения, ... непонятно.
2
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
14.03.2016, 15:23
Хороший вопрос.

Есть просьба: у кого свежий офис с макросами таблиц, поэкспериментируйте, пожалуйста, с последовательностью обработки событий формы и макроса данных.

Скажем, на каждое из событий в таблицу со счетчиком и текстовым полем добавлять запись с названием события в текстовом поле. Потом открыв таблицу можно будет увидеть, что в каком порядке произошло.

Далее придумаем, как скомбинировать макросы таблицы и обработку событий форм.
0
Модератор
Эксперт MS Access
 Аватар для shanemac51
12231 / 5078 / 814
Регистрация: 07.08.2010
Сообщений: 14,937
Записей в блоге: 4
14.03.2016, 15:26
добавка на закуску
Есть 86 макро действия в Access 2010, в том числе те, которые являются опасными и не работают в службах Access.
При добавлении в аргументы, которые могут быть использованы с действием RunMenuCommand, сотни различных действий могут быть определены в макросе.
В следующей таблице приведены некоторые из макро действий, которые наиболее часто используются.
ACTION NAME ACCESS 2010ACTION NAME ACCESS 2007DESCRIPTIONNEW?WEB? ОПИСАНИЕ
ApplyFilterApplyFilterApplies a filter to the currently open object.NoNo Применяет фильтр к текущему открытому объекту.
BrowseToN/ANavigates to the specified form or report.YesYes Переходит к указанной формы или отчета.
Close DatabaseClose DatabaseCloses the database.NoNo Закрывает базу данных.
CloseWindowCloseCloses the specified object window.NoYes Закрывает указанное окно объекта.
DeleteRecordRunCommand DeleteRecordDeletes the current record.NoYes Удаляет текущую запись.
Display Hourglass PointerHourglassSets or clears the hourglass cursor.NoNo Устанавливает или сбрасывает песочных часов курсора.
       
       
EMail Database ObjectSendObjectSends an object in the database as an attachment in an e-mail.NoNo Отправляет объект в базе данных в качестве вложения в сообщение электронной почты.
Export With FormattingOutputToExports an object in the database in the specified format.NoNo Экспорт объекта в базе данных в указанном формате.
GoToControlGoToControlMoves focus to the specified control.NoYes Перемещает фокус указанного элемента управления.
GoToRecordGoToRecordMoves to the specified record as an offset of the current record.NoYes Переход к указанной записи как смещение текущей записи.
Import Export DataTransfer DatabaseImports or exports data or objects from another Access database.NoNo Импорт или экспорт данных или объекты из другой базы данных Access.
Import Export SpreadsheetTransfer SpreadsheetImports or exports data or objects from Excel.NoNo Импорт или экспорт данных или объекты из Excel.
Import ExportTextTransferTextImports or exports data from text files.NoNo Импорт или экспорт данных из текстовых файлов.
Import SharePoint ListTransfer SharePointListImports or links data from SharePoint.NoNo Импорт или ссылки данные из SharePoint.
MessageBoxMsgBoxDisplays a message to users.NoYes Отображает сообщение для пользователей.
OnErrorN/ADefines behavior for error handling.NoYes Определяет поведение для обработки ошибок.
OpenFormOpenFormOpens the specified form.NoYes Открывает указанную форму.
OpenReportOpenReportOpens the specified report.NoYes Открывает указанный отчет.
PrintPreviewRunCommand PrintPreviewOpens Print Preview for the current object.NoNo Открывает Print Preview для текущего объекта.
       
       
QuitAccessQuitExits Access.NoNo Выход доступа.
Remove AllTempVarsRemove AllTempVarsClears the TempVars collection.NoYes Очищает коллекцию TempVars.
Remove TempVarRemove TempVarRemoves the specified TempVar from the TempVars collection.NoYes Удаляет указанные TempVars из коллекции TempVars.
RequeryRequeryRe-executes the query for the current object.NoYes Повторное выполнение запроса для текущего объекта.
RunCodeRunCodeRuns the specified VBA user-defined function.NoNo Выполняет указанную VBA пользовательскую функцию.
Run DataMacroN/ARuns the specified data macro.YesYes Выполняет указанный макрос данных.
Run MacroRunMacroRuns the specified macro.NoYes Выполняет указанный макрос.
Run Menu CommandRun CommandRuns the specified command.NoYes Выполняет указанную команду.
RunSaved ImportExportRun Saved ImportExportRuns the specified import or export specification.NoNo Выполняет указанную импорта или экспорта спецификации.
SaveRecordRunCommand SaveRecordSaves the current record.NoYes Сохранение текущей записи.
SearchForRecordSearch ForRecordSearches for the specified record using a SQL WHERE clause.NoNo Осуществляет поиск указанной записи с использованием SQL предложения WHERE.
SetFilterN/AApplies a filter to the specified control or current object.YesYes Применяет фильтр для указанного элемента управления или текущего объекта.
Set LocalVarN/ACreates or sets a local variable.YesYes Создает или задает локальную переменную.
0
Эксперт MS Access
 Аватар для alvk
7459 / 4592 / 302
Регистрация: 12.08.2011
Сообщений: 14,380
14.03.2016, 15:33
Цитата Сообщение от texnik-san Посмотреть сообщение
1) Записываются только изменения уже существующих записей. Добавляения и удаления не записываются.
там просто пример, причём копия моего. Записывать можно всё, абсолютно, ограничение - фантазия разработчика.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
14.03.2016, 15:59
Цитата Сообщение от alvk Посмотреть сообщение
там просто пример, причём копия моего. Записывать можно всё, абсолютно, ограничение - фантазия разработчика.
Мы или разные примеры обсуждаем, или я чего-то не понимаю. Я прокомментировала конкретный код, который "Все что нужно, - 1 таблица и 1 функция". Именно эту функцию.

Как функция, принимающая в качестве обыязательного аргумента КОНТРОЛ

Visual Basic
1
Sub AuditTrail(frm As Form, recordid As Control)
и обращающаяся в коде к свойству этого контрола .OldValue может обрабатывать событие "вставка записи", "удаление записи", или любое событие контрола, кроме "до изменения"?
0
73 / 47 / 9
Регистрация: 24.03.2014
Сообщений: 470
14.03.2016, 19:51
Цитата Сообщение от ltv_1953 Посмотреть сообщение
С помощью макросов данных можно логировать изменения, запрещать пользователям изменять таблицы, определенные поля в таблицах и т.п., но есть один момент, снижающий ценность этих возможностей - все это работает в неразделенной базе (кроме логирования без авторства).
Как определить в базе с таблицами данных, пользователя, который вносит изменения, ... непонятно.
Если не ошибаюсь, одним из возможных решений для разделенных баз данных, особенно в случае Акса < 2010 версии (а таких, я думаю, большинство, ибо лучший акс - это 2003), является триггер Бенедикта. В сети о нем много, сам юзал в паре проектов.
0
Эксперт MS Access
 Аватар для ltv_1953
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
14.03.2016, 20:11
Цитата Сообщение от Eujine Посмотреть сообщение
является триггер Бенедикта
Вроде бы не ловит удаления, да и с авторизацией действий ... .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.03.2016, 20:11
Помогаю со студенческими работами здесь

Пожалуйста проверьте правильно ли я составила лог.функцию по лог.схеме?
Для заданной схемы, составленной из трех логических элементов ЛЭ1, ЛЭ2, ЛЭ3 записать логическое выражение и составить таблицу истинности. ...

Лог коммутатора как перевести лог
Добрый день! Помогите пожалуйста перевести лог. Oct 12 14:33:49.378 MSK: %SEC-6-IPACCESSLOGDP: list Access_From_Guest_VLAN denied...

По лог.схемам определить лог.функцию
Ребят, собирать вроде научился, а расшифровать как-то туго даётся ибо с касяками расшифровываю.

Учет средств измерения (учет приборов для метрологов)
Доброго всем времени суток. Столкнулся с такой проблемой как учет средств измерения (приборы КИПиА), раньше их было несколько десятков и...

Лог ошибок и лог действий
Я специально делаю программу с ошибкой. И хочу сделать лог действий и лог ошибок чтобы знать что произошло и при каких обстоятельствах...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru