| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS Access > Елемент "Список" |
| Автор: Alibaba 19.11.2009, 21:27 | ||
| Есть таблицы: ТаблицаБанки МФО Банк Адрес 300111 БанкА улицаА 300222 БанкБ улицаБ ТаблицаАктивы МФО Дата РазмерАктивов 300111 01.01.2009 100 300111 01.02.2009 150 300222 01.03.2009 200 300222 01.04.2009 250 Есть Форма, которая отображает поля из ТаблицаБанки. На форме есть элементы "Кнопка", с помощью которых двигаюсь по записям ТаблицаБанки. На форме разместил элемент "Список" дал ему имя - СписокДат -----------------------------------------------------
Когда я запускаю форму происходит событие Form_Current, которое формирует запрос и вызывает мою процедуру ВыбираемДату в этой процедуре СписокДат.Value=NULL. ПОЧЕМУ????? Ведь визуально в СписокДат я вижу даты. Когда в СписокДат выбираю дату, происходит событие AfterUpdate, которое вызывает мою процедуру ВыбираемДату и в этом случае СписокДат.Value = выбранной дате!!!!! (как и должно быть) Когда двигаюсь по записям ТаблицаБанки с помощью кнопок "Вперед", "Назад" тоже происходит событие Form_Current и СписокДат.Value содержит старое значение!!!!!!! Например, если мы были на первой записи МФО = 300111, даты: 01.01.2009, 01.02.2009 СписокДат.Value = 01.01.2009 когда переходим на следующую запись МФО = 300222, даты: 01.03.2009, 01.04.2009 СписокДат.Value не обновляется и по прежнему равно - 01.01.2009 Почему визуально видно в СписокДат новые значения а при обращении к переменной она содержит старое значение? |
| Автор: Alibaba 20.11.2009, 21:38 | ||||||||||
Порядок такой: Open → Load → Resize → Activate → Current
Код кнопки сгенерировался автоматически когда я положил кнопку на форму:
|
| Автор: Akina 21.11.2009, 09:58 | ||
А дальше? Когда читаются данные - посмотрел?
Угу... в нём не учтено появление поля, не привязанного к источнику данных формы. Дописывайте необходимый код руками. |
| Автор: Alibaba 24.11.2009, 18:24 | ||
А какой код необходимо дописать? |
| Автор: Alibaba 26.11.2009, 21:27 | ||
| Народ, помогите, пожалуйста, бьюсь как рыба об лёд, ничего не получается. обновление данных СписокДат.Requery не помогает
|
| Автор: Akina 26.11.2009, 23:45 |
| http://forum.vingrad.ru/forum/topic-260944.html |
| Автор: bopoha 27.11.2009, 17:06 |
| Alibaba, с чего вы решили, что Value должно перезаполнятся при подчитке в список новых данных? Так вот не должно, т.к. Value отображает выбранное значение. А оно не имзенилось. Чтобы этот атрибут менялся. Списку нужно указать имя поля в атрибут данные. См. свойсва списка. Тогда при переходе к следующей записи у вас изменится выбранное значение. По этому значению в списке найдется строка, которая и подсветится выбранной. |
| Автор: Alibaba 1.12.2009, 23:36 | ||||
Когда мы двигаемся по записям ТаблицаБанки, для СписокДат формируем SQL запрос:
Как видим, имя поля, которое нужно указать списку (СписокДат) в атрибутах данных - это Дата Давайте рассмотрим аттрибуты для елемента СписокДат: Тип источника строк: таблица или запрос Источник строк: "SELECT Дата FROM ТаблицаАктивы ORDER BY 1 DESC;" Данные: здесь нельзя выбрать поле Дата. Здесь предлагается выбрать поля из списка полей из главной таблицы ТаблицаБанки (смотри мое первое сообщение от 19.11.2009, 21:27) Если я руками прописываю поле Дата, игнорируя предложенный список, то во время работы появляется сообщение: "Ошибка 2424 Введенное выражение содержит поле, элемент управления или имя свойства, которые Access не может найти" |
| Автор: bopoha 1.12.2009, 23:50 | ||||||
Все правильно. Здесь и должны показываться поля главной таблицы. Для указанной кофигурации данный элемент управления работает правильно. Не должно в Values появляется значение! И точка. Желаемое поведение от Списка не является стандартным. Если вам необходимо получить значение первой строки, то получите его соответствующим образом:
Вот пример использования:
|
| Автор: Alibaba 23.1.2010, 02:09 |
| В прикрепленной базе данных находится форма и две таблицы: Банки (главная таблица), Филиалы (подчиненная таблица). Когда мы двигаемся по главной таблице Банки РамкаБанка отображает фото банка. При этом подчиненная форма отображает те филиалы, которые есть у данного банка. Я хочу, кликая на различные филиалы в подчиненной форме - получать в РамкеФилиала - фото филиала. Скажите, пожалуйста, как это сделать? |
| Автор: bopoha 26.1.2010, 16:16 |
| При помощи событий. Дока: http://5codelines.net/events1/ |
| Автор: Alibaba 28.1.2010, 20:19 |
| bopoha, ок, про события почитал. В Вашем примере: http://forum.vingrad.ru/index.php?showtopic=254535&view=findpost&p=1837317 если поле T_ADRES типа: "Поле объекта OLE" (хочу хранить там картинки) как на форме f_klient_edit_ отобразить данное поле? Стандартный элемент "Поле" не хочет показывать "Поле объекта OLE". |
| Автор: bopoha 28.1.2010, 23:55 |
| Alibaba, для обображения кратинок есть специальный элемент управления. Я не храню скртинки в бд, а в файловой системе. Тогда все реализуется очень просто: при переходе на запись элементу управления указывается путь к файлу картинки. |
| Автор: Alibaba 29.1.2010, 12:40 |
| bopoha, элемент управления для отображения картинок нашел: "Присоединенная рамка обьекта". Можно еще вопрос: зачем Вы создаете три формы f_klient_main, f_klient_lite_spis_, f_klient_edit_? Почему нельзя решить данный пример используя одну форму - f_klient_main (все елементы расположить на одной форме)? |