powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нид Хелп
14 сообщений из 14, страница 1 из 1
Нид Хелп
    #36881033
Нид Хелп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хочу заменить маршрут в таблице Reestr из таблицы oldroute, ерунда получается: берет верхний маршрут из таблицы и заменяет им всех.

Dim Reestr As Recordset
Set db = CurrentDb
Dim rt As String
Dim oldroutes As Recordset

Set Reestr = db.OpenRecordset("SELECT DISTINCTROW Reestr.* FROM Reestr LEFT JOIN oldroutes ON Reestr.Customer = oldroutes.ID WHERE Reestr.Route Not Like 'C*' AND Reestr.Location='nizhniy'")
Set oldroutes = db.OpenRecordset("SELECT DISTINCTROW oldroutes.*FROM oldroutes ;")

Reestr.MoveFirst
Do Until Reestr.EOF

Reestr.Edit
Reestr![Route] = oldroutes![Route after]
Reestr.Update

Reestr.MoveNext
Loop
Reestr.Close
...
Рейтинг: 0 / 0
Нид Хелп
    #36881073
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нид Хелп,

Делает то, что вы сказали:
Код: plaintext
Reestr![Route] = oldroutes![Route after]
Всем строкам в Reestr присваивает неизменный oldroutes![Route after]
...
Рейтинг: 0 / 0
Нид Хелп
    #36881076
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

А вообще, изучите синтаксис SQL-команды UPDATE.
Это делается единственным SQL-запросом и работает раз в двести быстрее, чем ваш код.
...
Рейтинг: 0 / 0
Нид Хелп
    #36881089
Нид Хелп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProShocker.Pro,

А вообще, изучите синтаксис SQL-команды UPDATE.
Это делается единственным SQL-запросом и работает раз в двести быстрее, чем ваш код.

пробовал(((( не получается, подскажи плиз сам синтаксис
...
Рейтинг: 0 / 0
Нид Хелп
    #36881113
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нид Хелппробовал(((( не получается, подскажи плиз сам синтаксис
Ну из твоего дурного кода неясно, что ты хочешь сделать

возможно это:
Код: plaintext
1.
2.
UPDATE Reestr SET Reestr.Route=oldroutes.[Route after]
FROM Reestr LEFT JOIN oldroutes ON Reestr.Customer = oldroutes.ID
WHERE Reestr.Route Not Like 'C*' AND Reestr.Location='nizhniy'
...
Рейтинг: 0 / 0
Нид Хелп
    #36881136
Нид Хелп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

пишет syntax error.

хочу заменить route в таблице Reestr из таблицы oldroute по ид клиента (ID, customer)
...
Рейтинг: 0 / 0
Нид Хелп
    #36881138
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нид Хелппишет syntax error.
кто пишет?
...
Рейтинг: 0 / 0
Нид Хелп
    #36881163
Нид Хелп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

UPDATE Reestr LEFT JOIN oldroutes ON Reestr.Customer = oldroutes.ID SET Reestr.Route = [oldroutes].[Routeafter]
WHERE (((Reestr.Route) Not Like "C*") AND ((Reestr.Location)="nizhniy"));

так получилось, НО по клиентам, которых нет в файле oldroute данные вообще пропадают
...
Рейтинг: 0 / 0
Нид Хелп
    #36881168
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нид ХелпShocker.Pro,

UPDATE Reestr LEFT JOIN oldroutes ON Reestr.Customer = oldroutes.ID SET Reestr.Route = [oldroutes].[Routeafter]
WHERE (((Reestr.Route) Not Like "C*") AND ((Reestr.Location)="nizhniy"));

так получилось

А-а-а. Аксессовский диалект

Нид Хелп НО по клиентам, которых нет в файле oldroute данные вообще пропадают

Ну так ты ж сам поставил LEFT JOIN
поставь INNER и будет тебе щастье
...
Рейтинг: 0 / 0
Нид Хелп
    #36881192
Нид Хелп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

а вот тут нужна подсказка:
в таблице reestr одни и теже customers могут повторяться (детализация по товару, дате и количеству), а в таблице oldroute ID клиента в одном экземпляре. что ставить Inner или Left?
...
Рейтинг: 0 / 0
Нид Хелп
    #36881208
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это:
Нид Хелпв таблице reestr одни и теже customers могут повторяться (детализация по товару, дате и количеству), а в таблице oldroute ID клиента в одном экземпляре.
и это:
Нид Хелпчто ставить Inner или Left?
из разных опер (вопрос некорректен). Записи с ключом (oldroute) повторяться будут в обоих случаях
...
Рейтинг: 0 / 0
Нид Хелп
    #36881217
Нид Хелп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

тогда что должно быть основой выбора того или иного способа связи?
...
Рейтинг: 0 / 0
Нид Хелп
    #36881219
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нид Хелптогда что должно быть основой выбора того или иного способа связи?

Нужны ли тебе записи из Reestr, которым не соответствует ни одна запись из oldroute.

Ты сказал, что не нужны, я и сказал - замени LEFT на INNER
А вообще, может почитаешь основы синтаксиса SQL? а то мы так долго можем
...
Рейтинг: 0 / 0
Нид Хелп
    #36881241
Нид Хелп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

Спасибо, очень помог
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Нид Хелп
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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