powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на обновление/добавление
25 сообщений из 31, страница 1 из 2
Запрос на обновление/добавление
    #32656403
Татьяна Валерьевна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема вот в чем: существуют 2 запроса. Их нужно объединить так, чтобы в объединенный запрос входили ВСЕ записи из первого и из второго (часть записей во 2 запросе уникальны и по ключу не совпадут с первым).
Что можно сделать?
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32656410
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UNION SELECT
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32656502
Фотография Pavel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Татьяна Валерьевначасть записей во 2 запросе уникальны и по ключу не совпадут с первым
Стало быть другая часть совпадет, а потому Union All
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32656671
Фотография маяк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Татьяна Валерьевначасть записей во 2 запросе уникальны и по ключу не совпадут с первымВот это совершенно неважно. Только, упаси Г-сподь, не трогайте запросы на обновление и добавление - что-то мне подсказывает, что в этом случае вашим данным очень скоро придёт каюк...
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32656699
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно как записи должны быть объединены - вертикально или горизонтально.
Быть может не Union/Union All требуется, а Join/Left Join/Right Join/Full Outer Join
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32656730
Фотография маяк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох ПозорныйНепонятно как записи должны быть объединены - вертикально или горизонтально.
Быть может не Union/Union All требуется, а Join/Left Join/Right Join/Full Outer JoinНу, этого мы, полагаю, уже никогда не узнаем. Татьяна Валерьевна зарегистрировалась, задала вопрос и забыла про sql.ru как про страшный сон, оставив нам тему для флуда %)
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32657851
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видать убила все-таки... :(
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658015
Татьяна Валерьевна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет уважаемые, это запросы меня добили. Вчера убила полдня на то, чтобы написать этот "шедевр"
Public Sub бал()
Dim баланс_металла As Recordset, остаток_вх As Recordset, s As String
Set баланс_металла = CurrentDb.OpenRecordset("баланс_металла", dbOpenDynaset)
Set остаток_вх = CurrentDb.OpenRecordset("остаток_вх")
остаток_вх.MoveFirst
Do While Not остаток_вх.EOF
s = "[номном]=" & str(остаток_вх![номном])
баланс_металла.FindFirst (s)
If баланс_металла.NoMatch = False Then
баланс_металла.Edit
баланс_металла![наименование] = остаток_вх![наименование]
баланс_металла.Update
Else
баланс_металла.MoveLast
баланс_металла![номном] = остаток_вх![номном]
баланс_металла![наименование] = остаток_вх![наименование]
баланс_металла.Update
End If
остаток_вх.MoveNext
Loop
баланс_металла.Close
остаток_вх.Close
End Sub
НО ОН, ЗАРАЗА, НЕ РАБОТАЕТ!!!! Конкретно ругается на ф-ию FindFirst
ПОМОГИТЕ ЧЕМ МОЖЕТЕ!!!
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658073
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опа.
FindFirst в цикле :(
Нет внутри цикла надо делать FindNext

И, ваще, эти функции тормознутые
Я в таких случаях сразу делаю нужную выборку (т.е. добавляю к запросу WHERE) - Советую!!!
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658087
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет - наврал
Плохо цикл прочитал :(
Но все равно как-то мне это не нравиться

Предположу
1. По else (ИМХО) надо делать не MoveLast, а AddNew
2. Может это можно одним запросом сделать?
Код: plaintext
1.
2.
3.
4.
5.
6.
Select
остаток_вх.номном as num1,
остаток_вх.наименование as name1,
баланс_металла.номном as num2,
баланс_металла.номном as name2
From остаток_вх Left join баланс_металла
On остаток_вх.номном = баланс_металла.номном
Не то?
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658147
amel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как писали выше, нужно сделать вот так:
Select остаток_вх.номном, остаток_вх.наименование from остаток_вх
Union select баланс_металла.номном, баланс_металла.наименование from баланс_металла
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658413
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmelКак писали выше, нужно сделать вот так:
Select остаток_вх.номном, остаток_вх.наименование from остаток_вх
Union select баланс_металла.номном, баланс_металла.наименование from баланс_металла
ИМХО - не в тему
И как это прикрутить к тому что девушке надо?
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658429
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо
Код: plaintext
баланс_металла.FindFirst (s)
Следует писать
Код: plaintext
баланс_металла.FindFirst s
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658440
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В условии Else попытка сделать Update рекордсета без AddNew или Edit
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658444
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И наконец не ясно почему это делается через рекордсеты, а не через запрос.
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658698
Татьяна Валерьевна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Vsevolod, - FindFirst (s) работает так же как и FindFirst s - т.е. не работает!
А зачем мне нужен цикл - по старой привычке, чтоб наверняка.
Предыдущие советы тоже не помогли. Может что-то с самого начала не так.
Еще версии есть, или уже не ждать?
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658804
SRG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SRG
Гость
авторКонкретно ругается на ф-ию FindFirst

А как КОНКРЕТНО он ругается?
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658820
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мадам, вы начали с какого-то непонятного вопроса по SQL-запросу, так и не объяснили что же вам в итоге надо, незаметно перескочили на совершенно не связанный с запросом VBA-код с какой-то ошибкой, так и не объяснили что же за ошибка, и теперь спрашиваете - ждать ли еще версий??? Ну ждите...
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658837
amel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparome:))
>существуют 2 запроса. Их нужно объединить так, чтобы в объединенный >запрос входили ВСЕ записи из первого и из второго (часть записей во 2 >запросе уникальны и по ключу не совпадут с первым).

Уважаемый paparome! То ли я читать разучился, то ли вопрос сформулирован по тупому!?
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658844
Татьяна Валерьевна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточняю (хотя кому это интересно?): Есть 4 таблицы. Данные из них переписываются в общую по принципу - если есть запись с таким №(номном), заполняется определенное поле, если нет записи - она добавляется и опять таки заполняются поля. Поля во всех таблицах разные, в общей таблице есть они все.
Цикл вроде бы простой, но сделать это в ACCESSe я уже отчаялась!
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658859
Татьяна Валерьевна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SRG авторКонкретно ругается на ф-ию FindFirst

А как КОНКРЕТНО он ругается?

Method or data member not found
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658861
amel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему тут уже писали выше все можно сделать одним запросом left join + insert table методом execute: выбираешь все записи, которых нет left join и вставляешь в нужную табл.
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658864
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как у вас обстоят дела с сылками на библиотеки? Нет ли потерянных?
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658867
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это можно сделать двумя запросами или одним циклом, в котором только edit-update.

сделайте один рекордсет, представляющий собой Левое соединение
"остаток_вх" с "баланс_металла" по "[номном]" , редактируйте поля, соответствующие "баланс_металла"
не помню - в параметрах запроса может потребоваться dbInconsistent

(с выражением лица)
...
Рейтинг: 0 / 0
Запрос на обновление/добавление
    #32658882
sposad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
s = "[номном]='" & str(остаток_вх![номном]) & "'"

попробуйте вот так, если, конечно, хотите продолжить борьбу с циклом. И вообще я бы не применял русские буквы в названиях полей.
...
Рейтинг: 0 / 0
25 сообщений из 31, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос на обновление/добавление
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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