MyTetra Share
Делитесь знаниями!
Выделение записи в Ленточной форме - 3 варианта (+ пример)
Время создания: 16.03.2019 23:43
Раздел: !Закладки - VBA - Access - msa.polarcom.ru - 06 Формы Подчиненные
Запись: xintrea/mytetra_db_adgaver_new/master/base/1531972542h3sx28s5e8/text.html на raw.githubusercontent.com

Выделение записи в Ленточной форме - 3 варианта (+ пример)

Вариант 1
(все поля данных недоступны для курсора)
---------------------------------------------------------------------------------------
01. Создаем доступное поле и его свойства:
        a. Рамка плоская и не видима
            b. Цвет фона (Back Color) = цвет выделения (в примере ярко синий)
            c. Фон = ПРОЗРАЧНЫЙ
            d. Длинна = Длинна формы
            e. Высота = по вкусу
            f. Размешение = поверх строки данных внизу

02. Теперь при попадании курсора на это поле оно будет возвращать свой старый цвет фона т.е. будет эффект подчеркивания

Picture

Вариант 2
(аналогичен первому но поля уже доступны)
---------------------------------------------------------------------------------------
01. Задаем цвет фона полей = Желтый (или по вкусу)
02. Делаем фон области данных формы = белый (или по вкусу)
03. Делаем фон полей = прозрачный
04. Теперь при попадании курсора в поле оно будет восстанавливать свой фоновой цвет несмотря на прозрачность.

Picture

Вариант 3
(самый сложный с рисунками)
---------------------------------------------------------------------------------------
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()

Picture




Скачать

MSA-2003 ( 118 kB) Пример

Прикрепленные файлы:
Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования