Создание формы для вывода данных в форму, перехода по записям и редактирования данных.
Создайте форму с именем frmS. Расположите объекты на форме в соответствии с рисунком 18.
Рисунок 18. Вид формы frmS.
Поместите в область данных формы четыре текстовых поля. Для этого выберите левой кнопкой мыши на панели элементов ToolBox пиктограмму “аб” - Поле, затем переместите курсор на форму. В выбранном Вами месте формы, в котором будет располагаться текстовое поле, нажмите левую кнопку мыши и, не отпуская ее, задайте размер создаваемого текстового поля. Выделите поле, нажмите правую кнопку мыши и в контекстном меню выберите строку Properties (Свойства) или выполните команду менюВид | Свойства.
На вкладке Другие задайте для свойства этого поля Имя (Name) значение txtS. Закройте окно Свойства. Аналогичным образом разместите в форме остальные текстовые поля, присвоив свойству Имя этих полей значения txtSName, txtStatus, txtCity.
Выделите правой кнопкой мыши объект Надпись, который теперь располагается слева от текстового поля txtS. В окне Свойстваэтогообъектана вкладке Другиеприсвойте cвойствуИмя значение lblS. Свойству Имя остальных надписей присвойте значения lblSname, lblStatus, lblCity. Перемещение надписи происходит с помощью черного квадратика в верхнем левом углу выделенной надписи.
Добавьте на форму кнопки навигации по записям и кнопки для других операций над данными. Для кнопки перехода на первую запись в окне свойств на вкладке Макет установите значение свойства Подписьравным <<, а на вкладке Другие– значение свойства Имя равным cmdFirst.
Для остальных кнопок свойству Имя присвойте значения в соответствии с Таблицей 1, а свойству Подпись - в соответствии с Рисунком 18.
Объект | Значение свойства св Name по умолчанию | Значение свойства св Na Name |
Форма | Form1 | frmS |
Кнопка | Кнопка0 | cmdFirst |
Кнопка | Кнопка1 | cmdLast |
Кнопка | Кнопка2 | cmdPrivious |
Кнопка | Кнопка3 | cmdNext |
Кнопка | Кнопка4 | cmd Save |
Кнопка | Кнопка5 | cmd Add |
Кнопка | Кнопка6 | cmd Delete |
Кнопка | Кнопка7 | cmdUndo |
Кнопка | Кнопка8 | cmdOpenForm |
Кнопка | Кнопка9 | cmdClose |
В окно программного кода данной формы введите код:
Private Sub Form_Load()
With Me
.ScrollBars = 0 ‘Полоса прокрутки отсутствует .NavigationButtons = False ‘Кнопки навигации по записям отсутствуют
.DividingLines = False ‘Разделительные линии отсутствуют
.RecordSelectors = False ‘Область выделения отсутствует
.lblS.Caption = "Номер"
.lblSname.Caption = "Имя"
.lblStatus.Caption = "Статус"
.lblCity.Caption = "Город"
.RecordSource = "SELECT S, SName, Status, City FROM tblS"
.txtS.ControlSource = "S"
.txtSName.ControlSource = "SName"
.txtStatus.ControlSource = "Status"
.txtCity.ControlSource = "City"
End With
End Sub
Private Sub Form_Load(); - процедура загрузки формы, в результате выполнения которой в текстовые поля формы выводятся значения первой записи запроса к таблице tblS.
Конструкция With…End With ;-позволяет обращаться сразу к нескольким свойствам формы.
.lblS.Caption = "Номер"; - cвойству Caption надписи с именем lblS присвоено значение Номер.
.RecordSource = "SELECT S,SName,Status,City FROM tblS"; -источником данных формы является запрос.
Следующая строка кода означает, чтоисточником данных элемента управления txtS являются значения поля S таблицы tblS.
С помощью кнопок cmdFirst, cmdNext, cmdPrivious, cmdLast можно осуществлять переход по записям таблицы.
Добавьте в окно кода обработчик события cmdFirst_Click,который позволяет перейти на первую запись.
Private Sub cmdFirst_Click()
RecNavig acFirst
End Sub
RecNavig acFirst; - вызов процедуры RecNavig с параметром x, которая находится в стандартном модуле, и одновременное возвращение результата.
Откройте стандартный модуль(Работа с базами данных -> Visual Basic -> Insert-> Module).Присвойте модулю имя basNavig и в окно стандартного модуля поместите код:
Sub RecNavig(x)
On Error GoTo HandleErr
DoCmd.GoToRecord , , (x)
ExitHere:
Exit Sub
HandleErr:
MsgBox " Ощибка" & Err.Number & ":" & Err.Description
Resume ExitHere
End Sub
On Error GoTo HandleErr; - инструкция, которая указывает на то, что при возникновении ошибки, выполнение программы следует продолжить со строки, имеющей метку HandleErr.
DoCmd.GoToRecord , , (x); - процедура перехода на запись в соответствии со значением переданного параметра.
MsgBox " Ощибка" & Err.Number & ":" & Err.Description; - сообщение выдает номер ошибки и ее описание.
Resume ExitHere; - инструкция по очистке ошибок и продолжения выполнения программы с места, отмеченного меткой ExitHere.
Сохраните код.
Для кнопок cmdNext, cmdPrevious и cmdLast напишите процедуры обработки событий самостоятельно, используя константы Access: acNext, acPrevious и acLast.
Добавьте обработчики событийClick для кнопок cmdAdd, cmdSave, cmdDelete и cmdUndo,позволяющие добавлять, сохранять, удалять запись, а также отменять внесенные в запись изменения.
Private Sub cmdAdd_Click
On Error Resume Next'Режим игнорирования ошибок