Кузин А.В., Левонисова С.В. Базы данных (5-е издание, 2012) (1084448), страница 40
Текст из файла (страница 40)
Если требуется,чтобы новая форма и отчет имели модуль класса, то для этогосвойства следует установить значение True (-1).CurDir (VBA). Возвращает значение типа Variant (String), представляющее собой текущий путь.Синтаксис:CurDir[(m*CK)]Необязательный аргумент диск является строковым выражением, указывающим существующий диск. Если диск не указан илиаргумент диск является пустой строкой (“ ”), функция CurDir возвращает путь к текущему диску.CurrentDb.
Возвращает объектную переменную типа Database,представляющую собой текущую базу данных, открытую в окнеMicrosoft Access.205Синтаксис:CurrentDbПри необходимости прямого изменения структуры базы данных и обращения к данным из программы Visual Basic следуетиспользовать объекты доступа к данным. Функция CurrentDb предоставляет способ доступа к текущей базе данных из программыVisual Basic, при котором не требуется знания имени конкретнойБД.
После создания переменной, указывающей на текущую базуданных, становится возможным доступ к объектам и семействам,входящим в иерархию объектов доступа к данным.Функция CurrentDb позволяет создать несколько объектныхпеременных, представляющих собой одну и ту же базу данных.Приведем пример, где переменные dbsA и dbsB указывают натекущую базу данных:Dim dbsA As Database, dbsB As DatabaseSet dbsA = CurrentDbSet dbsB = CurrentDbВ ранних версиях Microsoft Access для возвращения указателятекущей базы данных использовался следующий синтаксис:DBEngine.Workspaces(0).Databases(0) или DBEngine (0) (0)В Microsoft Access для Windows 95 вместо него следует использовать функцию CurrentDb, которая создает новый экземпляр текущей базы данных, тогда как конструкция DBEngine(0)(0) представляет собой ссылку на открытую копию текущей БД.
С помощью функции CurrentDb пользователь имеет возможность создатьнесколько объектных переменных типа Database, представляющихсобой текущую базу данных. Microsoft Access по-прежнему поддерживает синтаксис видаDBEngine(0)(0)Однако при этом рекомендуется вносить изменения в имеющиеся программы во избежание возможных конфликтов при работе с сетевой базой данных.При необходимости работы с другой базой данных в то время,когда текущая база данных открыта в окне Microsoft Access, следует использовать метод OpenDatabase объекта Workspace, который не открывает вторую базу данных в окне Microsoft Access, апросто возвращает переменную типа Database, представляющуюсобой вторую базу данных.
Приведем пример возвращения указателя на текущую базу данных и базу данных Contacts.mdb:206Dim dbsCurrent As Database, dbsContacts As DatabaseSet dbsCurrent = CurrentDbSet dbsContacts = DBEngine.Workspaces (0) .OpenDatabase("Contacts.mdb")CurrentUser. Возвращает имя текущего пользователя базы данных.Например, функцию CurrentUser используют в процедурах,регистрирующих пользователей, которые вносят изменения в базыданных.Синтаксис:CurrentUserФункция CurrentUser возвращает строку, содержащую имя текущей учетной записи пользователя.Если не создана защищенная рабочая группа, то функцияCurrentUser возвращает имя используемой по умолчанию учетной записи пользователя Admin, которая дает пользователю полные права на все объекты базы данных.Если включена защита рабочей группы, функция CurrentUserвозвращает имя текущей учетной записи пользователя.
Для всехучетных записей пользователя кроме Admin необходимо указывать разрешения на объекты базы данных.Инструкция, которая определяет имя текущего пользователя ивыводит его в окно диалога, имеет видMsgBox("Текущий пользователь: " & CurrentUser)CVErr (VBA). Возвращает значение типа Variant с подтипомError, содержащее код ошибки, указанный пользователем.Синтаксис:СУЕгг(кодОшибки)Обязательный аргумент кодОшибки является любым допустимым кодом ошибки.Функция CVErr применяется для создания ошибок, определяемых пользователем, в создаваемых им процедурах. Например, присоздании функции, которая принимает несколько аргументов иобычно возвращает строку, имеется возможность проверки того,что введенные аргументы попадают в допустимый диапазон значений.
Если же это не так, весьма вероятно, что созданная функция не вернет ожидаемое значение. В этом случае функция CVErrпозволит вернуть код ошибки, чтобы определить действия, которые необходимо предпринять.207Следует отметить, что неявное преобразование значения Errorнедопустимо. Например, не допускается прямое присвоение возвращаемого значения CVErr переменной с типом, отличным отVariant. Однако имеется возможность выполнения явного преобразования (с помощью CInt, CDbl и т.п.) значения, возвращаемого CVErr, и присвоения этому значению переменной с соответствующим типом данных.Date (VBA). Возвращает значение типа Variant (Date), содержащее текущую системную дату.Синтаксис:DateДля установки системной даты используется инструкция Date.DateAdd (VBA). Возвращает значение типа Variant (Date), содержащее дату, к которой добавлен указанный временной интервал.Синтаксис:DateAdd(interval, number, date)Синтаксис функции DateAdd содержит аргументы, приведенные в табл.
П2.7.Т а б л и ц а П2.7Аргументы функции DateAddАргументОписаниеintervalОбязательный. Представляет собой строковое выражение,указывающее тип добавляемого временного интервалаnumberОбязательный. Представляет собой числовое выражение,указывающее число временных интервалов, котороеследует добавить.
Это число может быть положительным(для получения более поздних дат) или отрицательным(для получения более ранних дат)dateОбязательный. Имеет значение типа Variant (Date) илилитерал даты, представляющий собой дату, к которойдобавляется указанный временной интервалДопустимые значения аргумента interval следующие:уууу — год; Q — квартал; m — месяц; Y — день года; D — деньмесяца; w — день недели; ww — неделя; Н — часы; N — минуты;S — секунды.208Функция DateAdd предназначена для добавления или вычитания указанного временно'го интервала из значения даты.
Например, с помощью этой функции можно вычислить дату на 30 днейболее позднюю, чем текущая, или время на 45 минут более позднее, чем текущее.Для добавления дней к аргументу date можно задавать временной интервал как день года (“е”), день месяца (“d”) или деньпедели (“w”).Функция DateAdd не возвращает неправильных дат. Один месяц к 31 января добавляет следующее выражение:DateAdd("m", 1, "31-янв-95")В этом случае будет возвращена дата 28-фев-95, а не 31-фев-95.Если же в качестве аргумента date указать 31-янв-96, то будетвозвращена дата 29-фев-96, поскольку 1996 г.
является високосным.Если будет получена дата более ранняя, чем 100-й год (т.е. вычитаемый временной интервал будет содержать больше лет, чемисходное значение date), возникнет ошибка.Если аргумент number не является значением типа Long, егозначение округляется до ближайшего целого числа перед выполнением операции.DateDiff (УВА). Возвращает значение типа Variant (Long), указывающее число временных интервалов между двумя датами.Синтаксис:DateDiff(interval, datel, date2[, firstdayofweek[, firstweekofyear]])Синтаксис функции DateDiff содержит аргументы, приведенные в табл. П2.8.Т а б л и ц а П2.8Аргументы функции DateDiffАргументОписаниеintervalОбязательный.
Представляет собой строковое выражение, указывающее тип временного интервала, которыйследует использовать при вычислении разности междудатами datel и date2datel, date2Обязательные. Имеют значения типа Variant (Date), т.е.две даты, разность между которыми следует вычислитьfirstdayofweek Необязательный. Представляет собой константу, указывающую первый день недели. Если этот аргумент опущен, считается, что неделя начинается с воскресенья209Окончание табл. II2.fiАргументОписаниеfirstweekofyear Необязательный. Представляет собой константу, указывающую первую неделю года. Если этот аргументопущен, первой неделей считается неделя, содержащая 1 январяДопустимые значения аргумента interval следующие:уууу — год; q — квартал; m — месяц; у — день года; d — деньмесяца; w — день недели; ww — неделя; h — часы; п — минуты; s —секунды.Аргумент firstdayofweek может определяться строковой константой или иметь числовое значение:КонстантаЗначениеОписаниеvbUseSystem0Используется значение N1^ АР1vbSunday1Воскресенье (по умолчанию)vbMonday2ПонедельникvbTuesday3ВторникvbWednesday4СредаvbThursday5ЧетвергvbFriday6Пятницаvb Saturday7СубботаАргумент АМхуеекоГуеаг может определяться строковой константой или иметь числовое значение:КонстантаЗначениеОписаниеvbUseSystem0Используется значение N1.8 АР1vbFirsUanl1Неделя, которая содержит 1 января (по умолчанию)vbFirstFourDays2Первая неделя, которая содержит по крайней мере четыре дня нового годаvbFirstFullWeek3Первая полная неделя годаФункция Ва1еБ1й' предназначена для определения числа указанных временных интервалов между двумя датами.
Например, спомощью этой функции можно вычислить число дней между двумя датами или число недель между текущей датой и концом года.210Для вычисления числа дней между датами datel и date2 можноиспользовать временные интервалы типа день года (“у”) или деньмесяца (“d”). Если interval задается как день недели (“w”), возвращается число недель между двумя датами.