Можете да използвате изрази за редица разнообразни задачи в Microsoft Access, например за извършване на математически изчисления, за комбиниране и извличане на текст или за валидиране на данни. В тази статия е дадена обща информация за изразите – кога да се използват, какви са съставните им части и по какво се различават от формулите на Microsoft Excel.
В тази статия
Общ преглед на изразите
Помислете за това по следния начин: когато искате Access да направи нещо, трябва да говорите на езика му. Да предположим например, че искате да кажете на Access "Погледни в полето BirthDate в таблицата с клиенти и ми кажи годината на раждане на клиента". Можете да напишете този израз като:
DatePart("yyyy",[Customers]![BirthDate])
Този израз се състои от функцията DatePart и две стойности на аргументи: "yyyy" и [Customers]![BirthDate].
Да разгледаме този израз по-подробно.
1 DatePart е функция, която проверява дата и връща определена част. В този случай се използват първите два аргумента.
2 Аргументът за интервал указва на Access коя част от датата да върне – в този случай "yyyy" казва на Access, че искате да върне само частта с годината от датата.
3 Аргументът за дата указва на Access къде да търси стойността на датата – в този случай [Customers]![BirthDate] казва на Access да потърси датата в полето BirthDate в таблицата Customers.
Начини за използване на изрази
Можете да използвате изрази по следните начини:
-
Изчисляване на стойности, които не съществуват директно във вашите данни. Можете да изчислявате стойности в полета на таблици и заявки, а също и да изчислявате стойности в контроли във формуляри и отчети.
-
Задаване на стойност по подразбиране за поле от таблица или за контрола във формуляр или отчет. Тези стойности по подразбиране се появяват винаги, когато отворите за използване таблица, формуляр или отчет.
-
Създаване на валидиращо правило за определяне какви стойности потребителите могат да въвеждат в поле или контрола.
-
Дефиниране на критерии за заявка за ограничаване на резултатите до желаното подмножество.
Изчисляване на стойности
Един от най-често срещаните начини за използване на изрази в Access е да изчислявате стойности, които не съществуват директно във вашите данни. Колона в таблица или заявка, която е резултат от това изчисление, се нарича изчисляемо поле. Можете да създадете изчисляемо поле, което съчетава две или повече полета на таблица. Например много таблици съхраняват собствените и фамилните имена в отделни полета. Ако искате да обедините собственото и фамилното име и след това да ги покажете в едно поле, можете да създадете изчисляемо поле в таблица или заявка:
[FirstName] & " " & [LastName].
В този случай амперсандите (&) комбинират стойността в FirstName поле, знак за интервал (интервал в кавички) и стойността в LastName поле.
Задаване на стойност по подразбиране
Можете също да използвате изрази в Access, за да предоставите стойност по подразбиране за поле в таблица или за контрола. Например за да зададете стойността по подразбиране за поле за дата да е текущата дата, можете да въведете следното в полето за свойството Default Value за това поле.
Date()
Създаване на валидиращо правило
Освен това, можете да използвате израз, за да зададете валидиращо правило. Можете например да използвате валидиращо правило в контрола или поле в таблица, което да изисква въведената дата да бъде по-голяма или равна на текущата дата. В този случай трябва да настроите стойността в полето на свойството Validation Rule на:
>= Date()
Дефиниране на критерии за заявка
И накрая, можете да използвате израз, за да зададете критерии за заявка. Нека например да искате да видите продажбите на продукти за поръчките, експедирани в определен интервал от време. Можете да въведете критерии, за да определите диапазон от дати, и Access ще върне само редовете, отговарящи на критериите. Вашият израз може например да изглежда по следния начин:
Between #1/1/2017# And #12/31/2017#
Когато добавите критерии към заявката и след това изпълните заявката, тя ще върне само стойностите, които съвпадат със зададените дати.
Примери на изрази
В следващата таблица са дадени някои примерни изрази на Access и начинът, по който обикновено се използват:
Израз |
Предназначение |
---|---|
=[RequiredDate]-[ShippedDate] |
Изчислява разликата между датите в две текстови полета (с имена RequiredDate и ShippedDate) на отчет. |
Date() |
Настройва на текущата дата стойността по подразбиране за поле за дата и час от таблица. |
Between #1/1/2017# And #12/31/2017# |
Задава критерии за поле за дата/час в заявка. |
=[Orders Subform].Form!OrderSubtotal |
Връща стойността на контролата OrderSubtotal в подформуляра Orders от формуляра Orders. |
>0 |
Задава валидиращо правило за числово поле в таблица – потребителите трябва да въвеждат стойности, по-големи от нула. |
Някои изрази започват с оператора за равенство (=). Когато изчислявате стойност за контрола във формуляр или отчет, използвате оператора =, за да започнете израза. В други случаи, например когато въведете израз в заявка или в Свойство DefaultValue или ValidationRule на поле или контрола, не използвате = оператор, освен ако не добавяте израза към текстово поле в таблица. В някои случаи, например когато добавяте изрази към заявки, Access премахва оператора = автоматично.
Компоненти на изразите
Изразът се състои от редица възможни компоненти, които можете да използвате самостоятелно или в съчетание, за да се получи резултат. Тези компоненти включват:
-
Идентификатори Имената на полета на таблица или контроли във формуляри или отчети, или свойствата на тези полета или контроли.
-
Оператори Например + (плюс) или - (минус).
-
Функции Например SUM или AVG.
-
Константи Стойности, които не се променят – например низове от текст или числа, които не се изчисляват с израз.
-
Стойностите Низове, като например "Въведете число между 1 и 10." или числа, като например 1254, които се използват в операции.
Следващите раздели описват тези компоненти с повече подробности.
Идентификатори
Идентификаторът е име на поле, свойство или контрола. Използвайте идентификатор в израз, за да препратите към стойността, асоциирана с поле, свойство или контрола. Да разгледаме например израза =[RequiredDate]-[ShippedDate]. Този израз изважда стойността на полето или контролата ShippedDate от стойността на полето или контролата RequiredDate. В този израз RequiredDate и ShippedDate служи като идентификатори.
Оператори
Access поддържа различни оператори, включително основните аритметични оператори, например +, -, * (умножение) и / (деление). Можете също да използвате оператори за сравнение, като например < (по-малко от) или > (по-голямо от) за сравняване на стойности, текстови оператори, като например & и + за конкатениране (комбиниране) на текст, логически оператори, като например Not и And за определяне на стойности "истина" или "неистина" и други оператори, специфични за Access.
Функции
Функциите са вградени процедури, които можете да използвате във ваши изрази. Можете да използвате функции за широк кръг операции, например изчисляване на стойности, обработка на текст и дати, и обобщаване на данни. Например една често използвана функция е DATE, която връща текущата дата. Можете да използвате функцията DATE по различни начини, като например в израз, задаващ стойност по подразбиране за поле в таблица. В този пример винаги когато някой добавя нов запис, стойността за полето се задава по подразбиране на текущата дата.
Някои функции изискват аргументи. Един аргумент е стойност, която предоставя информация за функцията. Ако дадена функция изисква повече от един аргумент, аргументите се разделят със запетая. Разгледайте например функцията DATE в следния примерен израз:
=Format(Date(),"mmmm d, yyyy")
Този пример използва два аргумента:
-
Първият аргумент е функция Date(), която връща текущата дата. Дори да няма аргументи, трябва да добавите скобите на функцията.
-
Вторият аргумент "mmmm d, yyyy", който е отделен от първия аргумент с точка и запетая, задава текстов низ, за да укажете на функцията FORMAT как да форматира върнатата стойност на датата. Обърнете внимание, че текстовият низ трябва да бъде ограден в кавички.
Този израз също илюстрира, че често можете да влагате стойността, върната от една функция, като аргумент на друга функция. В този случай Date() действа като аргумент.
Константи
Константата е елемент, чиято стойност не се променя, докато се изпълнява Access. Константите True, False и Null се използват често в изрази.
Стойности
Можете да използвате литерали в изразите си, като например числото 1254 или низа "Въведете число между 1 и 10". Можете също да използвате числови стойности, които могат да бъдат последователност от цифри, включително знак и десетичния знак, ако е необходимо.
Когато използвате стойности на текстови низове, поставете ги в кавички, за да е сигурно, че Access ще ги интерпретира правилно. В някои случаи Access поставя кавичките вместо вас. Например когато въведете текст в израз за валидиращо правило или за критерии за заявка, Access автоматично огражда вашите текстови низове в кавички.
За да използвате стойности за дата/час, трябва да ги заградите със знаците за диез #. Например #3-7-17#, #7-Mar-17# и #Mar-7-2017# са валидни стойности за дата/час. Когато Access се натъкне на валидна стойност за дата/час, заградена със знаци #, стойността автоматично се разглежда като данни от тип дата/час.
Сравнение между изрази на Access и формули на Excel
Изразите на Access приличат на формулите Excel по това, че и двете използват сходни елементи за получаване на резултат. Както формулите на Excel, така и изразите на Access съдържат едно или повече от следните неща:
-
Идентификатори В Excel идентификаторите са имената на отделни клетки или диапазони от клетки в работна книга, като например A1, B3:C6 или Лист2! в C32. В Access идентификаторите са имената на полетата на таблицата (например [Contacts]![First Name]), контролите във формуляри или отчети (като например Forms![Task List]![Description]) или свойствата на тези полета или контроли (като например Forms![Task List]![Description].ColumnWidth).
-
Оператори Както в Access, така и в Excel операторите се използват за сравняване на стойности или за извършване на прости изчисления с вашите данни. Примерите включват + (плюс) или - (минус).
-
Функции Както в Access, така и в Excel, функциите и аргументите се използват за изпълнение на задачи, които не могат да се изпълнят само с използване на оператори – например можете да намерите средната стойност в дадено поле или да преобразувате резултата на изчисление във формат на валута. Примери на функции са SUM и STDEV. Аргументите са стойности, които предават информация на функциите. Обърнете внимание, че както в Access, така и в Excel, има много функции, от които да се избира, но имената на сходните функции в програмите понякога са различни. Например функцията AVERAGE в Excel отговаря на функцията AVG в Access.
-
Константи Както в Access, така и в Excel константите са стойности, които не се променят, каквито например са числата, които не се изчисляват с използване на израз.
-
Стойности Както в Access, така и в Excel стойностите се използват по сходен начин.
В изразите на Access се използват оператори и константи, които са подобни на тези, използвани във формули на Excel, но в изразите на Access се използват различни идентификатори и функции. Докато формулите на Excel като правило се използват само в клетки на работен лист, изразите на Access се използват на много места в рамките на Access за широко разнообразие от задачи, включително следните:
-
Създаване на изчисляеми контроли във формуляри и отчети
-
Създаване на изчисляеми полета в таблици и заявки
-
Използване като критерии в заявките
-
Валидиране на данните, въвеждани в поле или в контрола на формуляр
-
Групиране на данни в отчети
Можете да използвате както израз на Access, така и формула на Excel, за изчисляване на цифрови стойности или стойности на дата/час с използването на математически оператори. Например за да изчислите цена с отстъпка за даден клиент, можете да използвате формулата на Excel =C2*(1-D2) или израза на Access = [Unit Price]*(1-[Discount]).
Можете са използвате израз на Access или формула на Excel за комбиниране, разделяне или друго манипулиране на низове с използването на оператори за низове. Например за да комбинирате собствено и фамилно име в един низ, можете да използвате формулата на Excel =D3 & " " & D4 или израза на Access = [First Name] & " " & [Last Name].