Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автоматически выполнить фунцию подчиненой формы, пересчитать 
:(
    Опции темы
Serggo
Дата 21.4.2010, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.4.2010
Где: Краснодарский кра й

Репутация: нет
Всего: нет



Всем доброго времени суток
Есть проблема, smile 
Необходимо обновить данные подчиненной формы (табличная) с пересчетом значений в вычисляемых полях из главной формы.
Детали:
в подчиненной форме есть функция расчета «Sub РасчетСчета ()»
Которая содержит переменную «скидка», определяемую в главной форме.
Суть работы программы для пользователя:
Делаем счет, выбирая позиции (в подчиненной форме), после смотрим на сумму, решаем какую давать скидку. Вводим значение скидки, Счет пересчитывается с учетом скидки.
Что делал:
При использовании 
Me.Счет_подчиненная.Form.Requery
Результат суммирования столбцов вроде обновляется (моргает), но самого пересчета значений не происходит. smile 

На мой взгляд я не умею объяснить, что после обновления поля скидка, в главной форме, необходимо выполнить«Sub РасчетСчета ()» в подчиненной форме smile 

[removed by moderator]


Это сообщение отредактировал(а) Akina - 21.4.2010, 16:50
PM MAIL Skype   Вверх
Akina
Дата 21.4.2010, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454





--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Serggo
Дата 22.4.2010, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.4.2010
Где: Краснодарский кра й

Репутация: нет
Всего: нет



Akina я понял,
Мне надо узнать как можно сделать:

Запустьть функцию в подчиненной форме нажав на кнопку в главной форме,
просто не знаю команд smile 
PM MAIL Skype   Вверх
Akina
Дата 22.4.2010, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Как обычно...
Call ИмяОбъекта.ИмяМетода(параметры)


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Serggo
Дата 22.4.2010, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.4.2010
Где: Краснодарский кра й

Репутация: нет
Всего: нет



вот файл,


Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  111.rar 302,42 Kb
PM MAIL Skype   Вверх
bopoha
Дата 22.4.2010, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Цитата(Serggo @  21.4.2010,  16:38 Найти цитируемый пост)
в подчиненной форме есть функция расчета «Sub РасчетСчета ()»
Которая содержит переменную «скидка», определяемую в главной форме.

Так делать нельзя. Это источник больших проблем.


Как должно быть:
При обновлении поля со скидкой происходит следующее:
Код

Dim lK_INVOICE as Long
Dim dbS_MARGING as Double

frmSub.Refresh '-- сохранит все изменения

if InvoiceUpdateMargin(lK_INVOICE, dbS_MARGING) then
   frmSub.Requery
end if


В отдельном модуле:
Код

Public Function InvoiceUpdateMargin(Byval lK_INVOICE as long, byval dbS_MARGING as double) as boolean

    ' изменят данные
    InvoiceUpdateMargin = true
End function

PM MAIL WWW ICQ Skype GTalk   Вверх
Serggo
Дата 23.4.2010, 11:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.4.2010
Где: Краснодарский кра й

Репутация: нет
Всего: нет



bopoha ,

заменил  "frmSub" на имя своей формы "Счет_подчиненная.Form." правда не очень уверен что это правильно
Все вроде обновляется, но пересчета не происходит,
не могли бы вставить код в мой пример,
ну чайник я что поделать  smile 
PM MAIL Skype   Вверх
Serggo
Дата 25.4.2010, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 8.4.2010
Где: Краснодарский кра й

Репутация: нет
Всего: нет



Ничего подобного 
Requery
НЕ ПОДХОДИТ,
ПЕРЕСЧЕТА НЕ ПРОИСХОДИТ
Refresh, тоже самое, понятно что она пытается обновить данные полученные сразу от многих пользователей, но дело по моему не в том.
Пересчет происходит если перевыбрать значание по полю "Индекс"
Но остается нерешенным вторая часть вопроса:
представим что в таблицу добавим поле "скидка", при обновлении в главной форме в это поле на первую запись присвоим значение.
Каким образом после этого присвоить значение по всему столбцу, т.е. всем записям? 
PM MAIL Skype   Вверх
bopoha
Дата 26.4.2010, 01:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Цитата(Serggo @  23.4.2010,  11:54 Найти цитируемый пост)
ну чайник я что поделать

1 Изучай. 
2 Пробуй.
3 перейти к п.1


Цитата(Serggo @  25.4.2010,  12:36 Найти цитируемый пост)
Каким образом после этого присвоить значение по всему столбцу, т.е. всем записям?

Например, запросом на обновление или используя библиотеку DAO/ADO. Я рекомендую код изменения скидки написать (!) в теле функции InvoiceUpdateMargin().
Пример:
Код

CurrentDb.Execute "UPDATE b_invoice SET s_marging = " & dbS_MARGING  & " WHERE K_INVOICE = " & lK_INVOICE


Это сообщение отредактировал(а) bopoha - 26.4.2010, 01:56
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0498 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.