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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как автообновить подчиненную форму? 
:(
    Опции темы
register
  Дата 20.5.2008, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Существует таблица. Существует 3 запроса на выборку записей с этой таблицы по значению одного из полей (типа списка значений). Также существует подчиненная форма, в которой отображаются результаты этих трех запросов в 3х соответствующих табличных формах.
Требуется, после выбора значения из списка вышеуказанного поля в форме: а) сохранить значение в таблице базы; б) выполнить имеющиеся запросы, чтобы таким образом обновилась подчиненные формы (запись перескочила в соответствующую ей согласно своего запроса таблицу формы); в) smile выполнить запросы и перерисовать формы у других юзверей, открывших базу 
PM MAIL   Вверх
Akina
Дата 20.5.2008, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Надо? с такими формулировками вопросу место в центре помощи. 
Или рассказываем, что именно делаем и в каком месте не получается. Со структурами, кодами и пр.


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

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


Новичок



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

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



Вот в присоединении собственно база.
Представляет собой систему оперативного учета заказов типографии.

Опишу подробнее...

Имеем: таблицу Заказы, форму Производство, в ней подчиненные формы, черпающие данные из запросов (фильтров - "условий отбора").

В форме Производство нужно сделать так, чтобы при изменении значения поля Стадия происходило сохранение этого значения в таблице Заказы , повторное выполнение запросов на выборку - Принятые заказы, Готовые к печати заказы, Напечатанные заказы, и, соответственно перерисовка формы Производство.

Пытался добиться сего с помощью макросов (есть в приложенном файле), вызываемых по событию "Внесены изменения", но ничего не получается. Не пойму в чем причина. Может в том, что все объекты прописаны кириллицей?

P.S. Люди! Помогите пожалуйста разобраться, очень нужно! Без этого невыносимо работать (работаем по бумажным бланкам - каменный век!!!) Из-за этого аврала разобраться просто времени нет (работаю по 12-13часов)

Добавлено через 8 минут и 39 секунд
Ок, тогда хотя бы скажите, возможно ли реализовать сие с помощью макросов или не обойтись без ВБА?
Если не обойтись - придецца учить ВБА... (я пхп-девелопер)

Присоединённый файл ( Кол-во скачиваний: 24 )
Присоединённый файл  baza_art_sv.rar 131,75 Kb
PM MAIL   Вверх
bopoha
Дата 22.5.2008, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(register @  21.5.2008,  21:58 Найти цитируемый пост)
Ок, тогда хотя бы скажите, возможно ли реализовать сие с помощью макросов или не обойтись без ВБА?


Не использовать VBA, тоже самое, что писать сайт на html.

На событие после обновления поля Стадия пишем обработчик события. В нем:
Код

CurrentDb.Execute "Запрос на обновление заказа"
'-- обновление форм
dim frmParent as Form
set frm = Me.Parent '-- ссылка на главную форму
frm("подчиненная форма Готовые к печати заказы").Form.Requery
frm("подчиненная форма Напечатанные заказы").Form.Requery


Я бы так в нормально проекте не делал. Гораздо красивее на подчиненной форме объявить событие. И обработать его, на главной форме. Но раз вы VBA учить не хотите....
PM MAIL WWW ICQ Skype GTalk   Вверх
register
Дата 22.5.2008, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(bopoha @ 22.5.2008,  10:59)
Но раз вы VBA учить не хотите....

Не в желании дело, а в отсутствии времени. Поймите, я - полиграфист! (ну и веб-девелопер). Я не собираюсь ни с кем соревноваться в профессионализме работы с Акцессом. Я прошу помощи форумчан, опытных в своем сегменте деятельности. Пожалуйста, покажите простой пример  smile как можно заставить после выбора значения поля со списком формы автоматически сохранять выбранное значение в таблице базы, а также перерисовывать форму с выполнением имеющегося запроса c фильтром.
PM MAIL   Вверх
bopoha
Дата 23.5.2008, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Простой метод приведен выше. Работает?
PM MAIL WWW ICQ Skype GTalk   Вверх
register
Дата 25.5.2008, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Простой метод приведен выше. Работает?


Спасибо, но не работает.

Друзья! Я упрощаю задачу до примитивности!
Во вложении - база без мусора. В ней таблица "Table1", в которой одно из полей - типа списка - "list". Также имеется форма - "Form1", в ней еще две формы - "подчиненная форма eklmn_query" и "подчиненная форма eprst_query". Данные подчиненные формы черпают данные из запросов: "eklmn_query" и "eprst_query", соответственно. Запросы представляют собой ни что инное, как фильтры по значению поля "list".

Итак собственно задача формулируется сл.обр.: нужно примитивно, с помощью макросов (безо всякого ВБА) реализовать сохранение в таблице выбранного в имеющейся записи в поле "list" в форме "Form1" нового значения и обновление формы с выполнением вышеуказанных запросов.

А теперь собственно проблема: я определяю макрос "save_and_update", состоящий из двух макрокоманд - "Сохранить" и "Обновление"; назначаю его событию "Внесены изменения" каждой из двух вышеуказанных подчиненных форм. Получаю такой вот результат - дуля с маком!  smile 

Собственно месидж (вопрос) к спецам по Акцессу: это глюк Акцессовского обновления или я что-то не так делаю?



Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  autoupdate.rar 43,38 Kb
PM MAIL   Вверх
bopoha
Дата 26.5.2008, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(register @  25.5.2008,  11:53 Найти цитируемый пост)
(безо всякого ВБА)

Умею только на VBA... Увы.

Цитата(register @  25.5.2008,  11:53 Найти цитируемый пост)
это глюк Акцессовского обновления или я что-то не так делаю?

Однозначно, вы.

Вопрос, что вы обновляете макросом и что осхраняете. А что нужно сохранить и что нужно обновить?

Что же просиходит. Сохранение изменений записи в таблицу при попытке изменить запись, но до их внесения. И сразу еж после сохранения обновляем данные на той же форме. Т.е. естественно [censored 6] фигня и получается. 

Есть события после обнволения - запись уже сохранена в таблице. Т.е. сохранять не нужно. А так как мы сохранили, то что ввели, значит и обновлять не нужно. Нужно обновить другую форму, как я понимаю. Путь к подчиненной форме долог и тернист - Forms![главная].[подчиненная].Form. Это абсолютный путь для макроса.
PM MAIL WWW ICQ Skype GTalk   Вверх
register
Дата 26.5.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата

Вопрос, что вы обновляете макросом и что осхраняете. А что нужно сохранить и что нужно обновить?


Отвечу цитируя себя:

Цитата

нужно примитивно, с помощью макросов (безо всякого ВБА) реализовать сохранение в таблице выбранного в имеющейся записи в поле "list" в форме "Form1" нового значения и обновление формы с выполнением вышеуказанных запросов.


Или, на пальцах: надо чтобы после внесения изменения записи, последняя "перескакивала" из одной формы в другую. (2 фильтрующих запроса)

Тааак, идем далее...

Цитата

Что же просиходит. Сохранение изменений записи в таблицу при попытке изменить запись, но до их внесения. И сразу еж после сохранения обновляем данные на той же форме. Т.е. естественно [censored 6] фигня и получается. 


Цитата

Есть события после обнволения - запись уже сохранена в таблице. Т.е. сохранять не нужно.


А вот и нифига подобного! Трабла именно в обновлении, потому что, если из макроса удалить макрокоманду обновления, а оставить сохранение, то все замечательно работает, только приходится форму закрывать и открывать снова. Но так некрасиво.

Цитата

Нужно обновить другую форму, как я понимаю. 


Нужно обновить главную форму (Form1 - в примере), а подчиненные должны обновяться иерархически по определению.

Цитата

Путь к подчиненной форме долог и тернист - Forms![главная].[подчиненная].Form. Это абсолютный путь для макроса.


А вот и нет!
Из справки по Акцессу:

Цитата

Имя элемента, который следует обновить. Имя вводится в раскрывающийся список Имя элемента в разделе Аргументы макрокоманды окна макроса. Здесь требуется только имя элемента управления, а не полный идентификатор (такой как Forms!имяФормы!имяЭлемента). При обновлении активного объекта следует оставить это поле пустым. Если активный объект является таблицей или результирующим набором записей запроса, то этот аргумент должен оставаться пустым.

PM MAIL   Вверх
bopoha
Дата 27.5.2008, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



register, тогда почему у вас ничего не работает?

Обращаю ваше внимание еще раз. После обновления одной подч. формы, нужно обновлять не активный элемент (т.е. форму, в которой происходили изменения), а другую подч. форму, в которой небоходимо видеть результат. По-этому макросу нужно сказать кого именно обновить.

Это сообщение отредактировал(а) bopoha - 27.5.2008, 18:23
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.0873 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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