Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / update в sub-форме / 7 сообщений из 7, страница 1 из 1
26.10.2004, 12:59:55
    #32754688
Галка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update в sub-форме
Обращаюсь к Sub форме, чтобы добавить запись в таблицу

Dim s As String
Dim frm As Form_frmQryStaff
Set frm = Form_frmQryStaff
s = "insert into gaga_tblARM (id) values (" & frm.id.Value & ")"
DoCmd.RunSQL s
Me.Requery
End Sub

после того как добавлена запись и пРоявились нужные значения, необходимо проапдейтить одно поле по с помощью этих появившихся данных... в этом и ЗАГВОЗДКА
на какое событие это можно повесить?
3 часа потратила, чтоб повесить апдейт внутри инсерта... не получилось :-(

а когда ставила
Private Sub cmdDobZapis1_Click()

Dim s As String
Dim frm As Form_frmQryStaff
Set frm = Form_frmQryStaff
s = "insert into gaga_tblARM (id) values (" & frm.id.Value & ")"
DoCmd.RunSQL s
Me.Requery

s = "update gaga_tblARM set nARM=(SELECT TOP 1 str(struct_nkey) FROM_ dbo_ent_staff AS des WHERE des.id = " & frm.id.Value & ")"
DoCmd.RunSQL s
Me.Requery
пишет, что операция должна использовать обновляемый запрос..
подскажите, чо делать... пожалуйста

End Sub
...
Рейтинг: 0 / 0
26.10.2004, 14:54:32
    #32755067
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update в sub-форме
Галкапочему не работает
Dim s As String
s = "insert into gaga_tblARM (id, nArm) values (" & frm.id.Value & ", " & "SELECT TOP 1 str(dbo_ent_staff.struct_nkey) from dbo_ent_staff where dbo_ent_staff.id = " & frm.id.Value & ")"
DoCmd.RunSQL s
вылетает ошибка, указывающая на неверность этого запроса
(SELECT TOP 1 str(dbo_ent_staff.struct_nkey) from dbo_ent_staff where dbo_ent_staff.id = " & frm.id.Value & ")" Geo
А это не то же самое? Галка Geo
А это не то же самое?
то же самое :-(
хотела упростить вопрос
А чего же не здесь? :(
...
Рейтинг: 0 / 0
26.10.2004, 14:58:39
    #32755081
Галка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update в sub-форме
Geo Галкапочему не работает
Dim s As String
s = "insert into gaga_tblARM (id, nArm) values (" & frm.id.Value & ", " & "SELECT TOP 1 str(dbo_ent_staff.struct_nkey) from dbo_ent_staff where dbo_ent_staff.id = " & frm.id.Value & ")"
DoCmd.RunSQL s
вылетает ошибка, указывающая на неверность этого запроса
(SELECT TOP 1 str(dbo_ent_staff.struct_nkey) from dbo_ent_staff where dbo_ent_staff.id = " & frm.id.Value & ")" Geo
А это не то же самое? Галка Geo
А это не то же самое?
то же самое :-(
хотела упростить вопрос
А чего же не здесь? :(

блин, шестой час не могу проапдейтить поле в sub-форме при добавлении записи в таблицу, на основании к-ой сделана sub-форма.

может кто ответит на вопрос: всё переделать и не работаться с sub-формами или грызть дальше? :-)
...
Рейтинг: 0 / 0
26.10.2004, 15:06:15
    #32755110
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update в sub-форме
гхм, а gaga_tblARM - это таблица с источником данных формЫ ? (иначе, смекаю я себе, зачем там рекваери). Т.е. форма _связанная_?
а если так, зачем вы руками посылаете запросы из _связанной_ формы.? (аксес это вроде умеет сам). Пошлите данные форме (в ее контрол, или, на худой конец, в ее рекордсет-клон), а она вставит все по месту.

Если нет - (форма отвязанная), т.е. надо самому следить за актуальностью всех данных и самому формировать запросы на вставку/обновления и т.п. - не выполняйте их аксесом (ограничиваясь его ограничениями на синтаксис), а шлите прямо SQL серверу Execute-ом.
...
Рейтинг: 0 / 0
26.10.2004, 15:41:16
    #32755212
Галка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update в sub-форме
4321гхм, а gaga_tblARM - это таблица с источником данных формЫ ? (иначе, смекаю я себе, зачем там рекваери). Т.е. форма _связанная_?
а если так, зачем вы руками посылаете запросы из _связанной_ формы.? (аксес это вроде умеет сам). Пошлите данные форме (в ее контрол, или, на худой конец, в ее рекордсет-клон), а она вставит все по месту.

.
Запрос для гл. формы
SELECT dbo_ent_staff.id, dbo_ent_staff!sur_name & " " & dbo_ent_staff!name & " " & dbo_ent_staff!patr_name AS ФИО, dbo_areas!town & " , " & dbo_areas!street & " , " & dbo_areas!building AS адрес, dbo_phone_book.room, dbo_phone_book.phone01, dbo_phone_book.lphone01, dbo_phone_book.mphone01, dbo_phone_book.email01, dbo_ent_staff.deleted
FROM (dbo_areas RIGHT JOIN dbo_phone_book ON dbo_areas.id = dbo_phone_book.area_id) RIGHT JOIN dbo_ent_staff ON dbo_phone_book.id = dbo_ent_staff.id
ORDER BY dbo_ent_staff!sur_name & " " & dbo_ent_staff!name & " " & dbo_ent_staff!patr_name DESC , dbo_areas!town & " , " & dbo_areas!street & " , " & dbo_areas!building;

Запрос для подчинённой
SELECT dbo_ent_structure.nkey, dbo_ent_staff.deleted, dbo_ent_staff.id, gaga_tblARM.ARMID, gaga_tblARM.nARM, gaga_tblARM.AdressID, gaga_tblARM.nKomn, gaga_tblARM.id
FROM (dbo_ent_structure INNER JOIN dbo_ent_staff ON dbo_ent_structure.nkey = dbo_ent_staff.struct_nkey) INNER JOIN gaga_tblARM ON dbo_ent_staff.id = gaga_tblARM.id
ORDER BY dbo_ent_staff.sur_name;

В гл. форме стоит фильтр для ФИО
Мне надо добавить запись в подч. Форму и сгенерировать nARM

В принципе я понимаю, что получить этот nARM я могу после того, как увижу dbo_ent_structure.nkey и gaga_tblARM.id. Но чтоб им мне увидеть, то в подч. Форме надо выбрать id .

Добавляю:
s = "insert into gaga_tblARM (id) values (" & frm.id.Value & ")"
для того, чтобы после добавления в табл и произошедшего реквери в подч. Форме добавилась запись.
Не спорю, что это можно сделать проще.

Когда генерировала nARM в простой форме- всё было без проблем.
...
Рейтинг: 0 / 0
26.10.2004, 16:24:04
    #32755326
4321
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update в sub-форме
гхкм...
...нет, я конечно умею читать, но прикидывать вашу структуру данных по приведенным запросам мне как-то лениво. И тем более разбирать задачу предметно по обрывкам сведений. (хоть на пальцах раскажите - сколько объектов, как связаны, что хотите куда воткнуть. Физ смысл, бишь.)

Наводящий вопрос: Вкладочка данные подчиненной формы у вас заполнена? Т.е. чему там равны свойства «Подчиненные поля» (LinkChildFields), «Основные поля» (LinkMasterFields)? Почему у вас подчиненные поля в новой записи не заполняются формой?

аха, я кажется начинаю догадыватья что просто ткнуть туда новую запись (и заполнять поля _формы_ руками/кодом) вы почему-то не можете (чтобы форма сама навставляла значения подчиненных полей в запись подчиненной формы). Какие-то поля связи запроса подчиненной формы для новой записи не можете задать? ...Кажется это можно, если в запросе есть оба поля (с обеих сторон INNER JOIN).

(Предпочитаю, правда, писать (формами) в таблицы, на худой конец - в LEFT JOIN-ы 1-1 (т.е. в структуры с редкими включениями дополнительных полей) а не в джойны 1-много - там много чего можно понаделать лишнего и некрасивого. Хотя после модификации (нормализации) данных бывает и такое - когда таблица старая заменяется на вью 1-8, а интерфейс перерисовывать не хочется). (С удалением записей, помнится, бывают неожиданности - хочется удалить только запись на стороне "много" , ан ..., т.ч. приходится эти полеты разбирать програмно).
...
Рейтинг: 0 / 0
26.10.2004, 17:25:30
    #32755525
Галка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update в sub-форме
4321гхкм...
).

спасибо за участие, мне всегда приятно показать то, о чём я хотела узнать:
Private Sub cmdDobZapis1_Click()

Dim s As String
Dim strNARM As String
Dim v
Dim v1
Dim frm As Form_frmQryStaff
Set frm = Form_frmQryStaff

s = "select top 1 struct_nkey from dbo_ent_staff where id=" & frm.id.Value
v = CurrentProject.Connection.Execute(s).GetRows

s = "select top 1 nARM from gaga_tblARM where id=" & frm.id.Value & " order by nARM desc"

If CurrentProject.Connection.Execute(s).BOF = False And CurrentProject.Connection.Execute(s).EOF = False Then v1 = CurrentProject.Connection.Execute(s).GetRows: strNARM = CStr(v1(0, 0)): strNARM = CStr(v(0, 0)) & "-" & CStr(frm.id.Value) & "-" & CStr(CInt(Right(strNARM, 1)) + 1) Else strNARM = CStr(v(0, 0)) & "-" & CStr(frm.id.Value) & "-1"

s = "insert into gaga_tblARM (id, nARM) values (" & frm.id.Value & ",'" & strNARM & "')"

DoCmd.RunSQL s

Me.Requery

End Sub


надеюсь с каждым разом сотрясать воздух буду более конкретнее!!! :-)))
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / update в sub-форме / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]