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

Форум: MS ACCESS

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

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

 
 

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

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

тема: К бурному обсуждению http://hiprog.com/index.php?option=com_content&task=view&id=251661636&Itemid=35
 
 автор: Дядя Федор   (31.08.2009 в 22:19)   личное сообщение
11 Кб.
 
 

Пример, полезный и зря некто "Любитель" ведет себя как на сайте футбольных болельщиков.
К тому же, пример напомнил мне одну проблему, связанную с заполнением полей без клавиатуры, а значит, и без получения фокуса полем.
Невозможно отследить события типа изменения полей!
Я как-то столкнулся с задачей "разрешить" кнопку если N полей заполнено.
А поля заполнялись исключительно (!!!!!!) выбором из списков.
Сейчас набросал по памяти (во вложении), но смысл в коде.
Ничего кроме того что в примере не придумал.

  Ответить  
 
 автор: Lukas   (31.08.2009 в 22:39)   личное сообщение
11 Кб.
 
 

Не смотрел предмет спора, но "проблема" Дяди Федора решается очень просто и без таймера.
Вот один из вариантов, например:

Private Sub Form_Open(Cancel As Integer)
    Me.ПолеСоСписком0.AfterUpdate = "=funEnabledBtn()"
    Me.ПолеСоСписком6.AfterUpdate = "=funEnabledBtn()"
End Sub

Public Function funEnabledBtn()
    Me.Поле0 = Me.ПолеСоСписком0
    Me.Поле2 = Me.ПолеСоСписком6
    Кнопка.Enabled = Len(Nz(Поле0)) And Len(Nz(Поле2))
End Function

При этом поле0 и Поле2 не имеют источника данных.
Кнопка работает так как ей и положено.
ps. Правда так и не понял, зачем перегонять данные из полей со списками в текстовые поля, но, наверное, так надо было.
Пошел гляну предмет спора.

  Ответить  
 
 автор: Дядя Федор   (01.09.2009 в 10:33)   личное сообщение
 
 

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

  Ответить  
 
 автор: Lukas   (31.08.2009 в 23:07)   личное сообщение
 
 

Я, пожалуй, соглашусь с первым комментарием, и даже с формулировкой, увы.
Метод, которым получают данные поля формы в разделе Заказы и Заказано обычно так и называют.

Имеем три связанные таблицы.
Добыть все данные можно максимум 3 наборами данных.
А что видим: ВОСЕМЬ D-функций, причем 4 из них к запросу.
Это восемь ОТКРЫТЫХ и ЗАКРЫТЫХ наборов данных на каждый выбор клиента в поле со списком + набор данных самого поля со списком.
ИТОГО 9 наборов данных в одной форме на три связанные таблицы.

К тому-же, помещенные D-функции в свойство текстового поля "Данные" значительно медленнее работают, чем если их вызывать из модуля формы, во много раз!!! А их там 8.
У меня не самый медленный ПК, но тормоза - видны невооруженным глазом, а записей в таблицах не так уж и много.
Наверное, это не есть удачный пример для начинающих.

  Ответить  
 
 автор: osmor   (01.09.2009 в 11:24)   личное сообщение
 
 

Ну что... буду оправдываться
Хотя пример делал не я, но решение о его размещении лежит на мне...
При создании раздела идея была показать начинающим КАК можно решить ту или иную задачу, при этом решение должно быть максимально простым.
Если заметили, в этих примерах используются фильтры на уровне формы, вместо условий в источниках данных и т.п.
т.е. задача не стояла сказать "всегда делай так", задача показать принципиальную возможность решения, конкретной задачи именно по этому под каждую задачу отдельная форма и отдельный пример, что бы ВЫДЕЛИТЬ решение.
При этом примеры должны был быть ... ну эффектным что ли, с точки зрения наглядности, а не оптимальности кода. Именно из-за этого там так много полей... понятно, что значительно эффективнее было создать подчиненные формы, но задача была решение конкретной узкой задачи "получения данных из таблиц не подключенных к форме"....
Ну вот собственно и все...

  Ответить  
 
 автор: Lukas   (01.09.2009 в 12:47)   личное сообщение
 
 

1. Капитан всегда прав.
2. Если капитан неправ, читай п.1.

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

  Ответить  
 
 автор: osmor   (01.09.2009 в 12:58)   личное сообщение
 
 

Конструктивно. За что люблю

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