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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2015, 23:12   #1
UR4N
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 21
По умолчанию Как реализовать Историю изменений

Обращаюсь снова к Гуру ACCESS...
Подскажите пожалуйста, как реализовать следующие моё хотение:
есть таблица, в ней строка с множеством столбцов.
Нужно, чтобы при изменение одного столбца [Местонахождение СИ] (выделено красным), определенные столбцы с этой строки (выделены синем), включая изменяемый, добавлялись в другую таблицу [Движение СИ]. ещё чтобы в эту запись также добавлялась дата и время добавления, И если это возможно, имя учетной записи под которой выполнен вход в windows.
Буду очень признателен за совет.

си.jpg

Последний раз редактировалось UR4N; 23.05.2015 в 11:17. Причина: вставка изображения
UR4N вне форума Ответить с цитированием
Старый 23.05.2015, 13:40   #2
UR4N
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 21
По умолчанию код

Код:
INSERT INTO [Движение прибора] ( [Заводской № СИ (СА)], [Тип  СИ], [Местонахождение СИ  (причина)] )
SELECT [СИ].[Заводской № СИ (СА)], [СИ].[Тип  СИ], [СИ].[Местонахождение СИ  (причина)]
FROM СИ;
Вот код который добавляет из одной таблицы в другую. Но мне надо не всё содержимое, а лишь одну строку в которой изменилась [Местонахождение СИ (причина)]
подскажите как это сделать?
UR4N вне форума Ответить с цитированием
Старый 24.05.2015, 13:46   #3
UR4N
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 21
По умолчанию

В этот раз желающих помочь просто радует...
КОД
Код:
Private Sub Местонахождение_СИ___причина__AfterUpdate()
Dim Движение_прибора As Recordset
    Set Движение_прибора = CurrentDb.OpenRecordset("Движение прибора")
        Движение_прибора.AddNew
            Движение_прибора("Заводской № СИ (СА)") = Me.Заводской_№_СИ__СА_
            Движение_прибора("Тип  СИ") = Me.Тип__СИ
            Движение_прибора("Местонахождение СИ  (причина)") = Me.Местонахождение_СИ___причина_
        Движение_прибора.Update
        Движение_прибора.Close
End Sub
Вот код на вставку строки с выбранными столбцами из одной таблици в другую, при изменении данных в форме. Код пишется в Событии изменяемого столбца в процедуре обработки события.
Вопрос про возможность добавления в таблицу данных о учетной записи под которой в данный момент совершен вход в windows ещё АКТУАЛЕН!!!
Подскажите пожалуйста...

Последний раз редактировалось Stilet; 24.05.2015 в 14:34.
UR4N вне форума Ответить с цитированием
Старый 24.05.2015, 14:38   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вопрос про возможность добавления в таблицу данных о учетной записи под которой в данный момент совершен вход в windows ещё АКТУАЛЕН!!!
http://www.ex-designz.net/apidetail.asp?api_id=134
Код:
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, _ nSize As Long) As Long
....
Private Sub Местонахождение_СИ___причина__AfterUpdate()
Dim strUserName As String
'Create a buffer
strUserName = String(100, Chr$(0))
'Get the username
GetUserName strUserName, 100
'strip the rest of the buffer
strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)

Dim Движение_прибора As Recordset
    Set Движение_прибора = CurrentDb.OpenRecordset("Движение прибора")
        Движение_прибора.AddNew
            Движение_прибора("Юзер") = strUserName 
            Движение_прибора("Заводской № СИ (СА)") = Me.Заводской_№_СИ__СА_
            Движение_прибора("Тип  СИ") = Me.Тип__СИ
            Движение_прибора("Местонахождение СИ  (причина)") = Me.Местонахождение_СИ___причина_
        Движение_прибора.Update
        Движение_прибора.Close
End Sub
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.05.2015, 15:13   #5
UR4N
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
http://www.ex-designz.net/apidetail.asp?api_id=134
Код:
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, _ nSize As Long) As Long
....
Private Sub Местонахождение_СИ___причина__AfterUpdate()
Dim strUserName As String
'Create a buffer
strUserName = String(100, Chr$(0))
'Get the username
GetUserName strUserName, 100
'strip the rest of the buffer
strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)

Dim Движение_прибора As Recordset
    Set Движение_прибора = CurrentDb.OpenRecordset("Движение прибора")
        Движение_прибора.AddNew
            Движение_прибора("Юзер") = strUserName 
            Движение_прибора("Заводской № СИ (СА)") = Me.Заводской_№_СИ__СА_
            Движение_прибора("Тип  СИ") = Me.Тип__СИ
            Движение_прибора("Местонахождение СИ  (причина)") = Me.Местонахождение_СИ___причина_
        Движение_прибора.Update
        Движение_прибора.Close
End Sub
Благодарю за помощь!
Но тут случилась какая то ошибочка с 64 битной моей WIN7
1.JPG
UR4N вне форума Ответить с цитированием
Старый 24.05.2015, 15:45   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

GetUserNameW видимо требует...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.05.2015, 20:13   #7
UR4N
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
GetUserNameW видимо требует...
Цитата:
Private Declare PtrSafe Function GetUserName Lib "advapi32.dll"
Нет, требует PtrSafe перед Function
UR4N вне форума Ответить с цитированием
Старый 24.05.2015, 21:01   #8
UR4N
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 21
По умолчанию код

Цитата:
Private Declare PtrSafe Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
....
Private Sub Местонахождение_СИ___причина__After Update()
Dim strUserName As String
'Create a buffer
strUserName = String(100, Chr$(0))
'Get the username
GetUserName strUserName, 100
'strip the rest of the buffer
strUserName = Left$(strUserName, InStr(strUserName, Chr$(0)) - 1)

Dim Движение_прибора As Recordset
Set Движение_прибора = CurrentDb.OpenRecordset("Движение прибора")
Движение_прибора.AddNew
Движение_прибора("Учетная запись сделавшего изменение") = strUserName
Движение_прибора("Заводской № СИ (СА)") = Me.Заводской_№_СИ__СА_
Движение_прибора("Тип СИ") = Me.Тип__СИ
Движение_прибора("Местонахождение СИ (причина)") = Me.Местонахождение_СИ___причина_
Движение_прибора.Update
Движение_прибора.Close
End Sub
Не пойму, что не так?
2.JPG
UR4N вне форума Ответить с цитированием
Старый 25.05.2015, 22:11   #9
UR4N
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 21
По умолчанию

Помогите пожалуйста....
UR4N вне форума Ответить с цитированием
Старый 26.05.2015, 22:40   #10
UR4N
Пользователь
 
Регистрация: 20.05.2015
Сообщений: 21
По умолчанию

Не ужели такая сложная задача?
UR4N вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как лучше сохранить историю редактирования таблицы? DiCanio Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 11.11.2013 08:19
Как посмотреть историю действий на почте mail.ру gugugu Безопасность, Шифрование 2 23.04.2013 15:08
как запоминать историю со скриптом на сайте ajax Lenya4 JavaScript, Ajax 1 17.06.2011 14:00
Как защитить записи от изменений??access2003. ww01031977 Microsoft Office Access 1 21.04.2010 17:17
Как удалить историю IP SeRhy Безопасность, Шифрование 3 12.03.2009 02:48