КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Процедуры 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 шаг алгоритма.
Преимущество использования ХП по сравнению с обычными запросами.
- Повышается скорость (из-за откомпилированного вида)
- План выполнения процедуры сохраняется в быстродействующем КЕШе, поэтому при повторном вызове она берется из КЕШа. (Скорость повышается)
- Уменьшается нагрузка на сеть (передача имя процедуры и список, а выполнение происходит только на сервере)
- Использование ХП реализует принцип модульного проектирования, т.к. процедура позволяет разбивать задачи на самостоятельные части более удобные в управлении.
Типы ХП.
- Системные ХП - предназначены для выполнения административных функций.
- Пользовательские хранятся, как отдельный объект.
- Глобальные и локальные
|