КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Процедуры VBA
Программы на VBA хранятся в модулях. Основное содержание модуля – процедуры и функции.
Public – процедура доступа для других процедур во всех модулях.
Private – процедура доступа для другой процедуры того модуля, в котором она описана
Static – указывает, что локальная переменная процедуры сохранена между вызовами процедур.
[Public/ Private] [Static]
Sub имя процедуры (список формальных параметров)
Область описанных переменных
Блокировка алгоритмов 1
[Exit Sub]
Блокировка алгоритмов 2
End Sub
Список формальных параметров
[By ref/By val] [Optional]
[Param Array] as [=значение по умолчанию]
20. Функции в VBA.
В VBA существует два вида функций: встроенные и пользовательские.
Встроенные функции — это функции, которые прилагаются к пакету MS Office и содержатся в VBA. Встроенные функции можно разделить на несколько категорий:
1. Математические. Они предназначены для вычисления основных математических функций.
| Функция
| Возвращаемое значение
| | Abs
| Модуль
| | Atn
| Арктангенс
| | Cos
| Косинус
| | Exp
| Экспонента
| | Log
| Натуральный логарифм
| | Rnd
| Случайное число. Перед вызовом функции следует использовать инструкцию Randomize
| | Sgn
| Знак числа
| | Sin
| Синус
| | Sqr
| Квадратный корень
| | Tan
| Тангенс
| | Fix
| Целая часть числа. Для отрицательных аргументов возвращается целое число, большее или равное заданному
| | Int
| Целая часть числа. Для отрицательных аргументов возвращается целое число, меньшее или равное заданному
| 2. Функции проверки типов позволяют определить принадлежность той или иной переменной конкретному типу. Результат логического типа.
| Функция
| На принадлежность какому типу проверяется
какому типу проверяется
| | IsArray
| Массив
| | IsDate
| Дата
| | Is Empty
| Описана инструкцией Dim
| | IsError
| Код ошибки
| | IsNull
| Имеет пустое значение
| | IsNumeric
| Числовой тип
| | IsObject
| Объект
| 3. Функции обработки строк предназначены для работы со строковыми выражениями.
| Функция
| Действие
| | Asc(строка)
| Возвращает ASCII-код начальной буквы
строки
| | Chr(код)
| Преобразует ASCII-код в строку
| | Lease(строка)
| Преобразует строку к нижнему регистру
| | Ucase(строка)
| Преобразует строку к верхнему регистру
| | Left(строка, число)
| Возвращает подстроку, состоящую из указанного числа первых символов строки
| | Right(строка, число)
| Возвращает подстроку, состоящую из указанного числа последних символов строки
| | Mid(строка, начало , длина)
| Возвращает подстроку, состоящую из указанного числа символов строки, начиная с заданной позиции
| | Len(строка)
| Возвращает длину строки
| | I/Trim (строка)
| Возвращает исходную строку без начальных пробелов
| | RTrim(строка)
| Возвращает исходную строку без конечных пробелов
| | Trim(строка)
| Возвращает исходную строку без начальных и конечных пробелов
| | Space(число)
| Возвращает строку, состоящую из указанного числа пробелов
| | String(число, символ)
| Возвращает строку, состоящую из указанного числа повторений заданного символа
| | StrComp(строка1, строка2 [, вариант])
| Сравнивает две строки. Вариант равен 0, если идет двоичное сравнение, равен 1 — при посимвольном сравнении без учета регистра. Если строка! меньше строки!. возвращается значение -1-0 — если строки равны, 1 — в оставшемся случае.
| | InStr([начало,] строка1, строка2 [, вариант])
| Возвращает позицию первого вхождения строки 1 в строку2. Поиск начинается с указанной позиции. Если аргумент начало опущен, поиск идет с первой позиции.
| 4. Функции времени и даты.
| Функция
| Действие
| | Date
| Возвращает текущую дату
| | Time
| Возвращает текущее время
| | Функция
| Действие
| | Now
| Возвращает текущие дату и время
| | Hour
| Выделяет значение часов из данных типа время
| | Minute
| Выделяет значение минут из данных типа время
| | Second
| Выделяет значение секунд из данных типа время
| | Day
| Выделяет числовое значение дня из данных типа даты
| | Month
| Выделяет числовое значение месяца из данных типа даты
| | Year
| Выделяет числовое значение года из данных типа даты
| | Weekday
| Выделяет числовое значение дня недели из данных типа даты
| | Timer
| Возвращает число секунд, прошедших с начала суток
| | DateDiff
| Возвращает число временных интервалов между двумя датами
| | DatePart
| Выделяет из даты указанный временной интервал
| | DateAdd
| Возвращает дату, к которой добавлен указанный временной интервал
| | TimeSerial
| Формирует время по указанным часам, минутам и секундам
| | DateSerial
| Формирует дату по указанному дню, месяцу и году
| | TimeValue
| Преобразует строку в формат времени
| 21.Формальные и фактические параметры в процедурах и функциях
Хранимые процедуры – именованный набор команд на транзакт SQL, хранящихся на сервере и представляет самостоятельный объект БД. ХП хранятся в предварительно откомпилированном виде, поэтому эффективность их выполнения выше, чем у обычных запросов. При выполнении ХП процедуры в 1 раз выполняются в 5 шагов следующего алгоритма:
- происходит лексический и синтаксический анализ запроса. В результате выполнения 1 шага процедура разобьется на отдельные компоненты.
- Компоненты сопоставляются с реальными объектами (таблицы, запросы). Разрешение внешних ссылок.
- В системной таблице (Sysobjects) заполняется имя процедуры. Тип: Р.А. в системной таблице (Sys comments) в поле text заполняется текст процедуры.
- Создается предварительный план выполнения запроса, сохраняется в системной таблице Sys PROCEDURES
- при первом выполнении ХП дерево запроса считывается и окончательно оптимизируется.
При повторном вводе выполняется ранее созданный план процедуры. При повторении вызова выполняется только 5 шаг алгоритма.
Преимущество использования ХП по сравнению с обычными запросами.
- Повышается скорость (из-за откомпилированного вида)
- План выполнения процедуры сохраняется в быстродействующем КЕШе, поэтому при повторном вызове она берется из КЕШа. (Скорость повышается)
- Уменьшается нагрузка на сеть (передача имя процедуры и список, а выполнение происходит только на сервере)
- Использование ХП реализует принцип модульного проектирования, т.к. процедура позволяет разбивать задачи на самостоятельные части более удобные в управлении.
Типы ХП.
- Системные ХП - предназначены для выполнения административных функций.
- Пользовательские хранятся, как отдельный объект.
- Глобальные и локальные
|