(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Ограничение раскрывающегося списка

Источник: Sgml

К сожалению, в Access'е не предусмотрена возможность формирования набора строк раскрывающегося списка с ограничением, накладываемым значением какого-либо другого поля записи. Такой список можно создать самостоятельно ценой лишних поля в источнике данных формы, элемента управления типа Text Box и пары строк кода в обработчике события Got Focus раскрывающегося списка:

Private Sub MyCombo_GotFocus()
    Me.MyCombo.RowSource = "SELECT ID, Должность FROM Должности WHERE Фирма = " & Me!Фирма
    Me.MyCombo.Requery
End Sub

В источнике данных формы должны присутствовать и кодовое (из первичной таблицы - Сотрудники.Должность ) и текстовое (из присоединенного справочника - Должности.Должность ) представления поля Должность . Предполагается, что поле Фирма присутствует в обеих таблицах: именно по нему и происходит ограничение значений в списке.

ALTER PROCEDURE СписокДолжностей (@Сотрудник Int = NULL)
AS SELECT Сотрудники.*, Должности.Должность
FROM Сотрудники LEFT OUTER JOIN Должности ON Сотрудники.Должность = Должности.ID
WHERE (Сотрудники.ID = @Сотрудник) OR (@Сотрудник IS NULL)

Здесь параметр @Сотрудник нужен для правильной работы этой процедуры как команды синхронизации (данный пример подразумевает работу с ADP в Access 2000/2002).

В самой форме, кроме раскрывающегося списка, должен быть Text Box, связанный с полем Должности.Должность . Его нужно расположить поверх списка но так, чтобы кнопка раскрывания всё таки была видна. Первоначально источник строк списка должен быть пустым, что, кстати, благоприятно сказывается на скорости открытия формы.

Разумеется, в режиме таблицы это работать не будет. Пример для Access'97 можно взять здесь.

Пара замечаний:

1.  Тот самый Text Box на форме должен быть заблокирован. Иначе фамилию в справочнике сотрудников можно случайно изменить.

2.  При выборе другой фирмы надо очищать поле сотрудника. Это препятствует попаданию сотрудников в "чужие" фирмы.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 05.05.2008 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год.
Microsoft 365 Business Standard (corporate)
Microsoft Windows Professional 10, Электронный ключ
Microsoft 365 Business Basic (corporate)
Microsoft Office 365 Профессиональный Плюс. Подписка на 1 рабочее место на 1 год
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
3D и виртуальная реальность. Все о Macromedia Flash MX.
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100