delete+update

login16
Дата: 20.02.2008 09:27:49
Привет.
Необходимо произвести удаление и в этом же запросе обновить другие таблицы. Через обхеденение или перекрестный запрос?

Удаление:
DELETE samolet.*, samolet.name
FROM samolet
WHERE (((samolet.id_samolet)=[Введите ID самолета]))

Обновление:
UPDATE reis SET id_samolet = DMax("id_samolet","samolet") WHERE id_samolet=4
Karfaqen
Дата: 20.02.2008 09:36:50
Вы хотите удалить и обновить одним запросом?
Делайте последовательным выполнением двух запросов, например, программно:

Currentdb.Execute "DELETE..."
Currentdb.Execute "UPDATE..."
login16
Дата: 20.02.2008 09:39:58
Karfaqen
Вы хотите удалить и обновить одним запросом?
Делайте последовательным выполнением двух запросов, например, программно:

Currentdb.Execute "DELETE..."
Currentdb.Execute "UPDATE..."


Необязательно одним...я просто не знаю как это реализуется вообще. Т.е. чтобы в списке запросов был один запрос, в котором 2 скуль-кода: дуаление и обновление....

Currentdb.Execute "DELETE..."
Currentdb.Execute "UPDATE..."

Это в sql конструкторе запроса там написать?
Karfaqen
Дата: 20.02.2008 10:05:45
Это в sql конструкторе запроса там написать?
Нет, это фрагмент VB-кода. В общем модуле процедуру создайте, и в ней эти две строчки напишите. Потом вызывайте эту процедуру - по кнопке например. Т.е. текст запроса у вас будет прямо в коде процедура, и отдельный запрос можно не создавать вообще.
login16
Дата: 20.02.2008 10:08:48
Karfaqen
Это в sql конструкторе запроса там написать?
Нет, это фрагмент VB-кода. В общем модуле процедуру создайте, и в ней эти две строчки напишите. Потом вызывайте эту процедуру - по кнопке например. Т.е. текст запроса у вас будет прямо в коде процедура, и отдельный запрос можно не создавать вообще.

Мысль понял.
А как с помощью запроса реализовать?
Объеденение/перекрестный?
Karfaqen
Дата: 20.02.2008 10:13:23
А как с помощью запроса реализовать?
Ну это и есть "с помощью запроса". Просто у вас запросов два, и выполняются программно.
login16
Дата: 20.02.2008 10:15:09
Karfaqen
А как с помощью запроса реализовать?
Ну это и есть "с помощью запроса". Просто у вас запросов два, и выполняются программно.


А если один сделать запрос с удалением и обновлением? Т.е. переписать два моих запроса в один?
Karfaqen
Дата: 20.02.2008 10:16:07
В одном запросе нельзя выполнить сразу два разных действия (удаление и обновление, как в вашем случае). А то, о чем вы спрашиваете (Объеденение/перекрестный?) - это вообще из другой оперы, это запросы для выборки данных
login16
Дата: 20.02.2008 10:35:32
Возник еще один вопрос:

CurrentDb.Execute "DELETE samolet.*, samolet.name FROM samolet WHERE (((samolet.id_samolet) = 17))"

Это удадление где ид самолета = 17....
На форме разметил чекбокс с выпадашками название самолетов (samolet.name).
Как в запросе: "CurrentDb.Execute "DELETE samolet.*...."
Подставить в условие не конкретный ид, а ИД который того самолета который выберет юзер
: "WHERE (((samolet.id_samolet) = 17))"
Karfaqen
Дата: 20.02.2008 10:43:26
Если этот код в той же форме "с выпадашками", то можно в таком духе
CurrentDb.Execute "DELETE * FROM samolet WHERE id_samolet= " & Me("id_samolet")
Me("id_samolet") - это обращение к полю со списком в вашей форме