Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: "Тяжелая" форма.
 
 автор: Скорп   (13.01.2011 в 11:00)   личное сообщение
 
 

Как её облегчить?
В ней порядка 15 подформ. И все тянут инфу из большой таблицы. Единовременно вся инфа может и не нужна, но и делать всплывающие окна тоже не удобно.
Пару лет назад я уже задавад этот вопрос, osmor вроде говорил, что можно сделать так, чтобы инфа в подформе, которая выходит в режим Visible подключалась в момент, когда она собственно и выходит в режим видимости.
Ну или может у кого есть другие идеи

  Ответить  
 
 автор: snipe   (13.01.2011 в 11:17)   личное сообщение
 
 

Можно контролу подчиненной формы менять объект-источник
а на основной форме разместить кнопки (что-то типа вкладок)

  Ответить  
 
 автор: Дядя Федор   (13.01.2011 в 12:17)   личное сообщение
 
 


(что-то типа вкладок)


Почему что-то типа - самое оно и есть - вкладки!
На каждой своя подч.форма
И все.
Но ... если хочется видеть некоторые вместе - на вкладку пару-тройку подчиненных.
Все скорее будет.

  Ответить  
 
 автор: Explorer   (13.01.2011 в 12:22)   личное сообщение
 
 

>> На каждой своя подч.форма

это плохое решение... объект подчиненная форма должен быть один,
и разместить ее надо не на вкладках а на самой форме

при переходе по вкладкам менять SourceObject контрола подчиненной формы

  Ответить  
 
 автор: Силblч   (13.01.2011 в 12:24)   личное сообщение
 
 

ППС

  Ответить  
 
 автор: Дядя Федор   (13.01.2011 в 22:21)   личное сообщение
 
 

Это и имелось ввиду!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! Неправильно выразился.
Подч.форма одна!!!!
Типа ка к делают мастеры....
Впрочем всех со старым новым годом!!!!!!

  Ответить  
 
 автор: shanemac51   (13.01.2011 в 12:10)   личное сообщение
 
 

нечто подобное решила так

-условия выборки (до 12- по всем полям на like)
-select .........into rab1 from t1 left join t2 on id1=id2 where ..............
-отчеты в НТМ по разным шаблонам и в сортировке по запросу пользователя

  Ответить  
 
 автор: shanemac51   (13.01.2011 в 13:39)   личное сообщение
 
 

ваша форма только для просмотра
--------------------------или и изменения допускаются

  Ответить  
 
 автор: Скорп   (13.01.2011 в 13:58)   личное сообщение
52 Кб.
 
 

Друзья, если можно поподробнее плиз
вот картинка, при нажатии на поле "Текст" появляется подформа с данными, куда вводится инфа
При нажатии на остальные поля (Обложка, форзац и т.д.) появляются свои подчиненные формы.
Так вот, мне нужно, чтобы в момент появления подформа коннектилась к таблице по нужному мне IDЗаказа

  Ответить  
 
 автор: osmor   (13.01.2011 в 14:37)   личное сообщение
 
 

[зачеркнуто]]что-то не увидел на рисунке подформ.[/зачеркнуто]
вообще см. ответ эксплорера.
т.е. одна подформа у которой меняется объект источник при нужном событии

  Ответить  
 
 автор: Скорп   (13.01.2011 в 14:58)   личное сообщение
26 Кб.
 
 

Скажите, а вот так вот правильно?

  Ответить  
 
 автор: snipe   (13.01.2011 в 15:06)   личное сообщение
 
 

нет

примерно так
Forms!form1!Form2.SourceObject = "Запрос"

без form
вы ведь обращаетесь к контролу а не к форме

  Ответить  
 
 автор: Скорп   (13.01.2011 в 15:29)   личное сообщение
28 Кб.
 
 

snipe точно?
мой вариант работает, а ваш выдает у меня ошибку

  Ответить  
 
 автор: snipe   (13.01.2011 в 15:37)   личное сообщение
 
 

точно
то что SourceObject

обшибся не много
вот так
Me!Form2.SourceObject = "Запрос.Запрос"

  Ответить  
 
 автор: Скорп   (13.01.2011 в 15:47)   личное сообщение
 
 

он из подчиненной формы делает таблицу со всем списком

  Ответить  
 
 автор: snipe   (13.01.2011 в 16:02)   личное сообщение
 
 

мне кажется что вы не совсем правильно осознаете что происходит

давайте поиграем в ассоциации

возмите 3 листа бумаги
2 положите на столе рядом друг с другом
в третьем вырежите прямоугольную дырку (прямо по середине)

теперь третий лист поднесите к глазам (сантиметров 50 от глаз)

посмотрите на первый лист
теперь на второй
обратно на первый

прекрасно

теперь эту ассоциацию перетянем на акс

третий лист это основная форма
дырка это контрол подчиненной формы

листы 1 и 2 это подчиненный формы
соответственно 2 подчиненные формы сразу видеть не возможно
по сему у дырки есть объект источник -SourceObject
задавая это свойсво мы указываем на что смотреть(либо на лист 1 или 2)

возможно что придется изменить еще одно свойство "дырки" подчиненные поля
(но это потом)

  Ответить  
 
 автор: Скорп   (13.01.2011 в 16:16)   личное сообщение
17 Кб.
 
 


мне кажется что вы не совсем правильно осознаете что происходит


Вожможно, слишком большой перерыв был в работе и приходится заново мозг настраивать.
Но в примере, в посленем, задача заполнить подчиненную форму по клику на кнопке.
RecordSource делает это, а SourceObject нет.


Forms!form1!Form2.Form.RecordSource = "Запрос" 'Вариант Скорп



Me!Form2.SourceObject = "Запрос.Запрос" 'Вариат snipe

  Ответить  
 
 автор: Скорп   (13.01.2011 в 16:19)   личное сообщение
19 Кб.
 
 

а вариант snipe делает из моей ПФ вот такое

  Ответить  
 
 автор: osmor   (13.01.2011 в 16:09)   личное сообщение
 
 

так по идее ему и нужно к контролу обращаться
в контроле поменять SourceObject
примеры посмотреть не могу

  Ответить  
 
 автор: snipe   (13.01.2011 в 16:32)   личное сообщение
 
 

все правильно
и у меня так

изначально Ваша основная форма и дырка на ней ссылается на форму2
после нажатия на кнопку - на Запрос (я не виноват в том что Запрос и источник строк формы2 совпали по данным и не позволяют увидеть различия)

кстати запрос в любом случае отображается в табличной форме

если бы была форма3 то можно было бы сослаться на форму3

добавлено
сейчас схожу за пивом
выпью за мюллера и за новый год
и сваяю примерчик

  Ответить  
 
 автор: kot_k_k   (13.01.2011 в 16:46)   личное сообщение
 
 


сейчас схожу за пивом



и мне пару бутылочек, если мона

  Ответить  
 
 автор: snipe   (13.01.2011 в 17:38)   личное сообщение
 
 

Извини Скорп
пример только завтра с утра получишь
(комп дома глючит безбожно - сапожник без сапог)

  Ответить  
 
 автор: Explorer   (13.01.2011 в 20:58)   личное сообщение
 
 


и мне пару бутылочек, если мона



лихко!

http://images.yandex.ru/yandsearch?text=%D1%82%D0%B0%D0%BB%D0%BB%D0%B0%D0%BC%D0%BE%D1%80%20%D0%B4%D1%8C%D1%8E

  Ответить  
 
 автор: Дядя Федор   (13.01.2011 в 22:40)   личное сообщение
 
 

А у меня сегодня акс стал брыкаться и вылетать. Старый новый год....

  Ответить  
 
 автор: snipe   (14.01.2011 в 06:50)   личное сообщение
64 Кб.
 
 

вот =>

  Ответить  
 
 автор: Скорп   (14.01.2011 в 09:24)   личное сообщение
 
 

Ах вона оно в чем дело!!
snipe спасибо!!
ща буду переделывать

  Ответить  
 
 автор: Скорп   (14.01.2011 в 11:19)   личное сообщение
 
 

Переделал
еще раз спасибо!
А подскажите, размеры формы можно менять как-то?
А то на форме 10 полей один раз выводится, а второй раз 5 полей
Чтобы как-то сжималась форма....
нет?

  Ответить  
 
 автор: snipe   (14.01.2011 в 11:34)   личное сообщение
 
 

к тому примеру
после изменения SourceObject на каждую кнопку

Me![КонтролПодФормы].Width = Me![КонтролПодФормы].Form.Width

  Ответить  
 
 автор: Скорп   (14.01.2011 в 12:20)   личное сообщение
 
 

а этот код сжимает форму только в горизонтальной плоскости?
а в вертикальтной?
мне бы в вертикальной чтобы сжимало

вобщем на каждую кнопку повесил код
Me![ОбщаяПодформа].Height = 2500

(со своим числом конечно)

  Ответить  
 
 автор: Explorer   (14.01.2011 в 16:11)   личное сообщение
 
 

не надо лишний раз "передергивать форму", менять ее размеры и т.п.

как правило пользователи жестоко не одобряют такие изыски

и грозятся выдернуть разработчику руки и вставить их ему в *опу.

--------------
в сети есть примеры работы с контролами и формами - изменение размеров, положения и т.п.

поройся, поищи как люди делают "резиновые формы"

  Ответить  
 
 автор: Скорп   (14.01.2011 в 16:39)   личное сообщение
 
 

Ну, тогда раскрашу подформу под цвет основной и визуально будет видно. как будто просто поля меняются и все

  Ответить  
 
 автор: Explorer   (14.01.2011 в 16:46)   личное сообщение
 
 

да.

для того, чтобы не тратить время на "подгонку" расположения "переключающихся" элементов на форме, лучше написать процедуру, которая будет расставлять контролы точно в нужные места.

тогда контролы не будут скакать и дергаться при смене режимов отображения.
это можно сделать через коллекции.

при смене режима отображения заполнять коллекции нужными объектами, потом для каждого элемента коллекции в цикле (For each) указывать его размеры, положение, visible, enabled, locked и т.п.

-----------
с приращением значения свойства Top на определенный шаг, например, можно "засеять" элементы разместив их на форме равномерно по вертикали точно в нужные места.
а "отлючить" некоторые "ненужные" элементы можно установив для всех элементов коллекции свойство enabled = false (или visible) в зависимости от режима отображения
-----------

это поможет существенно сэкономить время на "ручном дизайне"

ну и т.п.

  Ответить  
 
 автор: Скорп   (14.01.2011 в 16:54)   личное сообщение
 
 

м-даа..идея понятня, спасибо Explorer
но для меня пока неподъемная

а вот если бы проо-о-о-о-стенький примерчик....
ну вот на примерах оно как-то быстрее понимается...

  Ответить  
 
 автор: shanemac51   (15.01.2011 в 12:42)   личное сообщение
 
 


В ней порядка 15 подформ. И все тянут инфу из большой таблицы. Единовременно вся инфа может и не нужна, но и делать всплывающие окна тоже не удобно.

если только просмотр, то
-в мульти-списке дать список полей для выбора
-для выбранных полей НТМ отчет, чтобы не подгонять ширину столбцов
-дополнительно элементы выбора по любому полю на LIKE

  Ответить  
 
 автор: Скорп   (15.01.2011 в 12:51)   личное сообщение
 
 

Спасибо shanemac51
Я сделал через SourceObject , как ребята посоветовали

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList