Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
27.04.2011, 03:01
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
Доброй ночи, форумчане! Возник вопрос: access 2007 не понимает запросов на обновление с вложенным select-ом и "ссылками" на разные таблицы? в частности, мой тестовый код: Код: plaintext 1.
выдает ошибку: "В операции должен использоваться обновляемый запрос!" как же мне тогда значения из одной таблицы в другую перекинуть? или может, у меня синтаксис неправильный? помогите, любым советом!!!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 03:11
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
Kyubi, Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 03:13
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
Kyubi, или так Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 05:23
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
Скукотища, в первом варианте он мне выдает ошибку синтаксиса update, во втором - все то же сообщение: "В операции должен использоваться обновляемый запрос!" имхо с ХП на sql все было бы гораздо проще.. что-нибудь еще посоветуйте, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 07:17
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
Kyubi, в первом варианте действительно ошибка синтаксиса, надо: Код: plaintext 1. 2. 3. 4.
Посоветовать могу выполнить запрос: Код: plaintext
когда одной записи в таблице [книги] соответствует более одной записи в таблице [ostatok], и обновление будет неоднозначным (читай - невозможным). "Дубикаты" записей устранить, пробовать апдейт снова. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 07:30
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
Kyubi, в предидущем посте открывающую скобку в запросе не там поставил. Надо перед select Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 14:49
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
дублей нет, да я и так знаю, что их нет (содержимое таблиц перед глазами), а этот долбанный access всё твердит, что запрос должен быть обновляемым. прочитала на стороннем форуме, что в секции update "обновление можно делать только по данным одной таблицы" и что "в Access нельзя использовать подзапросы в команде UPDATE" бла-бла-бла "Access слишком упрощён". может, он и правда настолько упрощен? блин, ну, должен ведь быть способ обновить поле таблицы значениями из другой таблицы.. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 14:53
|
|||
---|---|---|---|
вложенный select в update |
|||
#18+
попробуй так такая конструкция работает в MSSQL SERVER может в аксесе что то аналогичное Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 14:56
|
|||
---|---|---|---|
вложенный select в update |
|||
#18+
Да, Access неважно работает с подзапросами.. А что Вам мешает просто выполнить два запроса подряд, то есть отдельно select и потом update на его результате? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 15:03
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
Kyubiв частности, мой тестовый код: Код: plaintext 1.
выдает ошибку: "В операции должен использоваться обновляемый запрос!" в самомом "пиковом случае", раз уж всё "проистекает" в Акс-е, можно через DLookup типа так Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 15:28
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
ё, спасибо за идею, но возник вопрос: Код: plaintext 1.
выдает ошибку: "Необходимо ввести значение в поле книги.текущее_количество" при этом, если я переписываю это выражение как: Код: plaintext 1.
все успешно отрабатывается, только во все строки поля книги.текущее_количество подставляется, соответственно, одно и то же значение из ostatok.ost", где ostatok.код_книги=2 ВОПРОС: 'код_книги=??????' как в это выражение подставить книги.код_книги (если прям так и пишу 'код_книги=книги.код_книги' - выдает ошибку "Неизвестный") что у меня не так с синтаксисом??? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 15:40
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
если так: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 15:44
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
может, в цикл как-нибудь организовать???? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 15:51
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
Kyubiё, спасибо за идею, но возник вопрос: Код: plaintext 1.
выдает ошибку: "Необходимо ввести значение в поле книги.текущее_количество" это где выдаёт такую ошибку ? вы так как и написано - через код выполняли ? выполните через построитель запросов - что будет ? хотя, я вот щас проверил, у меня это прекрасно отработало Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 16:00
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
через построитель запросов прекрасно отработало, правда, с оповещением, что невозможно обновить все записи, но все и не надо, а только те, где коды равны в обеих таблицах. а вот в vba выдает ошибку и не выполняет, как же этот запрос в vba собрать? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 16:03
|
|||
---|---|---|---|
вложенный select в update |
|||
#18+
Kyubiчерез построитель запросов прекрасно отработало, правда, с оповещением, что невозможно обновить все записи, но все и не надо, а только те, где коды равны в обеих таблицах. а вот в vba выдает ошибку и не выполняет, как же этот запрос в vba собрать? обратитесь в форум по акцесу, думаю там подскажут, что вы не так делаете. PS на вскидку, вы не так параметр передаёте скорее всего ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 16:22
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
вышла из ситуации через: Код: plaintext 1.
уфф, все получилось! спасибо всем ОГРОМНОЕ!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
27.04.2011, 17:13
|
|||
---|---|---|---|
|
|||
вложенный select в update |
|||
#18+
Kyubiчерез построитель запросов прекрасно отработало, правда, с оповещением, что невозможно обновить все записи, но все и не надо, а только те, где коды равны в обеих таблицах. а вот в vba выдает ошибку и не выполняет, как же этот запрос в vba собрать? так в этом и была проблема, имхо например - установлен запрет на НУЛЛ для поля книги.текущее_количество, а ДЛукап - возвращал НУЛЛ тогда через ВБА - так можно Код: plaintext 1.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
20.10.2011, 16:38
|
|||
---|---|---|---|
|
|||
вложенный 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 | ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=60&mobile=1&tid=2158362]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
194ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 364ms |
total: | 655ms |
0 / 0 |