Запрос на добавление - нужно имя активной формы

Андрей Стадников
Дата: 09.09.2005 18:38:49
INSERT INTO log ( zz, data, [user] )
SELECT forms!base_main!zz, now(), forms!identification!u
WITH OWNERACCESS OPTION;

Есть такой вот запрос, который висит на событии "после обновления" записи на разных подчиненных формах в форме base_main. Суть его в том, чтобы вести лог: какая запись была изменена (forms!base_main!zz), когда (now()) и кем (forms!identification!u).
Нужно, чтобы в еще одно поле таблицы log, например, [forma], также автоматически заносилось имя формы (главной - base_main, или подчиненной - а их несколько), в которой именно была изменена запись. Причем менятся может не обязательно одно поле, а и несколько. На каждой подчиненной форме есть поле zz - это связка. Что дописать в запрос?

Или может можно сделать проще?

Заранее большие спасибочки ;)
Тяп-ляп
Дата: 09.09.2005 18:48:32
INSERT INTO log ( zz, data, [user], forma )
SELECT Me!zz, now(), forms!identification!u, Me.Name
Андрей Стадников
Дата: 09.09.2005 19:01:37
Так просит ввести значение параметра Me!zz и Me.Name :(
вадя
Дата: 09.09.2005 19:20:39
где у тебя запрос ?
откуда вызывается ?
как вызывается ?
Андрей Стадников
Дата: 12.09.2005 06:54:09
вадя
где у тебя запрос ?
откуда вызывается ?
как вызывается ?


Запрос отдельный, на добавление. Вызывается из формы (главной):

Private Sub Form_AfterUpdate()

DoCmd.OpenQuery "_for_log", acViewNormal, acEdit

End Sub

На форме несколько подчиненных форм.

В моем первом варианте, который я привел выше все работает только для главной формы, а если я в главную форму не вношу изменений, а вношу изменения в подчиненную форму, то выполнения запроса не происходит. Можно, конечно набросать на каждую подформу этих запросов по примеру главной, но должно же быть как-то проще?
Alexander G
Дата: 12.09.2005 07:16:10
На каждую форму ставим
Private Sub Form_AfterUpdate()
currentproject.connection.execute "INSERT INTO log ( zz, data, [user], forma ) VALUES (" &  Me!zz & ", #" & Format( now(), "mm\/dd\/yy hh:mm:ss") & "#, " & forms!identification!u & ", '" & Me.Name  & "')"
End Sub

как правильно формировать строку запроса из VBA см. FAQ
Андрей Стадников
Дата: 13.09.2005 16:30:31
Alexander G

признаю, что из VBA запрос формировал кое-как :(
но предложенный Вами вариант не работает, а именно - вообще в таблицу log не добавляет записи, но и ошибки не выдает...
Буду признателен, если объясните, в чем может быть дело.
Alexander G
Дата: 14.09.2005 00:45:36
Тогда сделайте по шагам.
dim strSQL as string
strSQL=  "INSERT INTO log ( zz, data, [user], forma ) VALUES (" &  Me!zz & ", #" & Format( now(), "mm\/dd\/yy hh:mm:ss") & "#, " & forms!identification!u & ", '" & Me.Name  & "')"
debug.print strSQL
currentproject.connection.execute strSQL
Сделайте изменения на форме, возьмите сформированную строку SQL в окне Immediate, вставьте в ее в SQL обычного запроса и покрутите, что не так с ним, пока не поймете, в чем ошибка при формировании строки.