Примери на изрази

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

В тази статия

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

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

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

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

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

Израз

Резултат

="N/A"

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

=[FirstName] & " " & [LastName]

Показва стойностите, които се намират в полета на таблица, наречени FirstName и LastName. В този пример операторът & се използва за комбиниране на полето 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, за да покаже стойностите на контролите City и PostalCode, ако стойността в контролата Region е празна; в противен случай показва стойностите на контролите City, Region и PostalCode, разделени с интервали.

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

Използва оператора + и разпространение на празна стойност, за да покаже стойностите на контролите City и PostalCode, ако стойността в полето или контролата 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. В полето или в контролата, обвързана с полето, изразът =[RequiredDate] - 2 връща стойност на Date/Time, равна на два дни преди текущите стойности в полето RequiredDate.

Израз

Резултат

=[Subtotal]+[Freight]

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

=[RequiredDate]-[ShippedDate]

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

=[Price]*1.06

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

=[Quantity]*[Price]

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

=[EmployeeTotal]/[CountryRegionTotal]

Частното на стойностите на полетата или контролите EmployeeTotal и CountryRegionTotal.

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

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

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

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

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

Израз

Резултат

=Forms![Orders]![OrderID]

Стойността на контролата OrderID във формуляра Orders.

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

Стойността на контролата OrderSubtotal в подформуляра на име Orders Subform на формуляра Orders.

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

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

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

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

=Parent![OrderID]

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

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

Израз

Резултат

=Report![Invoice]![OrderID]

Стойността на контрола, наречена "OrderID" в отчет, наречен "Invoice".

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

Стойността на контролата SalesTotal на подотчета на име Summary Subreport в отчета Summary.

=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]

Създава поле, наречено 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. Изразът =[RequiredDate] - 2 връща стойност от типа Date/Time, равна на два дни преди стойността в полето RequiredDate.

Израз

Описание

PrimeFreight: [Freight] * 1.1

Създава поле, наречено PrimeFreight, и след това показва таксата за навло плюс 10 процента в полето.

OrderAmount: [Quantity] * [UnitPrice]

Създава поле, наречено OrderAmount, и след това да показва произведението на стойностите в полетата Quantity и UnitPrice.

LeadTime: [RequiredDate] - [ShippedDate]

Създава поле, наречено LeadTime, и след това показва разликата между стойностите в полетата RequiredDate и ShippedDate.

TotalStock: [UnitsInStock]+[UnitsOnOrder]

Създава поле, наречено TotalStock, и след това показва сумата от стойностите в полетата UnitsInStock и UnitsOnOrder.

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

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

За да използвате този израз, трябва да конвертирате вашата заявка за избиране в заявка 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

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

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

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

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

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

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

Израз

Описание

RowCount: Count(*)

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

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

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

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

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

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

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

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

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

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

Израз

Описание

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

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

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

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

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

Създава поле, наречено SixMonthSales, и след това показва общата сума на стойностите в полетата Qtr1Sales и Qtr2Sales, като първо използва функцията Nz за преобразуване на всички стойности Null в нула.

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

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

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

Израз

Описание

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

Създава поле, наречено Cat, и след това показва CategoryName, ако CategoryID от таблицата Categories е същото като CategoryID от таблицата Products.

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

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

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

Поле

Израз

Описание

ShipCity

"London"

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

ShipCity

"London" Or "Hedge End"

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

ShipCountryRegion

In("Canada", "UK")

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

ShipCountryRegion

Not "USA"

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

ProductName

Not Like "C*"

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

CompanyName

>="N"

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

ProductCode

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

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

ShipName

Like "S*"

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

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

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

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

Поле

Израз

Описание

ShippedDate

#2/2/2017#

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

ShippedDate

Date()

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

RequiredDate

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

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

OrderDate

< Date( ) - 30

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

OrderDate

Year([OrderDate])=2017

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

OrderDate

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

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

OrderDate

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

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

OrderDate

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

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

ShippedDate

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

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

RequiredDate

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

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

BirthDate

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

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

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

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

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

Поле

Израз

Описание

ShipRegion

Is Null

Показва поръчките за клиенти, чиито поле ShipRegion е Null (липсва).

ShipRegion

Is Not Null

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

Fax

""

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

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

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

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

Поле

Израз

Описание

ShipName

Like "S*"

Намира всички данни в полето ShipName, които започват с буквата S.

ShipName

Like "*Imports"

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

ShipName

Like "[A-D]*"

Намира всички данни в полето ShipName, които започват с буквите A, B, C или D.

ShipName

Like "*ar*"

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

ShipName

Like "Maison Dewe?"

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

ShipName

Not Like "A*"

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

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

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

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

Поле

Израз

Описание

Freight

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

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

Quantity

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

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

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

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

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

Поле

Израз

Показва

UnitPrice

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

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

UnitPrice

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

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

Salary

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

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

OrderTotal: [UnitPrice] * [Quantity]

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

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

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

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

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

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

Поле

Израз

Резултат

Title

"Salesperson"

Променя текстова стойност на Salesperson.

ProjectStart

#8/10/17#

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

Retired

Yes

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

PartNumber

"PN" & [PartNumber]

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

LineItemTotal

[UnitPrice] * [Quantity]

Изчислява произведението на UnitPrice и Quantity.

Freight

[Freight] * 1.5

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

Sales

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

Когато стойностите на ProductID в текущата таблица съвпадат със стойностите на ProductID в таблицата Order Details, актуализира общите суми на продажби въз основа на произведението на колоните Quantity и UnitPrice.

ShipPostalCode

Right([ShipPostalCode], 5)

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

UnitPrice

Nz([UnitPrice])

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

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

SQL команди

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

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

Резултат

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

Показва стойностите в полетата FirstName и LastName за служителите, чиито фамилно име е Danseglio.

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

Показва стойностите в полетата ProductID и ProductName в таблицата Products за записи, в които стойността CategoryID съответства на стойността CategoryID, зададена в отворен формуляр New Products.

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

Изчислява средната разширена цена на поръчки, за които стойността в полето ExtendedPrice е над 1000, и я показва в поле, наречено Average Extended Price.

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

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

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

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

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

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

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

Поле

Израз

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

Quantity

1

1

Region

"MT"

MT

Region

"New York, N.Y."

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

Fax

""

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

Order Date

Date( )

Днешна дата

DueDate

Date() + 60

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

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

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

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

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

Свойството ValidationRule

Свойството ValidationText

<> 0

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

0 Or > 100

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

Like "K???"

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

< #1/1/2017#

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

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

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

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

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

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

В някои случаи може да искате да извършите действие или последователност от действия в макрос само ако е изпълнено определено условие. Да предположим например, че искате една макрокоманда да се изпълнява само когато стойността в текстовото поле Counter е 10. За да зададете това правило, използвайте израз, за да дефинирате условието в колоната Condition на макроса:

[Counter]=10

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

Съвет    За да принудите Access временно да игнорира действие, въведете False като условие. Това може да е полезно, когато се опитвате да намерите проблеми в макрос.

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

If

[City]="Paris"

Paris е стойността на City в полето на формуляра, от който е изпълнен макросът.

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

Има повече от 35 записа в полето OrderID на таблицата Orders.

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

Има повече от три записа в таблицата Order Details, за които полето OrderID на таблицата съвпада с полето OrderID във формуляра Orders.

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

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

Forms![Products]![UnitsInStock] < 5

Стойността на полето UnitsInStock във формуляра Products е по-малка от 5.

IsNull([FirstName])

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

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

Стойността в полето CountryRegion във формуляра, от който се изпълнява макросът, е UK и стойността на полето TotalOrds във формуляра SalesTotals е по-голяма от 100.

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

Стойността в полето CountryRegion във формуляра, от който се изпълнява макросът, е France, Italy или Spain и пощенският код не е дълъг 5 знака.

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

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

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

Вж. също

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

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

Създаване на израз

Примери на изрази

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към участниците в Office Insider

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×