LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Нет фокус...
 Тема: Нет фокусировки в ListBox
 
 15.06.2007 21:02:58
Сергей23
19 сообщения


Тема: Нет фокусировки в ListBox
Здравствуйте, КОЛЛЕГИ !!!
Никак не могу разобраться с ситуацией, проявляющейся следующим образом:
Исходные данные:
Есть форма, в которой определен, в числе прочих, объект LISTBOX с именем [СпГрупп]. В качестве источника данных [СпГрупп].RecSource задан запрос SQL из таблицы внешней базы данных. Изначально эта таблица пуста. После добавления в таблицу-источник (для этого ListBox) записи (самой первой) пытаюсь установить фокус и выбрать значение.

Private Sub КнСоздать_Click() ' Выполняется для кнопки СОЗДАТЬ
Call CreateFlGr 'Записывает в таблицу-источник
Forms![Учет]![Флаг].SetFocus 'Делаю по рекомендации, чтоб при возвращении фокуса в [СпГрупп] обновить данные из ИСТОЧНИКА
Forms![Учет]![СпГрупп].SetFocus ' Фокус на ListBox
Forms![Учет]![СпГрупп].Selected(0) = True
Call pos_gr
End Sub

при этом

Private Sub pos_gr()
Me![НазваниеГр].Value = Me![СпГрупп].Value ' Значение выбранного элемента LISTBOX

В РЕЗУЛЬТАТЕ вижу, что на экране в списке отображен появившийся 1-й элемент,
а в Me![НазваниеГр].Value почему-то NULL ????????????????????????
.............

При наличии на начало работы хотя бы одной записи в таблице-источнике всегда все нормально проходит - без ошибок.

Проблема эта возникает только при использовании MS ACCESS 2000. Под ACCESS XP такой ситуации не возникает. Что ЭТО - разница реализаций библиотек ?!!
ПОСОВЕТУЙТЕ, что можно сделать !!!

С уважением,
Фомин Сергей.
Пенза
26.08.2002


P.S. Проблемы с базой данных
Автор: Сергей от 26.08.2002 19:32:18 Источник ...
 15.06.2007 21:02:58
All
4316 сообщения
1-ый


RE: Нет фокусировки в ListBox
Здесь уже был ответ на подобное
Дело в том, что ТЕКСТ (Text) и ЗНАЧЕНИЕ (Value) это не одно и то же
По шагам:
1 Добавляете записи в таблицу
2 Обновляете источник данных ListBox
3 Выделяете строку в ListBox
(После этого ListBox.Value по прежнему NULL ! )
4 Устанавливаете значение ListBox

По приведенному примеру:
При начале выполнения КнСоздать_Click() фокус находится на кнопке, поэтому нет необходимости передавать его на другой элемент
Для обновления данных ListBox лучше выполнить Me.ListBox1.RowSource = Me.ListBox1.RowSource
Затем можно либо использовать
Me.TextBox1.Value = Me.ListBox1.ItemData(0)
Либо
Me.ListBox1.SetFocus
Me.ListBox1.Selected(0) = True
Me.TextBox1.SetFocus
Me.TextBox1.Value = Me.ListBox1.Value




P.S. Проблемы с базой данных
Автор: Николай от 0:00:00 Источник ...
 15.06.2007 21:02:58
Сергей23
19 сообщения


RE: Нет фокусировки в ListBox
Здравствуйте, коллеги !!!
Огромное спасибо Николаю, находящему время на
вопросы новичка !
Все-же какая-то напасть !!?
После выполнения рекомендаций следующая ситуация:
Оператор обновления ListBox после пополнения его источника
Forms![Учет]![СпГрупп].RowSourсe = Forms![Учет]![СпГрупп].RowSourсe
приводит к ошибке - "Недопустимый метод"

а при использовании .Requery на операторе
Forms![Учет]![СпГрупп].Requery
Возникает ОШИБКА:
Run-Time error '2118'
Необходимо сохранить текущее поле перед выполнением
макрокоманды "Обновление"

Достаточно скупое сообщение об ошибке - без комментариев.
Что это значит ? Как же справиться с проблемой ?
И это только в Access 2000, а в ХР, в котором ведется разработка,
по-прежнему все работает !!!
Кстати, а как узнать, какой элемент списка был выделен и является отмеченным ?

SOS !

Фомин С.
Пенза


P.S. Проблемы с базой данных
Автор: Сергей от 30.08.2002 23:48:11 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Нет фокус...
ПоискПоиск  Список форумовСписок форумов  
right