|
вложенный select в update
|
|||
---|---|---|---|
#18+
Доброй ночи, форумчане! Возник вопрос: access 2007 не понимает запросов на обновление с вложенным select-ом и "ссылками" на разные таблицы? в частности, мой тестовый код: Код: plaintext 1.
выдает ошибку: "В операции должен использоваться обновляемый запрос!" как же мне тогда значения из одной таблицы в другую перекинуть? или может, у меня синтаксис неправильный? помогите, любым советом!!!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 03:01 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
Kyubi, Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 03:11 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
Kyubi, или так Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 03:13 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
Скукотища, в первом варианте он мне выдает ошибку синтаксиса update, во втором - все то же сообщение: "В операции должен использоваться обновляемый запрос!" имхо с ХП на sql все было бы гораздо проще.. что-нибудь еще посоветуйте, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 05:23 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
Kyubi, в первом варианте действительно ошибка синтаксиса, надо: Код: plaintext 1. 2. 3. 4.
Посоветовать могу выполнить запрос: Код: plaintext
когда одной записи в таблице [книги] соответствует более одной записи в таблице [ostatok], и обновление будет неоднозначным (читай - невозможным). "Дубикаты" записей устранить, пробовать апдейт снова. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 07:17 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
Kyubi, в предидущем посте открывающую скобку в запросе не там поставил. Надо перед select Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 07:30 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
дублей нет, да я и так знаю, что их нет (содержимое таблиц перед глазами), а этот долбанный access всё твердит, что запрос должен быть обновляемым. прочитала на стороннем форуме, что в секции update "обновление можно делать только по данным одной таблицы" и что "в Access нельзя использовать подзапросы в команде UPDATE" бла-бла-бла "Access слишком упрощён". может, он и правда настолько упрощен? блин, ну, должен ведь быть способ обновить поле таблицы значениями из другой таблицы.. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 14:49 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
попробуй так такая конструкция работает в MSSQL SERVER может в аксесе что то аналогичное Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 14:53 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
Да, Access неважно работает с подзапросами.. А что Вам мешает просто выполнить два запроса подряд, то есть отдельно select и потом update на его результате? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 14:56 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
Kyubiв частности, мой тестовый код: Код: plaintext 1.
выдает ошибку: "В операции должен использоваться обновляемый запрос!" в самомом "пиковом случае", раз уж всё "проистекает" в Акс-е, можно через DLookup типа так Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 15:03 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
ё, спасибо за идею, но возник вопрос: Код: plaintext 1.
выдает ошибку: "Необходимо ввести значение в поле книги.текущее_количество" при этом, если я переписываю это выражение как: Код: plaintext 1.
все успешно отрабатывается, только во все строки поля книги.текущее_количество подставляется, соответственно, одно и то же значение из ostatok.ost", где ostatok.код_книги=2 ВОПРОС: 'код_книги=??????' как в это выражение подставить книги.код_книги (если прям так и пишу 'код_книги=книги.код_книги' - выдает ошибку "Неизвестный") что у меня не так с синтаксисом??? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 15:28 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
если так: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 15:40 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
может, в цикл как-нибудь организовать???? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 15:44 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
Kyubiё, спасибо за идею, но возник вопрос: Код: plaintext 1.
выдает ошибку: "Необходимо ввести значение в поле книги.текущее_количество" это где выдаёт такую ошибку ? вы так как и написано - через код выполняли ? выполните через построитель запросов - что будет ? хотя, я вот щас проверил, у меня это прекрасно отработало Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 15:51 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
через построитель запросов прекрасно отработало, правда, с оповещением, что невозможно обновить все записи, но все и не надо, а только те, где коды равны в обеих таблицах. а вот в vba выдает ошибку и не выполняет, как же этот запрос в vba собрать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 16:00 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
Kyubiчерез построитель запросов прекрасно отработало, правда, с оповещением, что невозможно обновить все записи, но все и не надо, а только те, где коды равны в обеих таблицах. а вот в vba выдает ошибку и не выполняет, как же этот запрос в vba собрать? обратитесь в форум по акцесу, думаю там подскажут, что вы не так делаете. PS на вскидку, вы не так параметр передаёте скорее всего ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 16:03 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
вышла из ситуации через: Код: plaintext 1.
уфф, все получилось! спасибо всем ОГРОМНОЕ!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 16:22 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
Kyubiчерез построитель запросов прекрасно отработало, правда, с оповещением, что невозможно обновить все записи, но все и не надо, а только те, где коды равны в обеих таблицах. а вот в vba выдает ошибку и не выполняет, как же этот запрос в vba собрать? так в этом и была проблема, имхо например - установлен запрет на НУЛЛ для поля книги.текущее_количество, а ДЛукап - возвращал НУЛЛ тогда через ВБА - так можно Код: plaintext 1.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2011, 17:13 |
|
вложенный select в update
|
|||
---|---|---|---|
#18+
Делюсь опытом, столкнулся на такую же проблему, БД на access, ПРОБЛЕМА РЕШЕНА следующим методом: есть 2 таблицы: stari, novi с одинаковыми полями ves, n. Необходимо обновить записи таблицы stari поля ves, где совпадают значения поля n обеих таблиц. UPDATE ( SELECT stari.ves AS stari_ves, novi.ves AS novi_ves FROM stari, novi WHERE stari.n = novi.n ) SET stari_ves = novi_ves До выполнения запроса: stari --------- n | ves| 001 | 20 | 002 | 20 | 025 | 00 | novi --------- n | ves| 011 | 11 | 025 | 77 | 033 | 11 | После выполнения запроса: stari --------- n | ves| 001 | 20 | 002 | 20 | 025 | 77 | ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2011, 16:38 |
|
|
start [/forum/topic.php?fid=60&msg=37236011&tid=2158362]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 355ms |
total: | 495ms |
0 / 0 |