Главная » Статьи » Microsoft Access » Microsoft Access | [ Добавить статью ] |
Решение типовых задач с использованием Visual Basic
Visual BasicСпециальный объект DoCmd поддерживает методы, которые позволяют запускать большинство макрокоманд Access из программ Visual Basic. С помощью макрокоманд выполняются такие действия как закрытие окон, открытие форм и присвоение значений элементам управления. Ссылка на методы объекта DoCmd записывается в следующем виде: [Application.]DoCmd.имя метода[аргументы...] Наиболее часто используется методы OpenForm и OpenReport объекта DoCmd. Синтаксис метода OpenForm: DoCmd.OpenForm имяФормы [, режим] [, имяФайла] [, условиеWhere] [, режимДанных] [, режимОкна] [, аргументыОткрытия] Порядок выполнения 1. Откройте базу данных. 2. Организуйте поиск информации о студенте или сотруднике по фамилии. Для этого: создайте макрос для поиска записи с фамилией, например, ИВАНОВ. Этот макрос должен содержать команды:1) ОткрытьФорму для просмотра информации. 2) НайтиЗапись с образцом поиска "ИВАНОВ". 3) ВыводНаЭкран сообщения об отсутствии записи при условии, если запись с такой фамилией отсутствует (использовать функцию IIF, например : IIf(Forms!имя_формы!FIO = "ИВАНОВ", msgbox("yes"), msgbox("no")) ). создайте в одной из форм кнопку и свяжите ее с созданным макросом. Проверьте работоспособность этой кнопки. Для поиска информации о любом студенте или сотруднике откройте форму с созданной кнопкой в режиме конструктора. Преобразуйте макрос в программу, выбрав команду Сервис / Макросы / Преобразовать макросы. Для упрощения текста программы отключите режим Добавить программу обработки ошибок. Откройте текст процедуры связанной с нажатием кнопки, используя команду Вид / Программа и выберите в качестве объекта просмотра кнопку, которая была связана с макросом. Скорректируйте программу, описав переменную строкового типа и организовав ввод фамилии с помощью функции InputBox. Замените в процедуре фамилию "ИВАНОВ" на имя переменной. Скорректировать фрагмент программы: If (IIf(Forms!таблица1!FIO = имя_переменной, msgbox("yes"), msgbox("no")))_ Then DoCmd.Echo True, "" End If следующим образом: rezult= IIf(Forms!таблица1!FIO = имя_переменной, "yes", "no") if rezult="no" then msgbox("Информации нет") Не забудьте описать переменную rezult. Сохраните изменения в форме. Проверьте работу кнопки. 3. Организуйте проверку отсутствия записей при открытии формы для просмотра информации по заданному условий отбора. Для этого: Создайте макрос для открытия нужной формы, задав в аргументах макрокоманды ОткрытьФорму имя формы и условие отбора, например, стипендия >100. Сохраните созданный макрос. Подключите макрос к кнопке, созданной в другой форме и преобразуйте его в программу. Проверьте работу кнопки. Если записей с заданным условием нет, то форма открывается с пустой записью. Для организации выдачи сообщения можно использовать свойство RecordsetClone, в котором хранится ссылка на набор записей для формы, а в самом наборе имеется свойство RecordCount, содержащее число записей в результирующем множестве. Если значение свойства RecordCount равно 0, то должно выводиться сообщение. Для проверки значения этого свойства запишите инструкцию: If Forms!имя_формы.RecordsetClone.RecordCount = 0 Then DoCmd.close acForm, имя_формы MsgBox "записей, соответствующих заданному условию, не найдено",_ VbInformation, "Нет данных" End If проверьте работу кнопки. 4. Откройте форму для просмотра информации о студентах или сотрудниках имеющих стипендию или зарплату выше средней. Для этого: Откройте текст программы, созданной в предыдущем пункте и скорректируйте его следующим образом: 1) Вставьте в начало процедуры описание нескольких переменных: одну переменную - типа Object для организации цикла просмотра всех записей в таблице, и несколько переменных для вычисления средней стипендии или зарплаты. 2) После описаний с помощью объекта DoCmd откройте форму, например: DoCmd.OpenForm "имя_формы" 3) Организуйте цикл просмотра записей таблицы следующим образом: For Each c In Forms!имя_формы kol=kol+1 summa = summa + Forms!имя_формы!стипендия DoCmd.GoToRecord , "", acNext Next sred=summa/kol ' Вычисление средней стипендии 4) Далее в программе следует открытие формы с параметром условиеWhere задающим условие отбора: "[cтипендия]>100". Скорректируйте условие отбора следующим образом: "[cтипендия]>"+str(sred). Сохраните программу , откомпилируйте ее и проверьте работу кнопки. 5. Продемонстрировать результаты преподавателю и закончить работу с Access. | |
Просмотров: 6114 | Комментарии: 6
| Теги: |
Всего комментариев: 0 | |