|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.07.2016, 18:14 | #1 |
Регистрация: 28.07.2016
Сообщений: 7
|
Учет изменений
есть таблица "Сотрудники" и ей аналогичная "Сотрудники_история". Записи добавляются через форму.
Сначала, на событии формы "Текущая запись" мы собираем в массив текущие значения полей. Затем при нажатии кнопки "сохранить" проверяем, если были внесены изменения (Me.Dirty = True), то в открытый рекордсет таблицы "Сотрудники_история" добавляем строку, куда переносим ВСЕ данные, ранее собранные в массив, и сохраняем запись. подскажите пожалуйста, как сделать чтобы в таблицу добавлялись уже измененные значения, а не старые. как правильно прописать recordset? получается нужно, чтобы после проверки он собрал новые значения вот сам код: Option Compare Database Dim Rec() Private Sub Form_Current() ReDim Rec(Me.Recordset.Fields.Count - 1) For i = 0 To UBound(Rec) Rec(i) = Me.Recordset.Fields(i) Next End Sub Private Sub Сохранить_Click() Dim UserName As String UserName = Environ("USERNAME") If Me.Dirty Then Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("Сотрудники _история", dbOpenDynaset) rst.AddNew For i = 0 To UBound(Rec) rst.Fields(i) = Rec(i) Next i rst.Update End If Me!ДатаИзменения = Date + Time Me!Автор = UserName DoCmd.RunCommand acCmdSaveRecord ReDim Rec(Me.Recordset.Fields.Count - 1) For i = 0 To UBound(Rec) Rec(i) = Me.Recordset.Fields(i) Next End Sub заранее благодарю) Последний раз редактировалось sharamet91; 28.07.2016 в 18:15. Причина: уточнение |
28.07.2016, 19:13 | #2 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Прикрепите тестовую базу с формой и таблицами.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
29.07.2016, 09:57 | #3 |
Регистрация: 28.07.2016
Сообщений: 7
|
вот... и может еще подскажите как сделать корректную работу при добавлении новых записей?
|
29.07.2016, 12:58 | #4 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
так пробовали?
Код:
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
29.07.2016, 13:08 | #5 |
Регистрация: 28.07.2016
Сообщений: 7
|
|
29.07.2016, 15:30 | #6 |
Участник клуба
Регистрация: 12.08.2010
Сообщений: 1,077
|
не увидела объявления переменной REC
а ведь она формируется в одной процедуре, а применяется в другой должно быть внешнее объявление типа Код:
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание Последний раз редактировалось shanemac51; 29.07.2016 в 15:32. |
29.07.2016, 16:02 | #7 |
Регистрация: 28.07.2016
Сообщений: 7
|
|
29.07.2016, 16:05 | #8 |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
shanemac51 в базе Rec() описан
Код:
Код:
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
29.07.2016, 16:22 | #9 |
Регистрация: 28.07.2016
Сообщений: 7
|
отлично, заработало)
но теперь при добавлении новой записи и нажатии кнопки "сохранить" все обновляется - форма становится пустой. и соответсенно вылетает ошибка |
29.07.2016, 19:32 | #10 | |
2 the Nation Glory
Старожил
Регистрация: 27.05.2014
Сообщений: 3,289
|
Цитата:
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы. |
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Учет времени | ЯковЗимин | Microsoft Office Excel | 2 | 29.07.2014 18:00 |
БД Учет оборудования | a9x | Microsoft Office Access | 0 | 02.06.2013 00:58 |
ИС Учет ПК и ПО на C# | aliendeath | Фриланс | 0 | 05.05.2013 16:50 |
Учет задолженности | SoLNiFFFKo | Помощь студентам | 2 | 05.04.2013 15:55 |