Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Обозначение измененной записи

Поиск

Редактирование записи — двухэтапный процесс. Сначала вы изменяете одно или несколько значений полей, что переводит запись в режим редактирования. Затем вы закрываете форму или переходите к другой записи, что фиксирует внесенные вами изменения. Или вы нажи­маете клавишу <Esc> для отмены изменений и затем возвращаетесь к первоначальным зна­чениям.

Если вы пользуетесь панелью Запись (Record Selection) (при условии, что в свойстве Кнопки перехода (Record Selectors) установлено значение Да, стандартный вариант), про­грамма Access показывает переход в режим редактирования, заменяя крошечную стрелку в верхнем левом углу формы маленькой пиктограммой карандаша. Эта пиктограмма — по­лезный индикатор того, что в вашей форме что-то изменено, и нужно решать, принимать ли эти изменения. Но новички программы Access, как и профессионалы, легко могут не заме­тить крошечную пиктограмму карандаша. Именно поэтому большинство пользователей предпочитают более явное свидетельство внесенных изменений, такое как отображение со­общения на форме или изменение цвета фона.

В следующем примере демонстрируется этот подход. Результат показан на рис. 16.8.

Для создания этого примера необходимо начать с построения подходящей формы. Возь­мите обычную форму и добавьте элемент управления Подпись в раздел Примечание фор­мы. Задайте для подписи приемлемое имя, например, InfoMessage (информационное сооб­щение), изменив значение свойства Имя в Окне свойств. Теперь можно начать писать программный код.

 

 

Примечание

Имена элементов управления важны. Они используются для ссылок на объекты в программном коде. Когда вы читаете фрагмент кода, никто, даже вы, не догадается, что обозначает имя Labеl44.

 

Прежде чем добавить ваш код к форме, необходимо определить следующее.

■ Когда запустится ваш код? Иными словами, нужно указать событие, которое должно его запускать. После того как вы дали ответ на этот вопрос, можно создавать корректную процедуру.

■ Что должен делать ваш код? Иначе говоря, следует решить, какие объекты использовать и какие свойства изменять. Когда ответ найден, можно писать код в вашей процедуре.

В данном примере необходимо реагировать на событие формы Изменение данных (On Dirty). Оно возникает, когда запись изменяется любым способом и форма переключается в режим редактирования. Если изменяются несколько значений, событие Изменение данных (On Dirty) возникает только для первого изменения. После этого форма уже находится в режиме редактирования.

 

 

Примечание

У каждого отдельного элемента управления есть собственное событие Изменение данных (On Dirty), которое происходит, когда кто-то в первый раз изменяет определенный элемент. Не сто­ит обращать внимание на эти события. Вам нужно использовать событие формы Изменение данных (On Dirty), таким образом вы поймаете все возможные изменения.


 
 

Рис. 16.8. Вверху; на первый взгляд форма кажется обычной. Внизу: если откорректировано какое-либо значение, цвет фона изменяется и в нижней части отображается текстовое сообщение


Далее приведена процедура, необходимая для реагирования на событие вашей формы Изменение данных (On Dirty):

Private Sub Forrn_Dirty(Cancel As Integer) End Sub

 

 

Примечание

Эта процедура выглядит несколько иначе, чем виденные вами ранее процедуры, т. к. она включает поддержку отмены действий. Сейчас не обращайте внимания на этот параметр — вы узнаете о нем все в конце разд. "Принятие решений" главы 17.

 

Данную процедуру можно вручную внести в существующий модуль (если только ис­пользовать для вашей процедуры то же самое имя) или добавить его с помощью Окна свойств (просто выбрать Форма в списке Окна свойств, затем указать событие Изменение данных, далее в поле события выбрать из списка Процедура обработки событий и щелк­нуть мышью кнопку с многоточием).

Далее следует самая увлекательная часть — написание программного кода. Сначала вам нужен оператор, изменяющий цвет фона формы. У объекта Form нет свойства BackColor (цвет фона), зато такое свойство есть у объектов, представляющих отдельные разделы фор­мы (Details (область данных), FormFooter (примечание формы) и FormHeader (заголовок формы)). Таким образом, можно применить следующий программный код: Detail.BackColor = vbRed

Необходимо также задать текст сообщения в элементе управления Подпись3:

InfoMessage.Caption = "Вы изменили данную запись. " & _

"Если перейдете к другой записи, ваши изменения будут внесены. " & _

"Для отмены изменений нажмите клавишу Esc."

Поместите два оператора в процедуру Form_Dirty и все готово.

 

 

Практические занятия для опытных пользователей.

Получение нужного цвета

Если задавать цвет только с помощью ключевых слов, таких как vbRed, vbWhite и vbYellow, вы обделите себя. Существует множество пастельных тонов и волнующих оттенков, только и ждущих применения в вашем коде на языке Visual Basic. К сожале­нию, для задания этих цветов нельзя использовать ключевые слова. Вместо них придет­ся применять числовые коды цветов.

Чаще всего вы не будете знать правильного числового кода для цвета, который хотите использовать. Но эту проблему можно решить с помощью удобной функции RGB, вклю­ченной в язык Visual Basic (как и функция MsgBox, которая применялась раньше). Функция RGB принимает три отдельных числа, представляющих красную, зеленую и синюю составляющие цвета, и преобразует их в код цвета, который можно использовать для задания свойств ForeColor или BackColor.

3 На рис. 16.8 текст сообщения выводится на английском языке. Вы, разумеется, можете тоже выво­дить текст на английском. — Ред.


Далее приведен пример, использующий описанный метод, для применения оттенка светлого оранжево-розового цвета:

Detail.BackColor = RGB(266, 160, 122)

Этот оператор выполняется в два этапа. Сначала программа Access выполняет функцию RGB для создания кода цвета. Затем она заносит код цвета в свойство BackColor. На первый взгляд преимущество применения функции RGB может показаться не столь оче­видным, поскольку она требует указания трех отдельных чисел. На самом деле RGB-обозначение цвета — общепринятый стандарт, применяемый в Web-пространстве и в большинстве Windows-приложений. Найти цвет можно даже в указателе цвета про­граммы Access, а затем определить нужные RGB-компоненты, выполнив следующие действия.

1. Откройте форму в Конструкторе.

2. Выберите элемент управления и затем в Окне свойств щелкните кнопкой мыши поле Цвет текста (ForeColor) или Цвет фона (BackColor).

3. Щелкните мышью кнопку с многоточием (...) в поле цвета для перехода в окно быстрого выбора цвета, в котором отображаются некоторые распространенные и недавно использовавшиеся цветовые варианты.

4. Выберите кнопку Другие цвета (More Colors) для отображения полного набора цветов.

5. Щелкните кнопкой мыши вкладку Спектр (Custom).

6. Выберите цвет, как показано на рис. 16.9.

7. Запишите RGB-значения. Их можно использовать в вашем программном коде.

8. Щелкните мышью кнопку Отмена (Cancel) для возврата в программу Access.

 

У формы в этот момент обнаруживается дефект. Когда выполняется первое изменение, появляется подпись и меняется цвет фона, как и должно быть. Однако, после того как вы зафиксировали изменение, перейдя к другой записи, сообщение и цвет фона сохраняются. Полученный результат, очевидно, — не то, что вам нужно.

Для устранения ошибки необходимо отреагировать на другое событие: событие формы После обновления (After Update). Оно возникает после того, как программа Access успешно зафиксирует изменение в БД. Далее приведен код, необходимый для возврата обычного внешнего вида формы:

Private Sub Form_AfterUpdate ()

Detail.BackColor = vbWhite

InfoMessage.Caption = "" End Sub

 

 

Примечание

He следует использовать событие До обновления (Before Update), поскольку оно возникает как раз перед фиксацией изменений. В этот момент вы не знаете, найдет ли программа Access некорректные данные, отобразит ли сообщение об ошибке и помешает ли обновлению (а в этом случае красный цвет фона следует сохранить).



Рис. 16.9. Для выбора цвета щелкните кнопкой мыши в цветовой сетке. (Перекрестье указывает вашу текущую позицию.) Затем используйте вертикальный ползунок для регулировки яркости цвета. Вы увидите, что по мере изменения цвета будут меняться значения Красный (Red), Зеленый (Green) и Синий (Blue)

 

Пример все еще не закончен. Помимо фиксации изменений пользователь может также нажать клавишу <Esc> для их отмены. На эту возможность тоже следует отреагировать и применить тот же код для возврата к обычному состоянию формы. В данном случае исполь­зуется событие Отмена (On Undo):

Private Sub Form_Undo () Detail.BackColor = vbWhite InfoMessage.Caption = ""

End Sub

 

Этот шаг завершает пример. Для того чтобы увидеть все три процедуры вместе и испы­тать их в действии, загрузите из Интернета пример БД для данной главы (в разд. "Примеры" во введении объясняется, как обращаться с примерами БД).

 

 

Часто задаваемый вопрос.



Поделиться:


Последнее изменение этой страницы: 2016-08-14; просмотров: 146; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.88.132 (0.012 с.)