Выделение записи в Ленточной форме - 3 варианта (+ пример)
(все поля данных недоступны для курсора)
---------------------------------------------------------------------------------------
01. Создаем доступное поле и его свойства:
a. Рамка плоская и не видима
b. Цвет фона (Back Color) = цвет выделения (в примере ярко синий)
c. Фон = ПРОЗРАЧНЫЙ
d. Длинна = Длинна формы
e. Высота = по вкусу
f. Размешение = поверх строки данных внизу
02. Теперь при попадании курсора на это поле оно будет возвращать свой старый цвет фона т.е. будет эффект подчеркивания
(аналогичен первому но поля уже доступны)
---------------------------------------------------------------------------------------
01. Задаем цвет фона полей = Желтый (или по вкусу)
02. Делаем фон области данных формы = белый (или по вкусу)
03. Делаем фон полей = прозрачный
04. Теперь при попадании курсора в поле оно будет восстанавливать свой фоновой цвет несмотря на прозрачность.
(самый сложный с рисунками)
---------------------------------------------------------------------------------------
01. Создаем рисунок размером в 1 пиксел с цветом = Цвет выделения (желтый)
02. Создаем в таблице базовой для формы поле со свойствами:
a. Название = GD_Ole (это как в примере на самом деле может быть любым)
b. Размер поля = Байт
c. Знач по умолчанию =0
03. Создаем таблицу «Pictures» для хранения рисунков с полями:
a. PicID
i. Формат = Числовой
ii. Размер = Байт
iii. Входит в уник. Индекс
b. Pic
i. Формат = Поле объекта OLE
04. Добавляем записи в таблицу «Pictures» (см. Пример)
a. Первая с кодом =0 – пустая
b. Вторая с кодом =1 в поле PIC вставляем рисунок скопированный в буфер обмена
c. Третья (факультативно) аналогичным способом
05. Создаем запрос со связью базовой таблицы данных и таблицы Pictures
таким образом что бы поле картинки (PIC) зависело от значения поля
базовой таблицы данных (поле «GD_Ole») - см. запрос «FORM_List03_Set»
06. Базируем форму на запросе
07. Добавляем в форму поле «PIC» как присоединенную рамка обьекта
а) поле «PIC» делаем недоступным для курсора
b) Свойство «Установка размеров» = Вписать в рамку
c) Помещаем его под все видимые (и прозрачные уже) поля
08. Создаем в модуле формы две процедуры для выделения (GotFocus()) и
снятия выделения (LostFocus()) изменяя значение поля «GD_Ole»
Private Sub GotFocus()
Me![GD_Ole] = 1
DoCmd.RunCommand acCmdSaveRecord
End Sub
‘------------------------------------------------------
Private Sub LostFocus()
Me![GD_Ole] = 0
DoCmd.RunCommand acCmdSaveRecord
End Sub
‘------------------------------------------------------
09. На событие Получение фокуса (GotFocus) каждого доступного поля формы вешаем вызов процедуры GotFocus()
10. На событие Потеря фокуса (LostFocus) каждого доступного поля формы вешаем вызов процедуры LostFocus()
MSA-2003 ( 118 kB) Пример