2014-02-16 2 views
0

У меня есть следующий код на событие OnCurrent в подчиненной:Access Runtime Ошибка 2448

Private Sub Form_Current() 
Me.Parent![QUOT_TOTAL] = DSum(" Q_SUB ", "DSUM_Q_SUB") 
Me.Parent![QUOT_TOTAL].Requery 
Me.Parent![QUOT_DISC] = (Me.Parent![QUOT_TOTAL] * Me.Parent![DISCOUNT_PERCENT])/-100 
Me.Parent![QUOT_DISC].Requery 
End Sub 

Как только я открываю форму, я получаю ошибку 2448 не может присвоить значение этого объекта. Когда я закрываю предупреждение, форма работает нормально.

Событие OnCurrent присваивается подформе родительской формы и полям, которые я хочу обновить (как показано выше) [QUOT_TOTAL] и [QUOT_DISC] находятся в родительской форме. Они отображаются в виде столбцов таблицы, но я хочу, чтобы форма обновляла их, как только появятся изменения в подформате.

Просьба помочь

благодаря

Элтона

+0

Я немного смущен. Почему вам необходимо в первую очередь выполнять вычисления и таким образом, чтобы не учитывать, действительно ли исходные данные были изменены? Запросы 'Requery' также выглядят бессмысленными, если вы сразу же задаете статическое значение. Как вы думаете, что они делают ...? –

+0

Привет. Возможно, это из-за моей неопытности. Проще говоря, у меня есть три поля в форме, все связанные с таблицей: QTY, PRICE и TOTAL. Я за то, что когда я ввожу число под QTY и PRICE, поле TOTAL работает QTY * PRICE или вызывает запрос с DSUM и сохраняет это значение в таблице под столбцом TOTAL. Считаете ли вы, что это имеет смысл или я буду проводить вычисления только по форме, а затем запускать запросы/отчеты, чтобы получить итоговые суммы? – elstiv

+0

Является ли значение TOTAL * всегда * QTY x PRICE или это только значение по умолчанию? Если бы я не сохранил его вообще (т. Е. Я удалил бы поле из таблицы), и присвойте свойству Control Source текстового поля выражение '= QTY * PRICE'; если, однако, это просто значение по умолчанию, которое можно переопределить, сохраните поле и присвойте '= QTY * PRICE' значение свойства Default Value. –

ответ

1

В случае QUOT_TOTAL, если его значение должно всегда быть QTY х PRICE я бы не хранить его вообще (то есть, я d удалите поле из таблицы) и присвойте свойству Control Source текстового поля выражение =QTY * PRICE; если, однако, это просто значение по умолчанию, которое можно переопределить, сохраните поле и назначьте значение =QTY * PRICE для свойства Default Value. Вы можете сделать что-то подобное для QUOT_DISC с выражением =DISCOUNT_PERCENT/-100 * QTY * PRICE. Тем не менее, использование подформы может все еще нарушить это ...

Смежные вопросы