LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Не могу н...
 Тема: Не могу найти решение для запроса
 
 15.06.2007 21:04:22
All
4316 сообщения
1-ый


Тема: Не могу найти решение для запроса
Имею 2-е таблицы связанные "один-ко-многим". С помощью запросов я вычисляю данные из таблицы на стороне "многих" и результат мне надо занести в поле таблицы на стороне "один". Запрос на обновление (UPDATE) не позволяет мне этого сделать, так как вложенные запросы (в которых я произвожу группировку и вычесления) не являются обновляемыми. Мне пришось создать запрос на создание таблицы и потом на его основе я обновляю таблицу на стороне "один".
Посоветуйте более нормальный путь для решения такой проблемы


P.S. Общий раздел по таблицам
Автор: Павел от 0:00:00 Источник ...
 15.06.2007 21:04:22
N_A
31 сообщения


RE: Не могу найти решение для запроса
У меня была такая же проблема.
Но создавать таблицу не стал,(база вспухнет при частых обновлениях). Обновляю через 2открытых рекордсета. Читаю данные из сложного запроса и записываю в таблицу.



P.S. Общий раздел по таблицам
Автор: N_A от 24.07.2003 15:19:41 Источник ...
 15.06.2007 21:04:22
Павел5
9 сообщения


RE: Не могу найти решение для запроса
А можно маленький примерчик?
А то очень срочно надо
Огромное спаcибо


P.S. Общий раздел по таблицам
Автор: Павел от 25.07.2003 16:45:50 Источник ...
 15.06.2007 21:04:22
N_A
31 сообщения


RE: Не могу найти решение для запроса
Обновление остатков материалов
r-таблица материалов в которой обновляется поле matOst
r2 - сложный, необновляемый запрос в котором вычисляется значение поля KOstatok (для поля matOst)
Важно!!! - оба запроса должны содержать одинаковое количество записей с одинаковой сортировкой.

Public Function UpdateOstAll()
Dim r As dao.Recordset
Dim r2 As dao.Recordset
On Error GoTo err_UpdateOstAll
Set r = CurrentDb.OpenRecordset("SELECT idMaterial, matOst FROM sprMaterial ORDER BY idMaterial", dao.dbOpenDynaset)
Set r2 = CurrentDb.OpenRecordset("SELECT idMaterial, KOstatok FROM zMatDvigenie ORDER BY idMaterial", dao.dbOpenForwardOnly)
If Not r.BOF Then r.MoveFirst
While Not r.EOF
If r!idMaterial = r2!idMaterial Then
r.Edit
r!matOst = r2!KOstatok
r.Update
Else
MsgBox "Во время опрерации пересчета остатков произошла ошибка, обратитесь к разработчикам:)", vbCritical
End If

r2.MoveNext
r.MoveNext
Wend
Exit Function
err_UpdateOstAll:
MsgBox Err.Description
End Function




P.S. Общий раздел по таблицам
Автор: N_A от 28.07.2003 15:06:23 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Не могу н...
ПоискПоиск  Список форумовСписок форумов  
right