Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Проблема с UPDATE Добавлено: 25.04.05 14:11  

Автор вопроса:  Alexei
Проблема следующего плана: Нужно обновить две записи в таблице. Записи приходят из ряда запросов построенных друг над другом. Сами запросы отлично работают но когда нужно обновить результирующую таблицу - обновляю вот этим кодом:
UPDATE Deals_TMP INNER JOIN NKD_DltDate ON (Deals_TMP.Number = NKD_DltDate.Number) AND (Deals_TMP.Emitent = NKD_DltDate.Emitent) SET Deals_TMP.NKD_on_date = Round(Round(((1000*(Deals_TMP![Cupon %]/100))*(NKD_DltDate!DltDate1/365)),2)*((NKD_DltDate!DltDate2/NKD_DltDate!DltDate1)),2)*NKD_DltDate!Nepogasheni_Nominal, Deals_TMP.NKD = IIf(IsNull(NKD_DltDate!DltDate3),0,NKD_DltDate!Nepogasheni_Nominal*Round((Round((1000*((Deals_TMP![Cupon %]/100))*(NKD_DltDate!DltDate1)/365),2))*(NKD_DltDate!DltDate3/NKD_DltDate!DltDate1),2));
то выдает ошибку "В операции должен использоваться обновляемый запрос"

С правами доступа у меня точно все нормально, т.к. другие запросы на обновление работают.

У меня есть предположение что проблема в запросе NKD_DltDate, вот он сам:
SELECT Deals_TMP.Number, Calendar.Id, Calendar.Date, Calendar.Emitent, Calendar.Nepogasheni_Nominal, Abs(NKD!Date-calendar!Date) AS DltDate1, Abs(Deals_TMP!Date_CF1-KD_DateMEAll![Max-Date]) AS DltDate2, Abs(Forms!MainForm!TodayDate-KD_0_!Date) AS DltDate3
FROM KD_0_ RIGHT JOIN (KD_DateMEAll INNER JOIN (NKD INNER JOIN (Deals_TMP INNER JOIN Calendar ON Deals_TMP.Emitent = Calendar.Emitent) ON NKD.Number = Deals_TMP.Number) ON (KD_DateMEAll.Emitent = Deals_TMP.Emitent) AND (KD_DateMEAll.Id = Calendar.Id)) ON KD_0_.Number = Deals_TMP.Number;
но не могу понять какая именно в нем проблема.

Помогите разобраться.
Спасибо огромное заранее.

Ответить

  Ответы Всего ответов: 3  

Номер ответа: 1
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #1 Добавлено: 25.04.05 14:53
Ну, собственно, всё правильно...
Если запрос содержит вычисляемое поле, то он не обновляемый. Обновляемый содержит только прямые поля из базы.
А у тебя функция Abs.

Ответить

Номер ответа: 2
Автор ответа:
 Alexei



Вопросов: 4
Ответов: 1
 Профиль | | #2 Добавлено: 25.04.05 15:00
Так, понятно. Т.е. в таком случае нужно скидывать получаемые данные во временную таблицу а потом уже из нее обновлять. Верно?

Ответить

Номер ответа: 3
Автор ответа:
 mc-black



ICQ: 308-534-060 

Вопросов: 20
Ответов: 1860
 Web-сайт: mc-black.narod.ru/dzp.htm
 Профиль | | #3
Добавлено: 02.05.05 23:49
Не просто не обновляй запрос, а снова запрашивай.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам