Applies ToAccess за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Тази статия предоставя много примери на изрази в Access. Изразът е комбинация от математически или логически оператори, константи, функции, полета на таблица, контроли и свойства, който се изчислява в една-единствена стойност. Можете да използвате изрази в Access, за да изчислявате стойности, да проверявате данни и да задавате стойност по подразбиране.

В тази статия

Формуляри и отчети

Таблиците в този раздел предоставят примери на изрази, които изчисляват стойност в контрола, разположена във формуляр или отчет. За да създадете изчисляема контрола, можете да въведете израз в свойството ControlSource на контролата, а не в поле от таблица или заявка.

Забележка    Можете също да използвате изрази във формуляр или отчет, когато правите Осветяване на данни с помощта на условно форматиране.

Текстови операции

Изразите в следващата таблица използват оператори & (амперсанд) и + (плюс), за да комбинират текстови низове, вградени функции за манипулиране на текстови низове или по друг начин да работят върху текст за създаване на изчисляема контрола.

Израз

Резултат

="N/A"

Показва "Няма".

=[FirstName] & " " & [LastName]

Показва стойностите, които се намират в полета на таблица, наречени "СобственоИме" и "ФамилноИме". В този пример операторът & се използва за комбиниране на полето "СобственоИме", знак за интервал (ограден в кавички) и полето "ФамилноИме".

=Left([ProductName], 1)

Използва функцията Left, за да покаже първия знак на стойността на поле или контрола, наречена ProductName.

=Right([AssetCode], 2)

Използва функцията Right, за да покаже последните 2 знака на стойността в поле или контрола, наречена AssetCode.

=Trim([Address])

Използва функцията Trim, за да покаже стойността на контролата Address, като премахва водещите или завършващите интервали.

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

Използва функцията IIf, за да покаже стойностите на контролите "Град" и "ПощенскиКод", ако стойността в контролата Region е празна; в противен случай показва стойностите на контролите "Град", "Регион" и "ПощенскиКод", разделени с интервали.

=[City] & (" " + [Region]) & " " & [PostalCode]

Използва оператора + и разпространение на празна стойност, за да покаже стойностите на контролите "Град" и "ПощенскиКод", ако стойността в полето или контролата "Регион" е празна; в противен случай показва стойностите на полетата или контролите "Град", "Регион" и "ПощенскиКод", разделени с интервали.

Разпространение на празна стойност означава, че ако някой компонент на израз е празна стойност, целият израз също е празна стойност. Операторът + поддържа разпространение на празна стойност; операторът & не прави това.

Най-горе на страницата

Горни и долни колонтитули

Можете да използвате свойствата Page и Pages, за да покажат или отпечатат номера на страници във формуляри и отчети. Свойствата Page и Pages са налични само по време на печат или визуализация на печата, така че те не се появяват в списъка със свойства за формуляра или отчета. Обикновено използвате тези свойства, като поставите текстово поле в секцията за горен или долен колонтитул на формуляра или отчета и след това използвате израз, например като тези, показани в следващата таблица.

За повече информация относно използването на горни и долни колонтитули във формуляри и отчети вж. статията Вмъкване на номера на страници във формуляр или отчет.

Израз

Резултат

=[Page]

1

="Page " & [Page]

Страница 1

="Page " & [Page] & " of " & [Pages]

Страница 1 от 3

=[Page] & " of " & [Pages] & " Pages"

1 от 3 страници

=[Page] & "/" & [Pages] & " Pages"

1/3 страници

=[Country/region] & " - " & [Page]

UK - 1

=Format([Page], "000")

001

="Printed on: " & Date()

Отпечатано на: 31.12.17 г.

Най-горе на страницата

Аритметични оператори

Можете да използвате изрази за събиране, изваждане, умножение и деление на стойности в две или повече полета или контроли. Можете също да използвате изрази, за да извършите аритметични операции с дати. Да предположим например, че имате поле тип Date/Time в таблица, наименувано "ДатаДължима". В полето или в контролата, обвързана с полето, изразът =[RequiredDate] - 2 връща стойност на дата/час, равна на два дни преди текущите стойности в полето "ДатаДължима".

Израз

Резултат

=[Subtotal]+[Freight]

Сумата на стойностите на полетата или контролите Subtotal и Freight.

=[RequiredDate]-[ShippedDate]

Интервалът между стойностите на датите на полетата или контролите RequiredDate и ShippedDate.

=[Price]*1.06

Произведението на стойността на полето или контролата Price и 1,06 (добавя 6 процента към стойността на Price).

=[Quantity]*[Price]

Произведението на стойностите на полетата или контролите Quantity и Price.

=[EmployeeTotal]/[CountryRegionTotal]

Частното на стойностите на полетата или контролите СлужителОбщо и СтранаРегионОбщо.

Забележка    Когато използвате аритметичния оператор (+, -, * и /) в израз и стойността на една от контролите в израза е празна, резултатът от целия израз ще бъде празна стойност – това е известно като разпространение на празна стойност. Ако записи в една от контролите, които използвате в израза, може да имат стойност Null, можете да избегнете разпространението на празна стойност чрез конвертиране на празната стойност в нула, като използвате функцията Nz – например =Nz([Subtotal])+Nz([Freight]).

Най-горе на страницата

Стойности в други контроли

Понякога ви е необходима стойност, която съществува някъде другаде, например в поле или контрола в друг формуляр или отчет. Можете да използвате израз, който връща стойността от друго поле или контрола.

Следващата таблица съдържа примери на изрази, които можете да използвате в изчисляеми контроли във формуляри.

Израз

Резултат

=Forms![Orders]![OrderID]

Стойността на контролата "ИДпоръчка" във формуляра "Поръчки".

=Forms![Orders]![Orders Subform].Form![OrderSubtotal]

Стойността на контролата "Междинна СумаПоръчки" в подформуляра на име "Подформуляр поръчки" на формуляра "Поръчки".

=Forms![Orders]![Orders Subform]![ProductID].Column(2)

Стойността на третата колона в "ИДпродукт", списъчно поле с няколко колони в подформуляра на име "Подформуляр поръчки" на формуляра "Поръчки". (Обърнете внимание, че 0 се отнася до първата колона, 1, се отнася за втората и т.н.)

=Forms![Orders]![Orders Subform]![Price] * 1.06

Произведението на стойността на контролата "Цена" на подформуляра на име "Подформуляр поръчки" на формуляра "Поръчки" и 1,06 (добавя 6 процента към стойността на контролата "Цена").

=Parent![OrderID]

Стойността на контролата "ИДпоръчка" в основния или родителския формуляр на текущия подформуляр.

Изразите в следващата таблица показват някои начини за използване на изчисляеми контроли в отчети. Изразите се обръщат към Свойство за отчет.

Израз

Резултат

=Report![Invoice]![OrderID]

Стойността на контрола, наречена "ИДпоръчка" в отчет, наречен "Фактура".

=Report![Summary]![Summary Subreport]![SalesTotal]

Стойността на контролата "ОбщоПродажби" на подотчета на име "Резюме подотчет" в отчета "Резюме".

=Parent![OrderID]

Стойността на контролата OrderID в основния или родителския отчет на текущия подотчет.

Най-горе на страницата

Брой, сума и средна стойност

Можете да използвате вид функция, наречена агрегатна функция, за да изчислите стойности за едно или повече полета или контроли. Например можете да изчислите сума на групи за долния колонтитул на група в отчет или междинна сума на поръчки за елементите на ред във формуляр. Можете също да преброите броя елементи в едно или повече полета или да изчислите средна стойност.

Изразите в следващата таблица показват някои от начините за използване на функции, като Avg, Count и Sum.

Израз

Описание

=Avg([Freight])

Използва функцията Avg, за да покаже средната стойност на стойностите на поле или контрола в таблица, наречено "Freight".

=Count([OrderID])

Използва функцията Count, за да покаже броя на записите в контролата OrderID.

=Sum([Sales])

Използва функцията Sum, за да покаже сумата от стойностите на контролата Sales.

=Sum([Quantity]*[Price])

Използва функцията Sum, за да покаже сумата на произведението от стойностите на контролите Quantity и Price.

=[Sales]/Sum([Sales])*100

Показва процента от продажбите, определени чрез разделяне на стойността на контролата Sales на сумата на всички стойности на контролата Sales.

Ако сте задали свойството Format на контролата на Percent, не включвайте *100 в израза.

За повече информация относно използването на агрегатни функции и сумиране на стойностите в полета и колони вж. статиите Сумиране на данни с помощта на заявка, Преброяване на данни с помощта на заявка, Показване на суми на колони в лист с данни чрез сумарен ред и Показване на суми на колони в лист с данни.

Най-горе на страницата

SQL агрегатни функции

Можете да използвате вид функция, наречена SQL или домейнова агрегатна функция, когато трябва да сумирате или преброявате стойности избирателно. Един "домейн" се състои от едно или повече полета в една или повече таблици или една или повече контроли в един или повече формуляри или отчети. Например можете да съпоставите стойностите в поле на таблица със стойности в контрола на формуляр.

Израз

Описание

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]"))

Използва функцията DLookup, за да върне стойността на полето ContactName в таблицата Suppliers, където стойността на полето SupplierID в таблицата съвпада със стойността на контролата SupplierID във формуляра Suppliers.

=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID])

Използва функцията DLookup, за да върне стойността на полето ContactName в таблицата Suppliers, където стойността на полето SupplierID в таблицата съвпада със стойността на контролата SupplierID във формуляра New Suppliers.

=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'")

Използва функцията DSum, за да върне общата сума на стойностите в полето OrderAmount в таблицата Sales, където CustomerID е RATTC.

=DCount("[Retired]","[Assets]","[Retired]=Yes")

Използва функцията DCount, за да върне броя на стойностите "Да" в полето Retired (поле "Да/Не") в таблицата Assets.

Най-горе на страницата

Операции за дата

Проследяване на дати и часове е основна дейност в базите данни. Например можете да изчислите колко дни са изминали от датата на фактурата, за да знаете кога е срокът на вашите вземания. Можете да форматирате датите и часовете по много начини, както е показано в следващата таблица.

Израз

Описание

=Date()

Използва функцията Date, за да покаже текущата дата във формуляра на mm-dd-yy, където mm е месец (от 1 до 12), dd е ден (от 1 до 31), а yy са последните две цифри от годината (от 1980 до 2099).

=Format(Now(), "ww")

Използва функцията Format, за да покаже номера на седмицата на годината за текущата дата, където ww представлява номер на седмица от 1 до 53.

=DatePart("yyyy", [OrderDate])

Използва функцията DatePart, за да покаже четирицифрената година от стойността на контролата за OrderDate.

=DateAdd("y", -10, [PromisedDate])

Използва функцията DateAdd, за да покаже дата, която е 10 дни преди стойността на контролата PromisedDate.

=DateDiff("d", [OrderDate], [ShippedDate])

Използва функцията DateDiff, за да покаже разликата в брой дни между стойностите на контролите OrderDate и ShippedDate.

=[InvoiceDate] + 30

Използва аритметични операции с дати, за да изчисли датата 30 дни след датата на полето InvoiceDate или контрола.

Най-горе на страницата

Условия на само две стойности

Примерните изрази в следващата таблица използват функцията IIf, за да върнат една от две възможни стойности. Предавате на функцията IIf три аргумента: Първият аргумент е израз, който трябва да връща стойност True или False. Вторият аргумент е стойността, която трябва да се върне, ако изразът е True, а третият аргумент е стойността, която трябва да се върне, ако изразът е False.

Израз

Описание

=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed")

Използва функцията IIf (незабавно "Ако"), за да покаже съобщението "Поръчката е потвърдена", ако стойността на контролата Confirmed е Yes; в противен случай показва съобщението "Order Not Confirmed."

=IIf(IsNull([Country/region]), " ", [Country])

Използва функциите IIf и IsNull, за да покаже празен низ, ако стойността на контролата Country/region е Null; в противен случай показва стойността на контролата Country/region.

=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode])

Използва функциите IIf и IsNull, за да покаже стойностите на контролите City и PostalCode, ако стойността в контролата Region е празна; в противен случай показва стойностите на полетата или контролите City, Region и PostalCode.

=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

Използва функциите IIf и IsNull, за да покаже съобщението "Проверка за липсваща дата", ако резултатът от изваждане на ShippedDate от RequiredDate е празна стойност; в противен случай показва интервала между стойностите на контролите RequiredDate и ShippedDate.

Най-горе на страницата

Заявки и филтри

Този раздел съдържа примери на изрази, които можете да използвате за създаване на изчисляемо поле в заявка или за даване на критерии за заявка. Изчисляемото поле е колона в заявка, която дава израз в резултат. Например можете да изчислите стойност, да комбинирате текстови стойности, като например собствено и фамилно име, или да форматирате част от дата.

Можете да използвате критерии в заявка, за да ограничите записите, с които работите. Например можете да използвате оператор Between, за да дадете начална и крайна дата и да ограничите резултатите от заявката до поръчките, експедирани между тези две дати.

По-долу следват примери на изрази за използване в заявките.

Текстови операции

Изразите в следващата таблица използват операторите & и +, за да комбинират текстови низове, използват вградени функции, за да работят върху текстов низ, или работят по друг начин върху текст за създаване на изчисляема контрола.

Израз

Описание

FullName: [FirstName] & " " & [LastName]

Създава поле, наречено "ПълноИме", което показва стойностите в полетата "СобственоИме" и "ФамилноИме", разделени с интервал.

Address2: [City] & " " & [Region] & " " & [PostalCode]

Създава поле, наречено Address2, което показва стойностите в полетата City, Region и PostalCode, разделени с интервали.

ProductInitial: Left([ProductName], 1)

Създава поле, наречено ProductInitial, и след това използва функцията Left, за да покаже в полето за ProductInitial първия знак на стойността в полето ProductName.

TypeCode: Right([AssetCode], 2)

Създава поле, наречено TypeCode, и след това използва функцията Right, за да покаже последните два знака на стойностите в полето AssetCode.

AreaCode: Mid([Phone],2,3)

Създава поле, наречено AreaCode, и след това използва функцията Mid, за да покаже трите знака, започвайки с втория знак на стойността в полето Phone.

ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100

Наименува изчисляемото поле ExtendedPrice и използва функцията CCur, за да изчисли общите суми на ред с приложената отстъпка.

Най-горе на страницата

Аритметични оператори

Можете да използвате изрази за събиране, изваждане, умножение и деление на стойности в две или повече полета или контроли. Можете да изпълнявате аритметични операции и с дати. Да предположим например, че имате поле тип Date/Time, наречено "ДатаДължима". Изразът =[RequiredDate] - 2 връща стойност на дата/час, равна на два дни преди стойността в полето "ДатаДължима".

Израз

Описание

PrimeFreight: [Freight] * 1.1

Създава поле, наречено "ОбщоНавло", и след това показва таксата за навло плюс 10 процента в полето.

OrderAmount: [Quantity] * [UnitPrice]

Създава поле, наречено "СтойностПоръчка", а след това да показва произведението на стойностите в полетата "Количество" и "ЕдиничнаЦена".

LeadTime: [RequiredDate] - [ShippedDate]

Създава поле, наречено "ОставащоВреме", и след това показва разликата между стойностите в полетата "ДатаДължима" и "ДатаЕкспедиране]".

TotalStock: [UnitsInStock]+[UnitsOnOrder]

Създава поле, наречено "ОбщаНаличност", и след това показва сумата от стойностите в полетата "НаличностЕдиници" и "ПоръчаниЕдиници".

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100

Създава поле, наречено "ПроцентНавло", и след това показва процента на таксите за навло във всяка междинна сума. Този израз използва функцията Sum, за да сумира стойностите в полето "Навло", и след това разделя тези суми на сумата от стойностите в полето "МеждиннаСума".

За да използвате този израз, трябва да конвертирате вашата заявка за избиране в заявка Totals, защото трябва да използвате реда Total в мрежата за проектиране и да зададете клетката Total за това поле на Expression.

За повече информация относно създаването на заявка Totals вж. статията Сумиране на данни с помощта на заявка.

Ако сте задали свойството Format на полето на Percent, не включвайте *100.

За повече информация относно използването на агрегатни функции и сумиране на стойностите в полета и колони вж. статиите Сумиране на данни с помощта на заявка, Преброяване на данни с помощта на заявка, Показване на суми на колони в лист с данни чрез сумарен ред и Показване на суми на колони в лист с данни.

Най-горе на страницата

Операции за дата

Почти всички бази данни съхраняват и проследяват дати и часове. Работата с дати и часове в Access извършвате чрез задаване на полета за дата и час в таблиците на данни тип Date/Time. Access може да изпълнява аритметични изчисления на дати; например можете да изчислите колко дни са изминали от датата на фактурата, за да знаете кога е срокът на вашите вземания.

Израз

Описание

LagTime: DateDiff("d", [OrderDate], [ShippedDate])

Създава поле, наречено LagTime, и след това използва функцията DateDiff, за да покаже броя на дните между дата на поръчка и дата на експедиране.

YearHired: DatePart("yyyy",[HireDate])

Създава поле, наречено YearHired, и след това използва функцията DatePart, за да покаже годината, в която е нает всеки служител.

MinusThirty: Date( )- 30

Създава поле, наречено "МинусТрийсет", и след това използва функцията Date, за да покаже датата 30 дни преди текущата дата.

Най-горе на страницата

SQL агрегатни функции

Изразите в следващата таблица използват функциите на SQL (език за структурирани заявки), които агрегират, или обобщават, данните. Тези функции (например Sum, Count и Avg) по-нататък често се наричат агрегатни функции.

В допълнение към агрегатните функции, Access също предоставя "домейнови" агрегатни функции, които използвате за сумиране или преброяване на стойности избирателно. Например можете да преброите само стойностите в определен диапазон или да търсите стойност от друга таблица. Наборът от домейнови агрегатни функции включва функцията DSum, функцията DCount и функцията DAvg.

За да изчислявате общи суми, често трябва да създадете заявка "Общи суми". Например за да обобщите по групи, трябва да използвате заявка "Общи суми". За да разрешите заявка "Общи суми" от мрежата за проектиране на заявки, щракнете върху Суми в менюто Изглед.

Израз

Описание

RowCount: Count(*)

Създава поле, наречено RowCount, и след това използва функцията Count, за да преброи броя на записите в заявката, включително записи с Null (празни) полета.

FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100

Създава поле, наречено "ПроцентНавло", и след това изчислява процента на навло във всяка междинна сума, като дели сумата от стойностите в полето "Навло" на сумата на стойностите в полето "Междинна сума". (В този пример се използва функцията Sum.)

Този израз трябва да използвате със заявка "Общи суми". Ако сте задали свойството Format на полето на Percent, не включвайте *100.

За повече информация относно създаването на заявка "Общи суми", вж. статията Сумиране на данни с помощта на заявка.

AverageFreight: DAvg("[Freight]", "[Orders]")

Създава поле, наречено "СредноНавло", и след това използва функцията DAvg, за да изчисли средната стойност за навло във всички поръчки, комбинирани в заявка "Общи суми".

Най-горе на страницата

Полета с липсващи данни

Изразите, показани тук, работят с полета с потенциално липсваща информация, като например тези, които съдържат стойност Null (неизвестно или неопределено). Често се сблъсквате със стойности Null, например неизвестна цена за нов продукт или стойност, която колега е забравил да добави към поръчка. Възможността за търсене и обработка на стойности Null може да е важна част от операциите на базата данни, а изразите в таблицата по-долу показват някои начини да се обработват стойностите Null.

Израз

Описание

CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion])

Създава поле, наречено "ТекущаСтранаРегион", и след това използва функциите IIf и IsNull, за да покаже празен низ в това поле, когато полето "СтранаРегион" съдържа стойност Null, в противен случай показва съдържанието на полето "СтранаРегион".

LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate])

Създава поле, наречено LeadTime, и след това използва функциите IIf и IsNull, за да покаже съобщението "Проверка за липсваща дата", ако стойността в полето "ДатаДължима" или полето "ДатаДължима" е Null, в противен случай показва разликата в датите.

SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales])

Създава поле, наречено "ШестмесечниПродажби", и след това показва общата сума на стойностите в полетата "ПродажбиТр1" и "ПродажбиТр2", като първо използва функцията Nz за преобразуване на всички стойности Null в нула.

Най-горе на страницата

Изчисляеми полета с подзаявки

Можете да използвате вложена заявка, наричана още подзаявка, за да създадете изчисляемо поле. Изразът в таблицата по-долу е един пример на изчисляемо поле, което е резултат от подзаявката.

Израз

Описание

Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID])

Създава поле, наречено "Котка4, и след това показва "ИмеКатегория", ако "ИДкатегория" от таблицата "Категории" е същото като "ИДкатегория" от таблицата "Продукти".

Най-горе на страницата

Съвпадение на текстови стойности

Примерните изрази в тази таблица показват критерии, които съвпадат изцяло или частично с текстови стойности.

Поле

Израз

Описание

ГрадЕкспедиране

"London"

Показва поръчките, експедирани за Лондон.

ГрадЕкспедиране

"London" Or "Hedge End"

Използва оператора Or, за да покаже поръчките, експедирани за Лондон или Хедженд.

СтранаРегионЕкспедиране

In("Canada", "UK")

Използва оператора In, за да покаже поръчките, експедирани за Канада или Обединеното кралство.

СтранаРегионЕкспедиране

Not "USA"

Използва оператора Not, за да покаже поръчките, експедирани за страни/региони, различни от САЩ.

ИмеПродукт

Not Like "C*"

Използва оператора Not и заместващия символ *, за да покаже продуктите, чиито имена не започват с К.

ИмеФирма

>="N"

Показва поръчките, експедирани за фирми, чиито имена започват с буквите от N до Z.

КодПродукт

Right([ProductCode], 2)="99"

Използва функцията Right, за да покаже поръчки със стойности на "КодПродукт", които завършват с 99.

ИмеЕкспедиране

Like "S*"

Показва поръчките, експедирани за фирми, чиито имена започват с буквата S.

Най-горе на страницата

Критерии за съвпадение на дата

Изразите в таблицата по-долу илюстрират използването на дати и на свързани с датите функции в изрази на критерии. За повече информация за въвеждане и използване на стойности на дати вж. статията Форматиране на поле за дата или час.

Поле

Израз

Описание

ДатаЕкспедиране

#2/2/2017#

Показва поръчките, експедирани на 2 февруари 2017 г.

ДатаЕкспедиране

Date()

Показва поръчките, експедирани в този ден.

ДатаДължима

Between Date( ) And DateAdd("m", 3, Date( ))

Използва оператора Between...And и функциите DateAdd и Date, за да покаже поръчки, дължими между днешната дата и три месеца след днешната дата.

ДатаПоръчка

< Date( ) - 30

Използва функцията Date, за да покаже поръчки, по-стари от 30 дни.

ДатаПоръчка

Year([OrderDate])=2017

Използва функцията Year, за да покаже поръчки с дати на поръчка през 2017 г.

ДатаПоръчка

DatePart("q", [OrderDate])=4

Използва функцията DatePart, за да покаже поръчки за четвъртото календарно тримесечие.

ДатаПоръчка

DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1

Използва функциите DateSerial, Year и Month, за да покаже поръчките за последния ден на всеки месец.

ДатаПоръчка

Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now())

Използва функциите Year и Month и оператора And, за да покаже поръчки за текущата година и месец.

ДатаЕкспедиране

Between #1/5/2017# And #1/10/2017#

Използва оператора Between...And , за да покаже поръчките, експедирани не по-рано от 5 януари 2017 г. и не по-късно от 10 януари 2017 г.

ДатаДължима

Between Date( ) And DateAdd("M", 3, Date( ))

Използва оператора Between...And, за да покаже поръчки, дължими между днешната дата и три месеца след днешната дата.

ДатаРаждане

Month([BirthDate])=Month(Date())

Използва функциите Month и Date, за да покаже служителите, които имат дати на раждане през този месец.

Най-горе на страницата

Намиране на липсващи данни

Изразите в следващата таблица работят с полета, в които имат потенциално липсваща информация – тези, които може да съдържат стойност Null или низове с нулева дължина. Стойност Null представлява липсата на информация; тя не представлява нито нула, нито каквато и да било стойност. Access поддържа тази идея на липсваща информация, тъй като концепцията е жизнено важна за целостта на базата данни. В реалния свят информация често липсва, дори и ако е само временно (например като все още неопределена цена за нов продукт). Следователно, базата данни, която моделира обект от реалния свят, като например фирма, трябва да може да записва информацията като липсваща. Можете да използвате функцията IsNull, за да определите дали едно поле или контрола съдържат стойност Null, и да използвате функцията Nz, за да конвертирате стойност Null в нула.

Поле

Израз

Описание

РегионЕкспедиция

Is Null

Показва поръчките за клиенти, чиито поле "РегионЕкспедиция" Null (липсва).

РегионЕкспедиция

Is Not Null

Показва поръчките за клиенти, чиито поле "РегионЕкспедиция" съдържа стойност.

Факс

""

Показва поръчките за клиенти, които нямат факс, зададено с низ със стойност с нулева дължина в полето "Факс", а не стойност Null (липсва).

Най-горе на страницата

Съвпадение на текстови модели с Like

Операторът Like предоставя голяма гъвкавост, когато се опитвате да съпоставяте редове, които следват даден модел, защото можете да използвате Like със заместващи символи и да дефинирате модели, които Access съпоставя. Например заместващ символ * (звездичка) съответства на поредица от знаци от всякакъв тип и прави лесно намирането на всички имена, които започват с дадена буква. Например можете да използвате израза Like "S*", за да намерите всички имена, които започват с буквата С. За повече информация вж. статията Оператор Like.

Поле

Израз

Описание

ИмеЕкспедиране

Like "S*"

Намира всички данни в полето "ИмеЕкспедиране", които започват с буквата С.

ИмеЕкспедиране

Like "*Imports"

Намира всички данни в полето "ИмеЕкспедиране", които завършват с думата "импорт".

ИмеЕкспедиране

Like "[A-D]*"

Намира всички данни в полето "ИмеЕкспедиране", които започват с буквите А, Б, В или Г.

ИмеЕкспедиране

Like "*ar*"

Намира всички данни в полето ShipName, които съдържат поредицата от букви "ар".

ИмеЕкспедиране

Like "Maison Dewe?"

Намира всички данни в полето "ИмеЕкспедиране", които включват "Maison" в първата част на стойността и петбуквен низ, в който първите четири букви са "Dewe", а последната буква е неизвестна.

ИмеЕкспедиране

Not Like "A*"

Намира всички данни в полето "ИмеЕкспедиране", които не започват с буквата А.

Най-горе на страницата

Съвпадение на редове с SQL агрегати

Можете да използвате SQL или домейнова агрегатна функция, когато трябва да сумирате, преброявате или усреднявате стойности избирателно. Например може да искате да преброите само тези стойности, които попадат в определен диапазон или се изчисляват като Yes. В други случаи може да потърсите стойност от друга таблица, така че да можете да го покажете. Примерните изрази в следващата таблица използват домейнови агрегатни функции, за да извършат изчисление с набор от стойности и да използват резултата като критерий на заявка.

Поле

Израз

Описание

Навло

> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders"))

Използва функциите DStDev и DAvg, за да покаже всички поръчки, за които стойността на навлото се е покачила над средната стойност, плюс стандартното отклонение за стойност на навлото.

Количество

> DAvg("[Quantity]", "[Order Details]")

Използва функцията DAvg, за да покаже продукти, които са поръчани в количества над средното количество за поръчка.

Най-горе на страницата

Съвпадение на полета с подзаявки

Можете да използвате подзаявка, наричана още вложена заявка, за да изчислите стойност, която да се използва като критерий. Примерните изрази в следващата таблица съответстват на редове въз основа на резултатите, върнати от подзаявката.

Поле

Израз

Показва

ЕдиничнаЦена

(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup")

Продукти, чиято цена е същата като цената на "Анасонов сироп".

ЕдиничнаЦена

>(SELECT AVG([UnitPrice]) FROM [Products])

Продукти, чиято единична цена е над средната.

Заплата

> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*"))

Заплатата на всеки търговски представител, чиято заплата е по-висока от тази на всички служители, в чиято длъжност има "Директор" или "Вицепрезидент".

ОбщоПоръчка: [Единична цена] * [Количество]

> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details])

Поръчки с общи суми, които са по-високи от средна стойност на поръчка.

Най-горе на страницата

Заявки за актуализиране

Можете да използвате заявка за актуализиране, за да промените данните в едно или повече съществуващи полета в база данни. Например можете да замествате стойности или да ги изтриете завинаги. Тази таблица показва някои начини за използване на изрази в заявки за актуализиране. Можете да използвате тези изрази в реда Update To в мрежата за проектиране на заявки за полето, което искате да актуализирате.

За повече информация за създаване на заявки за актуализиране вж. статията Създаване и изпълнение на заявка за актуализиране.

Поле

Израз

Резултат

Заглавие

"Salesperson"

Променя текстова стойност на "Продавач".

СтартПроект

#8/10/17#

Променя стойността на датата на 10-авг-17.

Отстранен

Yes

Променя стойността "Не" на "Да" в поле от тип "Да/не".

НомерЧаст

"PN" & [PartNumber]

Добавя "НЧ" в началото на всеки зададен номер на част.

ОбщоЕлементиЛиния

[UnitPrice] * [Quantity]

Изчислява произведението на "ЕдиничнаЦена" и "Количество".

Навло

[Freight] * 1.5

Увеличава таксите за навло с 50 процента.

Продажби

DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID])

Когато стойностите на "ИДпродукт" в текущата таблица съвпадат със стойностите на "ИДпродукт" в таблицата "Подробни данни за поръчка", актуализира общите суми на продажби въз основа на произведението на колоните "Количество" и "Единична цена".

ПощенскиКодЕкспедиция

Right([ShipPostalCode], 5)

Отрязва най-левите знаци, като оставя петте най-десни знака.

ЕдиничнаЦена

Nz([UnitPrice])

Променя стойност Null (неизвестна или неопределена) на нула (0) в полето UnitPrice.

Най-горе на страницата

SQL команди

Език за структурирани заявки, или SQL, е езикът на заявките, използван от Access. Всяка заявка, която създавате в режим на проектиране на заявки, може да се изрази и с помощта на SQL. За да видите SQL командата за всяка заявка, щракнете върху SQL изглед на менюто Изглед. Следващата таблица показва примерни SQL команди, които използват израз.

SQL команда, която използва израз

Резултат

SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio";

Показва стойностите в полетата "СобственоИме" и "ФамилноИме" за служителите, чиито фамилно име е Христов.

SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID];

Показва стойностите в полетата "ИДпродукт" и "ИмеПродукт" в таблицата "Продукти" за записи, в които стойността "ИДкатегория" съответства на стойността "ИДкатегория", зададена в отворен формуляр "Нови продукти".

SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000;

Изчислява средната разширена цена на поръчки, за които стойността в полето "РазширенаЦена" е над 1000, и го показва в поле, наречено "Средна разширена цена".

SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10;

В поле с име "БройИДпродукти" показва общия брой продукти за категории продукти с повече от 10 продукта.

Най-горе на страницата

Всички изрази за таблица

Двата най-разпространени начини за използване на изрази в таблици са да присвоите стойност по подразбиране и да създадете валидиращо правило.

Стойности по подразбиране на полетата

Когато проектирате база данни, можете да присвоите стойност по подразбиране на поле или контрола. След това Access поставя стойността по подразбиране, когато се създава нов запис, съдържащ полето, или се създава обект, съдържащ контролата. Изразите в таблицата по-долу представят примерните стойности по подразбиране за поле или контрола. Ако има контрола, обвързана с поле в таблица, и полето има стойност по подразбиране, стойността по подразбиране на контролата има приоритет.

Поле

Израз

Стойност по подразбиране на поле

Количество

1

1

Регион

"MT"

MT

Регион

"New York, N.Y."

Ню Йорк, Ню Йорк (Обърнете внимание, че трябва да оградите стойността в кавички, ако включва пунктуация.)

Факс

""

Низ с нулева дължина показва, че по подразбиране това поле трябва да е празно, а не да съдържа стойност Null

Дата на поръчка

Date( )

Днешна дата

КраенСрок

Date() + 60

Датата след 60 дни, считано от днес

Най-горе на страницата

Валидиращи правила за поле

Можете да създадете валидиращо правило за поле или контрола с помощта на израз. Access след това налага правилото, когато данните се въвеждат в полето или контролата. За да създадете валидиращо правило, можете да модифицирате свойството ВалидиращоПравило на полето или контролата. Също така трябва да имате предвид настройка на свойството ВалидиращТекст, което да съдържа текста, който Access показва, когато се нарушава валидиращото правило. Ако не зададете свойството ВалидиращТекст, Access показва съобщение за грешка по подразбиране.

Примерите в таблицата по-долу демонстрират изразите за валидиращото правило за свойството ВалидиращоПравило и свързания с него текст за свойството ВалидиращТекст.

Свойството "ВалидиращоПравило"

Свойството "ВалидиращТекст"

<> 0

Моля, въведете ненулева стойност.

0 Or > 100

Стойността трябва да бъде или 0, или по-голяма от 100.

Like "K???"

Стойността трябва да бъде четиризначна и да започва с буквата K.

< #1/1/2017#

Въведете дата преди 1.1.2017 г.

>= #1/1/2017# And < #1/1/2008#

Датата трябва да е през 2017 г.

За повече информация за валидиране на данни вж. статията Създаване на валидиращо правило за валидиране на данни в поле.

Най-горе на страницата

Изрази за макроси

В някои случаи може да искате да извършите действие или последователност от действия в макрос само ако е изпълнено определено условие. Да предположим например, че искате едно действие да се изпълнява само когато стойността на текстовото поле "Брояч" е 10. Можете да използвате израз, за да дефинирате условието в блок If:

[Counter]=10

Както при свойството ValidationRule , изразът в блок If е условен израз. Той трябва да се изчислява на стойност True или False. Действието се извършва само когато условието е True.

Използвайте този израз, за да изпълните действието

If

[City]="Paris"

"Париж" е стойността на "Град" в полето на формуляра, от който е изпълнен макросът.

DCount("[OrderID]", "Orders") > 35

Има повече от 35 записа в полето ИДпоръчка на таблицата Поръчки.

DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3

Има повече от три записа в таблицата "Подробни данни за поръчка", за които полето "ИДпоръчка" на таблицата съвпада с полето "ИДпоръчка" във формуляра "Поръчка".

[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017#

Стойността на полето "ДатаЕкспедиране" във формуляра, от който се изпълнява макросът, е не по-стара от 2-фев-2017 и не по-късна от 2-мар-2017.

Forms![Products]![UnitsInStock] < 5

Стойността на полето "НаличностЕдиници" във формуляра "Продукти" е по-малка от 5.

IsNull([FirstName])

Стойността "СобственоИме" във формуляра, от който се изпълнява макросът, е Null (няма стойност). Този израз е еквивалентен на [СобственоИме] Is Null.

[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100

Стойността в полето "СтранаРегион" във формуляра, от който се изпълнява макросът, е UK и стойността на полето "ОбщоПоръчки" във формуляра "ОбщоПродажби" е по-голяма от 100.

[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5

Стойността в полето "СтранаРегион" във формуляра, от който се изпълнява макросът, е Франция, Италия или Испания, а пощенският код не е дълъг 5 знака.

MsgBox("Confirm changes?",1)=1

Щракнете върху OK в диалогов прозорец, който показва функцията MsgBox. Ако щракнете върху Отказ в диалоговия прозорец, Access игнорира действието.

Най-горе на страницата

Вж. също

Използване на конструктора на изрази

Въведение в изразите

Научете се да създавате израз

Ръководство за синтаксиса на изрази

Нуждаете ли се от още помощ?

Искате ли още опции?

Разгледайте ползите от абонамента, прегледайте курсовете за обучение, научете как да защитите устройството си и още.

Общностите ви помагат да задавате и отговаряте на въпроси, да давате обратна връзка и да получавате информация от експерти с богати знания.