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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Зарядить выпадающий список
 
 автор: grafin   (25.11.2010 в 15:35)   личное сообщение
 
 

Acc2003.
Есть свободный выпадающий список. Есть Sub в котором в зависисимости от значения логического поля идёт перезаряда источника и установка на 1-м значении
me.dd_date.RowSource = "query1" '(либо "query2")
me.dd_date.SetFocus
me.dd_date.ListIndex = 0
(dd-DropDown:)
При открытии формы так же проход по этой процедуре из FormOpen. Всё срабатывает.
При смене значения лог. поля из формы "Run-time error 7777: неправильное использование свойства ListIndex".
Ворос. Что может приводить к невозможности использования св-ва? Всю форму не привожу-там много контролов и кода к ним. Сделал тестовую простую форму с DropDown - всё работает. Поотключал всё лишнее на моей форме - Err.

  Ответить  
 
 автор: час   (25.11.2010 в 16:13)   личное сообщение
 
 

простите, а эт чё такое?
me.dd_date.ListIndex = 0
============
встать на первую строку?
Может там строк нет?

  Ответить  
 
 автор: grafin   (25.11.2010 в 16:56)   личное сообщение
 
 

Да, на 1-ю. Строки там точно есть.
Проверка MsgBox me.dd_date.ListCount перед .ListIndex даёт результат без всяких Requery. Но при открытии формы код выполняется до появления формы на экране, а во во втором случае - из самой формы. Что может привести поле в не доступность свойству ListIndex?
Чаво в ём не хватает? (Dropdown тоже идёт!) (В тест-форме это фокус проходит!)

  Ответить  
 
 автор: час   (25.11.2010 в 17:02)   личное сообщение
 
 

а не так?
me.dd_date.ListIndex(0)

  Ответить  
 
 автор: grafin   (26.11.2010 в 09:51)   личное сообщение
 
 

Не. Так сразу выплёвывает.

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

попробуйте после
me.dd_date.RowSource = "query1" '(либо "query2")
поставить
doEvents

  Ответить  
 
 автор: grafin   (26.11.2010 в 11:49)   личное сообщение
 
 

Не помогло.
Начал упрощать рабочую форму до пробной. Нашёл отличие.
На тестовой было 2 кнопки:
but1_Click(): me.dd_date.RowSource = "query1"
but2_Click(): me.dd_date.RowSource = "query2"
На рабочей управление было логическим полем:
If flag_arch=true then
me.dd_date.RowSource = "query1"
Else
me.dd_date.RowSource = "query2"
End if
где flag_arch тот самый гад из под котрого почему-то это происходит.
Не помогло и
If flag_arch=true then
Call but1_Click

Что бы это значило?

  Ответить  
 
 автор: snipe   (26.11.2010 в 12:05)   личное сообщение
 
 

Значение по умолчанию задайте
через DFirst

  Ответить  
 
 автор: snipe   (26.11.2010 в 12:05)   личное сообщение
 
 

задвоилось чего-то

  Ответить  
 
 автор: grafin   (26.11.2010 в 13:25)   личное сообщение
 
 

Это фактически 2й запрос значения из архива.Первый раз при набивке выпадающего поля. Долго. Оставлю перезагрузку на кнопке.
Возникла ещё проблема. Запрос обращается к полю со списком. Нужно обратиться НЕ к присоединённому столбцу:
Условие отбора: =Form_formame.dd_date.Column(2)
В запросах эта конструкция не воспринимается (Column(N) - мешает).
Можно ли объехать это ограничение (Кроме использования функций обращения к столбцу)??

  Ответить  
 
 автор: Анатолий (Киев)   (29.11.2010 в 13:43)   личное сообщение
 
 


me.dd_date.ListIndex = 0


Эта конструкция работает присловии, что me.dd_date РЕАЛЬНО имеет фокус.
Проще и надежнее делать так:

me.dd_date = me.dd_date.ItemData(0)


В запросах эта конструкция не воспринимается (Column(N) - мешает)


Создайте скрытое поле с выражением =[dd_date].Column(2), на него ссылайтесь в запросе

  Ответить  
 
 автор: grafin   (29.11.2010 в 15:33)   личное сообщение
 
 

O'k. С ItemData всё срабатывает. По второму вопросу то же спасибо за подсказку. Пара скрытых полей мне больше нравиться, чем 2 Public функции.
Не очень ясно с реальным фокусом. Хотя Open происxодит до Load, а Visible возможен после Current, что ещё позднее, ListIndex внутри обработки лог. поля при загрузке формы срабатывает, а на загруженной форме - нет! Что-то по описанной в Help последовательности событий не вяжется. В первом варианте не должен действовать SetFocus, а во втором фокус куда-то девается или ещё не устанавливается.
P.S. Ещё один полезный результат от возни с многоколонным полем.
При использовании конструкции типа .dd_date = .dd_date.ItemData(.dd_date.ListCount - 1) -чтоб поставить, напрмер, на последнне поле, необходимо чтоб присоединённый стобец имел уникальные значения, даже если они не используются

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


Пара скрытых полей мне больше нравиться, чем 2 Public функции.



эх...

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