Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / access 2003, update+join / 3 сообщений из 3, страница 1 из 1
24.05.2019, 10:16
    #39817532
mokynis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access 2003, update+join
сразу извиняюсь за стрый access и старый вопрос. Имеются 1 таблица и 1 запрос, которые однозначно соединяются по 3 полям. Надо, используя это соединение, заменить содержимое поля таблицы содержимым поля запроса. Все тривиально, только уже 2 дня ничего не получается. Все перепробованные запросы постить не буду, но вот самый популярный в инете:
авторUPDATE tbl_sklad_zustand INNER JOIN qon_way ON (tbl_sklad_zustand.KodTovara = qon_way.tov_id) AND (tbl_sklad_zustand.Stuk_Korobki = qon_way.in_box) AND (tbl_sklad_zustand.Country = qon_way.country_id) SET tbl_sklad_zustand.Eingang_Lieferung = qon_way.on_way (пробовал просто вставить абы какое число, например, 333)
Все время выдает авторОперация должна использовать обновляемый запрос. (Ошибка 3073) Запрос, действительно, не изменяемый, он из прилинкованной таблицы MySql, но я ж меняю таблицу. А она очень даже обновляемая. Как с этим бороться?
...
Рейтинг: 0 / 0
24.05.2019, 12:33
    #39817689
access 2003, update+join
Если в JOIN используется не обновляемый запрос, то и результат будет не обновляемый. Для запросов на обновление/удаление это недопустимо. Используйте DLookup с тремя условиями.
Например, если все поля связи числовые или логические:
Код: plsql
1.
UPDATE tbl_sklad_zustand SET Eingang_Lieferung = DLookup("[on_way]","[qon_way]", "tov_id=" & KodTovara & " AND in_box=" & Stuk_Korobki &  " AND country_id=" & Country)

Но если в таблице есть записи, которых нет в запросе, то в таких записях поле Eingang_Lieferung обнулится, поэтому можно так:
Код: plsql
1.
UPDATE tbl_sklad_zustand SET Eingang_Lieferung = NZ(DLookup(...),Eingang_Lieferung)


Но такой запрос с DLookup выполняется медленнее. Можно отфильтровать только нужные записи с помощью EXISTS или IN в условии. Сколько у вас записей в таблице, в запросе и солько из них реально нужно менять (значения в Eingang_Lieferung и on_way отличаются)?
...
Рейтинг: 0 / 0
24.05.2019, 13:01
    #39817723
mokynis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
access 2003, update+join
менять может быть придется все-но только одно поле. Тут таблица перезаполняется заново, но из разных источников. Основное уже заполнено, теперь надо дозаполнить Eingang_Lieferung. После первого INSERT оно везде=0
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / access 2003, update+join / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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