- •1. Операторы, процедуры, типы данных vba
- •Основные типы данных в vba
- •Преобразование типов данных
- •Is (оператор)
- •Функция IsArray
- •IsArray (Имя переменной)
- •IsDate (функция)
- •IsEmpty (функция)
- •IsError( функция)
- •IsMissing(функция)
- •IsNull (функция)
- •IsNumeric (функция)
- •IsNumeric(выражение)
- •IsObject(функция)
- •2. Работа с объектами
- •3. Применение процедур vba
- •Модель программирования в Access
- •Типы процедур
- •Поле со списком
- •Вызов процедур
- •Запуск процедур-функций
- •Запуск процедур-подпрограмм
- •4. Операторы vba
- •Логические операторы Логические операторы
- •Некоторые функции в vba
- •5. Объявление переменных, констант в vba
- •Создание пользовательских типов данных
- •Dim c As клиент
- •Cоздание массивов постоянной длины
- •Cоздание массива из списка значений
- •Создание динамических массивов
- •6.Организация ввода-вывода данных с помощью функций InputBox и MsgBox
- •7. Управляющие структуры
- •Структура If … Then
- •Структура If … Then … Else
- •Вторая группа операторов]
- •Второй блок операторов]
- •Алгоритм
- •Переход по метке
- •10: Программный код Cтруктура Select Case
- •8. Циклы в vba Cтруктура For ….Next
- •Операторы
- •Структура For Each … Next
- •Структура Do… Loop
- •Структура Do While … Loop
- •Структура Do ….While Loop
- •Cтруктуры Do Until … Loop и Do … Loop Until
- •9. Операторы Exit
- •Функции для работы со строковыми переменными
- •11. Классические задачи программирования: сортировка, поиск
- •If IsNull(массив(X)) Then Exit Function
- •12. Управление базами данных
- •Основные понятия базы данных
- •Установка значений свойств
- •Считывание свойств
- •Вызов методов
- •Объект.Метод
- •Присваивание значений возвращаемых из методов
- •13. Объект Database –база данных
- •Cвойства объекта Database
- •Методы объекта Database
- •14. Объект TableDef
- •Свойства объекта TableDef
- •Методы объекта TableDef
- •Использование свойства Fields объекта TableDef
- •Использование свойства TableDefs объекта Database
- •15. Объект Form –экранная форма Свойства объекта Form
- •Применение некоторых свойств oбъекта Form Свойство Me
- •Cвойство ActiveControl
- •Свойство CurrentRecord
- •Свойство Visible
- •Свойства OrderBy и OrderByOn
- •Методы объекта Form
- •Список и поле со списком
- •Глава 16. Объект DoCmd и его методы
- •Глава 17. Объект Recordset
- •Свойства объекта Recordset
- •Свойства bof и eof
- •Создание объекта Recordset
- •Глава 18. Применение объекта Debug
- •Глава 19. Применение свойства RecordCount
- •Применение свойства Fields
- •Применение метода GetRows объекта Recordset
- •Глава 21. Объекты QueryDef
- •Свойства объектов QueryDef
- •Использование метода Execute
- •Глава 22. Применение языка sql
- •Использование выражения select
- •Простые формы select
- •Фильтрация данных с помощью предложения where
- •Сортировка данных
- •Объединение таблиц
- •Глава 23. Объект Report События
- •Некоторые свойства объекта Report
- •Методы объекта Report
- •Применение свойств объекта Report
- •Глава 24. Настройка пользовательского интерфейса
- •Глава 25. Создание и изменение панелей команд
- •Глава 26. Создание и удаление контекстных меню
- •Приложение
- •Этапы реализации задачи:
- •If IsNull(.Fields!цена) Then Exit Do
If IsNull(.Fields!цена) Then Exit Do
s = s +.Fields!Сумма_с_НДС
.MoveNext
Loop
End With
Me.Итого.Value = Str(s)
Set basa = Nothing
End Sub
11. По нажатию кнопки Сохранить данные о клиенте, исполнителе, дате заказа, поставщике, товаре, цене, об общей стоимости заказа должны заносится соответственно в таблицы «Анализ данных» и «Анализ данных1»:
Private Sub Сохранить_Click()
Dim basa As Database, nabor As Recordset, nabor1 As Recordset, zacaz As Integer
Set basa = CurrentDb
Set nabor = basa.OpenRecordset("Анализ данных", dbOpenTable)
With nabor
.AddNew
.Fields!клиент = Me.клиент.Value
.Fields!исполнитель = Me.исполнитель.Value
.Fields!дата_заказа = Me.Дата.Value
.Fields!Сумма_заказа = Val(Me.Итого.Value)
zacaz =.Fields!№_заказа
.Update
.Close
End With
Set nabor = basa.OpenRecordset("Анализ данных1", dbOpenTable)
Set nabor1 = basa.OpenRecordset("Промежуточная", dbOpenTable)
With nabor
Do Until IsNull(nabor1.Fields!Товар)
.AddNew
.Fields!Товар = nabor1.Fields!Товар
.Fields!Поставщик = nabor1.Fields!Поставщик
.Fields!Цена = nabor1.Fields!Цена
.Fields!№_заказа = zacaz
.Update
nabor1.MoveNext
Loop
.Close
End With
12. По событию Открытие формы пишем процедуру, в которой будет
произведена очистка бланка заказа:
Private Sub Form_Open(Cancel As Integer)
Dim basa As Database, nabor As Recordset
Set basa = CurrentDb
Set nabor = basa.OpenRecordset("Промежуточная", dbOpenTable)
Me.исполнитель.Value = Null
Me.клиент.Value = Null
Me.№счета_клиента.Value = Null
Me.Итого.Value = Null
Me.Адрес_клиента.Value = Null
Me.телефон.Value = Null
With nabor
.MoveFirst
Do
.Edit
.Fields!Товар = Null
.Fields!Поставщик = Null
.Fields!Цена = Null
.Fields!количество = Null
.Fields!ставка_НДС = Null
.Fields!Сумма_с_НДС = Null
.Update
.MoveNext
Loop While Not IsNull(.Fields!Цена)
Me.Refresh
End With
End Sub
Далее создадим панель инструментов с двумя кнопками с тем, чтобы бланк заказа был готов к печати для оплаты заказа и обратно: оформление заказа.
Выполняем следующие действия:
1.Сервис/Настройка/Панели инструментов/Создать
2. Меняем стандартное название Настраиваемая1 на Режимы работы
3. Вкладка Команды. Ставим две кнопки на нашу панель инструментов.
4. Даем им названия: Работа, Печать. Выбираем значки на кнопки.
Всё это делается в контекстном меню.
5. Далее назначаем выполняемое действие. Для этого пишем две функции
с использованием свойства Visible для всех кнопок в форме «Бланк».
Функция r() устанавливает все кнопки видимыми.
Public Function r()
Dim frm As Form_бланк
Set frm = Forms!бланк
frm.Клиенты.Visible = True
frm.Добавить_клиента.Visible = True
frm.Добавить_товар.Visible = True
frm.Сохранить.Visible = True
frm.итог.Visible = True
frm.Товары.Visible = True
End Function
Функция p() устанавливает все кнопки невидимыми.
Public Function p()
Dim frm As Form_бланк
Set frm = Forms!бланк
frm.Клиенты.Visible = False
frm.Добавить_клиента.Visible = False
frm.Добавить_товар.Visible = False
frm.Сохранить.Visible = False
frm.итог.Visible = False
frm.Товары.Visible = False
End Function
В результате работы приложения для конкретного клиента бланк заказа к печати выглядит следующим образом :
Таблицы с сохраненными результатами выглядят так: