LEADERSOFT.ru
Разработка на заказ программ и сайтов
Разработка
Заказ программы
Прайс-лист
Техническое задание
Проектная документация
Наши клиенты
Реклама и продвижение
Магазин
Перейти в магазин
Новинки магазина
Бизнес программы
Финансовый учет
Документооборот
Исходные коды
Интернет решения
Обучение
Перейти в раздел
Форумы по разработке
Примеры на Access
Рассылка статей
Магазин IT литературы
Блог
Все статьи
Microsoft Access (VBA)
Microsoft Access (Проекты)
Microsoft ASP.NET
Сервисы Google
Технические задания
Новости IT технологий
Сервисы
Форумы разработчика
Контакты
О компании
Регистрация на сайте
Подписка на новости по Email
Сообщество Google+
Подписка subscribe.ru
Новости в формате Атом
Загрузить
Загрузить каталог программ
Форумы по информационным технологиям
Начало
Forums
Регистрация
|
Вход
Forums
Обновлено ::
06 февраля 2005
Форумы
Поиск
Список форумов
Программирование
Microsoft Access. Файлы mdb и accdb
Тема: Два списк...
Тема: Два списка
15.06.2007 21:02:32
Valerik
14 сообщения
Тема: Два списка
Помогите, пожалуйста, вот в каком вопросе:
Решил сделать форму для удобного управления справочниками, которые представляют из себя обыкновенные двухуровневые списки. При изменении названия справочника (Me.Справочник - поле со списком) в списке верхнего уровня (UpLevel) выводятся все рубрики верхнего уровня из этого справочника, и подсвечивается выделением первый элемент. Затем проверяется есть ли у этого элемента дочки и они выводятся в другом списке (DownLevel). Аналогично - подсвечивается первый элемент. Так в теории. Но действительность еще кошмарней :[ ]
При изменении справочника - все работает на ура. Формируются оба списка и выделяются первые элементы. А вот если кликнуть мышью в элемент в списке верхнего уровня, то начинаются чудеса: если дочек нет, то все в порядке, а вот если у этого элемента есть дочки, то все контролы на форме перестают реагировать на события от мыши (кроме самого списка верхнего уровня). Точнее по клику в любой контрол вызывается все тот же UpLevel_Click(). И так продолжается до тех пор, пока в этом самом списке верхнего уровня не выбрать элемент, у которого нет дочек. Уфф-ф.
В общем уже четыре дня возвращаюсь к этому вопросу и ничего не могу придумать. Проблема заключается в закомментированных строчках но как быть..?
Private Sub UpLevel_Click()
J = Me![UpLevel].ListIndex
If J >= 0 Then
StrSQL = ""
StrSQL = "SELECT [" + Me.Справочник + "].[" + CurrentDb.TableDefs(Me.Справочник).Fields(2).Name + "], [" + Me.Справочник + "].[" + CurrentDb.TableDefs(Me.Справочник).Fields(0).Name + "] FROM [" + Me.Справочник + "] WHERE ((([" + Me.Справочник + "].[" + CurrentDb.TableDefs(Me.Справочник).Fields(1).Name + "])=" + Me![UpLevel].Column(1, Str(J)) + ") AND (([" + Me.Справочник + "].[" + CurrentDb.TableDefs(Me.Справочник).Fields(4).Name + "])=2));"
If StrSQL > "" Then
Me![DownLevel].RowSource = StrSQL
Me![AddLevelDown].Enabled = True
J = Me![DownLevel].ListCount
If J > 0 Then
Me![DelLevelDown].Enabled = True
' Me![DownLevel].Selected(J - 1) = True
' Me![DownLevel].Selected(0) = True
Else
Me![DelLevelDown].Enabled = False
End If
Else
Me![AddLevelDown].Enabled = False
End If
End If
End Sub
Private Sub Справочник_Change()
StrSQL = ""
StrSQL = "SELECT [" + Me.Справочник + "].[" + CurrentDb.TableDefs(Me.Справочник).Fields(2).Name + "], [" + Me.Справочник + "].[" + CurrentDb.TableDefs(Me.Справочник).Fields(0).Name + "] FROM [" + Me.Справочник + "] WHERE ((([" + Me.Справочник + "].[" + CurrentDb.TableDefs(Me.Справочник).Fields(1).Name + "])=0) AND (([" + Me.Справочник + "].[" + CurrentDb.TableDefs(Me.Справочник).Fields(4).Name + "])=2));"
If StrSQL > "" Then
Me![UpLevel].RowSource = StrSQL
Me![AddLevelUp].Enabled = True
J = Me![UpLevel].ListCount
If J > 0 Then
Me![DelLevelUp].Enabled = True
Me![UpLevel].Selected(J - 1) = True
Me![UpLevel].Selected(0) = True
Else
Me![DelLevelUp].Enabled = False
End If
Call UpLevel_Click
Else
Me![AddLevelUp].Enabled = False
End If
End Sub
P.S. Общий раздел по формам
Автор:
Valerik
от 02.06.2002 17:55:00
Источник ...
15.06.2007 21:02:32
All
4316 сообщения
RE: Два списка
Посмотрите пример 2 файла la_form.mdb
P.S. Общий раздел по формам
Автор:
Виктор Конюков
от 0:00:00
Источник ...
15.06.2007 21:02:32
Valerik
14 сообщения
RE: Два списка
Посмотрел, спасибо. Буду переделывать...
Но остался один небольшой вопрос. Если я программно выделяю какой-либо элемент в списке, предположим так:
Private Sub Button_Click()
Me![ИмяСписка].Selected(0) = True
End Sub,
то почему-то зажигается "Undo" на тулбаре с подсказкой "Восстановить текущее значение/запись".
Это так и должно быть? И как от этого избавиться?
P.S. Общий раздел по формам
Автор:
Valerik
от 08.06.2002 12:01:12
Источник ...
Страница 1 из 1
Программирование
Microsoft Access. Файлы mdb и accdb
Тема: Два списк...
Одноуровневый вид
Древовидная структура
Самый старый из новых
Новейший из старых
Поиск
Список форумов
Начало
|
Forums
Copyright 2002-2016 Leadersoft.ru
::
Leadersoft
::
Соглашение о безопасности
::
Условия использования