Как найти стоимость в аксессе

В этой статье приведено множество примеров выражений Access. Выражение — это сочетание математических или логических операторов, констант, функций, полей таблицы, элементов управления и свойств, результатом вычисления которого является одно значение. Выражения применяются для вычисления значений, проверки данных и задания значений по умолчанию.

В этой статье

Формы и отчеты

Таблицы, приведенные в этом разделе, содержат примеры выражений, вычисляющих значение в элементе управления в форме или отчете. Чтобы создать вычисляемый элемент управления, введите выражение в свойство Данные элемента управления, а не в поле таблицы или запроса.

Примечание    Выражения также можно использовать в формах или отчетах при выделении данных с помощью условного форматирования.

Операции с текстом

В выражениях, приведенных в таблице ниже, используются операторы & (амперсанд) и + (плюс) для объединения текстовых строк, а также встроенные функции для обработки текстовых строк или выполнения с ними других действий с целью создания вычисляемого элемента управления.

Выражение

Результат

=”N/A”

Отображает “Н/Д”.

=[FirstName] & ” ” & [LastName]

Отображает значения, хранящиеся в полях таблицы FirstName и LastName. В данном примере оператор & используется для объединения значения в поле “Имя”, пробела (заключенного в кавычки) и значения в поле “Фамилия”.

=Left([ProductName], 1)

Функция Left используется для отображения первого знака в значении поля или элемента управления “НазваниеТовара”.

=Right([AssetCode], 2)

Функция Right используется для отображения последних 2 знаков в значении поля или элемента управления “КодТовара”.

=Trim([Address])

Функция Trim используется для отображения значения в элементе управления “Адрес” и удаления всех пробелов в начале или конце строки.

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

Функция IIf используется для отображения значений элементов управления City и PostalCode, если элемент управления Region имеет пустое значение; в противном случае отображаются значения в элементах управления City, Region и PostalCode, разделенные пробелами.

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

Оператор + и распространение значений Null используются для отображения значений в элементах управления “Город” и “Индекс”, если элемент управления или поле “Область” имеет значение Null; в противном случае отображаются значения в элементах управления или полях “Город”, “Область” и “Индекс”, разделенные пробелами.

Распространение значений Null означает, что если хотя бы один компонент выражения возвращает значение Null, то и все выражение также возвращает Null. Оператор + поддерживает распространение значений Null, а оператор & — нет.

К началу страницы

Колонтитулы

Для отображения или печати номеров страниц в отчетах или формах используются свойства 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()

Напечатано: 12/31/17

К началу страницы

Арифметические операции

Выражения могут использоваться для сложения, вычитания, умножения и деления значений в нескольких полях или элементах управления. Вы также можете применять их для выполнения арифметических операций над датами. Например, допустим, что в таблице есть поле даты и времени RequiredDate. В поле или элементе управления, связанном с полем, выражение =[RequiredDate] – 2 будет возвращать значение даты и времени, предшествующее на два дня значению в поле RequiredDate.

Выражение

Результат

=[Subtotal]+[Freight]

Сумма значений в полях или элементах управления “СуммаЗаказа” и “СтоимостьДоставки”.

=[RequiredDate]-[ShippedDate]

Интервал между значениями даты в полях или элементах управления “Срок” и “ДатаПоставки”.

=[Price]*1.06

Результат умножения значения поля или элемента управления “Цена” на 1,06 (добавление 6 процентов к значению “Цена”).

=[Quantity]*[Price]

Результат умножения значений в полях или элементах управления Quantity и Price.

=[EmployeeTotal]/[CountryRegionTotal]

Частное от деления значений полей или элементов управления EmployeeTotal и CountryRegionTotal.

Примечание    Если в выражении используются арифметические операторы (+, , *, и /) и один из элементов управления имеет значение Null, результатом всего выражения будет значение Null. Это называется распространением значений Null. Если хотя бы одна из записей в элементах управления, используемых в выражении, может иметь значение 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]

Значение элемента управления “КодЗаказа” в отчете, который является главным для текущего подчиненного отчета.

К началу страницы

Количество значений, сумма и среднее

Для вычисления значений одного или нескольких полей или элементов управления можно использовать так называемые агрегатные функции. Например, вам может потребоваться вычислить итоговое значение для нижнего колонтитула в отчете или промежуточную сумму по всем позициям формы. Можно также подсчитать число элементов в одном или нескольких полях или вычислить среднее значение.

В таблице ниже приведены примеры использования функций Avg, Count и Sum.

Выражение

Описание

=Avg([Freight])

Функция Avg используется для отображения средних значений поля таблицы или элемента управления “СтоимостьДоставки”.

=Count([OrderID])

Функция Count используется для отображения числа записей в элементе управления “КодЗаказа”.

=Sum([Sales])

Функция Sum используется для отображения суммы значений в элементе управления “Продажи”.

=Sum([Quantity]*[Price])

Функция Sum используется для отображения суммы произведения значений элементов управления “Количество” и “Цена”.

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

Отображает процент продаж, полученный путем деления общего значения “Продажи” на сумму значений этого элемента управления.

Если для свойства Format (Формат) элемента управления задано значение Percent (Процентный), не включайте в выражение операцию *100.

Дополнительные сведения об использовании агрегатных функций и вычислении итоговых значений в полях и столбцах см. в статьях Суммирование данных с помощью запроса, Подсчет данных при помощи запроса, Отображение итогов по столбцу в таблице с помощью строки “Итог” и Отображение итогов по столбцу в таблице.

К началу страницы

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

Агрегатные функции по подмножеству или SQL используются для вычисления выборочной суммы или выборочного подсчета значений. Подмножество — это одно или несколько полей в одной или нескольких таблицах на одной или нескольких формах или отчетах. Например, вы можете сопоставить значения в поле таблицы со значениями в элементе управления в форме.

Выражение

Описание

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

Функция DLookup используется для возвращения значения из полей ContactName в таблице “Поставщики”, для которых значение в поле SupplierID в таблице совпадает со значением элемента управления SupplierID в форме “Поставщики”.

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

Функция DLookup используется для возвращения значения из полей ContactName в таблице “Поставщики”, для которых значение в поле SupplierID в таблице совпадает со значением элемента управления SupplierID в форме “НовыеПоставщики”.

=DSum(“[OrderAmount]”, “[Orders]”, “[CustomerID] = ‘RATTC'”)

Функция DSum используется для возвращения значений из поля OrderAmount таблицы “Заказы”, для которых значение поля CustomerID равно “РАТТС”.

=DCount(“[Retired]”,”[Assets]”,”[Retired]=Yes”)

Функция DCount возвращает количество значений Yes в поле 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 используется для отображения значения года, содержащегося в элементе управления “ДатаЗаказа”, в четырехзначном формате.

=DateAdd(“y”, -10, [PromisedDate])

Функция DateAdd используется для отображения даты, предшествующей на 10 дней значению даты в элементе управления “УсловленнаяДата”.

=DateDiff(“d”, [OrderDate], [ShippedDate])

Функция DateDiff используется для отображения разницы в днях между значениями дат в элементах управления “ДатаЗаказа” и “ДатаПоставки”.

=[InvoiceDate] + 30

Арифметическая операция используется для вычисления даты, которая на 30 дней позднее даты в поле или элементе управления InvoiceDate.

К началу страницы

Условия для выбора одного из двух значений

В примерах выражений, приведенных в следующей таблице, используется функция IIf для возвращения одного из двух возможных значений. Функция IIf имеет три аргумента. Первый аргумент — это выражение, которое должно возвращать значения True или False. Второй аргумент — это значение, возвращаемое в случае, если выражение имеет значение True, а третий аргумент — значение, возвращаемое в случае, если выражение имеет значение False.

Выражение

Описание

=IIf([Confirmed] = “Yes”, “Order Confirmed”, “Order Not Confirmed”)

Функция IIf используется для отображения сообщения “Order Confirmed”, если элемент управления Confirmed имеет значение Yes; в противном случае отображается сообщение “Order Not Confirmed.”.

=IIf(IsNull([Country/region]), ” “, [Country])

Функции IIf и IsNull используются для отображения пустой строки, если элемент управления “Страна” имеет значение Null; в противном случае выводится его значение.

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

Функции IIf и IsNull используются для отображения значений элементов управления “Город” и “Индекс”, если элемент управления “Область” имеет значение Null; в противном случае отображаются значения в полях или элементах управления “Город”, “Область” и “Индекс”.

=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), “Check for a missing date”, [RequiredDate] – [ShippedDate])

Функции IIf и IsNull используются для отображения сообщения “Проверьте отсутствующую дату”, если результат вычитания значения элемента управления “Срок” из значения “ДатаПоставки” равен пустому значению (Null); в противном случае отображается интервал между значениями дат “Срок” и “ДатаПоставки”.

К началу страницы

Запросы и фильтры

В данном разделе приведены примеры выражений, используемых для создания вычисляемых полей в запросе или для задания условий отбора в запросе. Вычисляемое поле — это столбец в запросе, получающий результаты с помощью выражения. Например, можно вычислить значение, объединить текстовые значения, такие как имя и фамилия, или отформатировать часть даты.

Условия отбора используются в запросе для ограничения числа отображаемых записей. Например, оператор Between применяется для задания начальной и конечной даты и ограничения результатов запроса только теми заказами, которые были поставлены в указанный период.

Ниже представлены примеры выражений для использования в запросах.

Операции с текстом

В выражениях, приведенных в таблице ниже, используются операторы & и + для объединения текстовых строк, а также встроенные функции для обработки текстовых строк или выполнения с ними других действий с целью создания вычисляемого элемента управления.

Выражение

Описание

FullName: [FirstName] & ” ” & [LastName]

Создание поля “ПолноеИмя”, отображающего значения полей “Имя” и “Фамилия”, разделенные пробелом.

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

Создание поля “Адрес2”, отображающего значения полей “Город”, “Область” и “Индекс”, разделенные пробелами.

ProductInitial: Left([ProductName], 1)

Создание поля ProductInitial и отображение в нем с помощью функции Left первого знака значения в поле 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.

К началу страницы

Арифметические операции

Выражения могут использоваться для сложения, вычитания, умножения и деления значений в нескольких полях или элементах управления. Вы также можете выполнять арифметические операции над датами. Например, допустим, что существует поле даты и времени с названием RequiredDate. Выражение =[RequiredDate] – 2 возвращает значение даты и времени, предшествующее на два дня значению в поле “RequiredDate.

Выражение

Описание

PrimeFreight: [Freight] * 1.1

Создание поля “СрочнаяДоставка” и отображение стоимости доставки с 10-процентной надбавкой.

OrderAmount: [Quantity] * [UnitPrice]

Создание поля “ОбъемЗаказа” и отображение произведения значений полей “Количество” и “Цена”.

LeadTime: [RequiredDate] – [ShippedDate]

Создание поля “ВремяДоставки” и отображение разности значений полей “Срок” и “ДатаПоставки”.

TotalStock: [UnitsInStock]+[UnitsOnOrder]

Создание поля “ВсегоВНаличии” и отображение суммы значений полей “НаСкладе” и “Ожидается”.

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

Создание поля FreightPercentage и отображение стоимости доставки в процентах от итога. Функция Sum используется для вычисления суммы всех значений поля Freight, после чего это значение делится на сумму всех значений поля Subtotal.

Чтобы использовать это выражение, следует преобразовать запрос на выборку в итоговый запрос, так как в бланке запроса понадобится строка Итог и необходимо задать в качестве значения ячейки Итог этого поля выражение.

Дополнительные сведения о создании итоговых запросов см. в статье Суммирование данных с помощью запроса.

Если для свойства Format (Формат) поля задано значение Percent (Процентный), не включайте операцию *100.

Дополнительные сведения об использовании агрегатных функций и вычислении итоговых значений в полях и столбцах см. в статьях Суммирование данных с помощью запроса, Подсчет данных при помощи запроса, Отображение итогов по столбцу в таблице с помощью строки “Итог” и Отображение итогов по столбцу в таблице.

К началу страницы

Операции с датами

Почти во всех базах данных хранятся значения даты и времени. Для работы со значениями даты и времени в Access для полей таблицы задается тип данных “Дата/время”. В Access можно выполнять автоматические арифметические операции с датами. Например, вы можете вычислить, сколько дней прошло с момента выписки счета, чтобы определить срок дебиторской задолженности.

Выражение

Описание

LagTime: DateDiff(“d”, [OrderDate], [ShippedDate])

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

YearHired: DatePart(“yyyy”,[HireDate])

Создание поля “ГодНайма” и отображение с помощью функции DatePart года найма сотрудника.

MinusThirty: Date( )- 30

Создание поля MinusThirty и отображение с помощью функции Date даты за 30 дней до текущей.

К началу страницы

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

В приведенной ниже таблице в выражениях используются функции SQL для расчета итоговых или агрегатных значений. Эти функции (например, Sum, Count и Avg) часто называются агрегатными функциями.

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

Для вычисления итогового значения часто требуется создать запрос. Например, для суммирования значений группы следует создать итоговый запрос. Чтобы включить итоговый запрос, на бланке запроса выберите вариант Итоги в меню Представление.

Выражение

Описание

RowCount: Count(*)

Создание поля RowCount и подсчет с помощью функции Count числа записей в запросе, включая записи с пустыми полями.

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

Создание поля FreightPercentage и вычисление процента стоимости доставки для каждого итога. Для этого сумма всех значений поля Freight делится на сумму всех значений поля Subtotal. (В этом примере используется функция Sum.)

Это выражение следует использовать с итоговым запросом. Если для свойства Format поля задано значение Percent, не включайте операцию *100.

Дополнительные сведения о создании итоговых запросов см. в статье Подсчет данных при помощи запроса.

AverageFreight: DAvg(“[Freight]”, “[Orders]”)

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

К началу страницы

Поля с недостающими данными

Приведенные ниже выражения работают с полями, которые могут не содержать данных, т. е. иметь значения 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 из таблицы “Категории” совпадает со значением поля CategoryID из таблицы “Товары”.

К началу страницы

Поиск совпадений в текстовых значениях

В таблице ниже приведены примеры условий, сопоставляющих полные текстовые значения или их части.

Поле

Выражение

Описание

ShipCity

“London”

Отображает заказы, отправленные в Киев.

ГородНазначения

“London” Or “Hedge End”

Оператор Or используется для отображения заказов, отправленных в Лондон или в Хедж-Энд.

ShipCountryRegion

In(“Canada”, “UK”)

Оператор In используется для отображения заказов, отправленных в Канаду или в Соединенное Королевство.

ShipCountryRegion

Not “USA”

Оператор Not используется для отображения заказов, отправленных во все страны, кроме США.

ProductName

Not Like “C*”

Оператор Not и подстановочный знак * используются для отображения товаров, названия которых не начинаются с буквы C.

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

Функция Year используется для отображения заказов, сделанных в 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 и не позднее 10 января 2017 г.

RequiredDate

Between Date( ) And DateAdd(“M”, 3, Date( ))

Оператор Between…And используется для отображения заказов, которые должны быть выполнены в течение трех месяцев.

BirthDate

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

Функции Month и Date используются для отображения сотрудников, чьи дни рождения приходятся на текущий месяц.

К началу страницы

Поиск записей с недостающими данными

Приведенные в следующей таблице выражения работают с полями, в которых могут отсутствовать данные, т. е. содержаться значения Null или пустые строки. Значение Null означает отсутствие данных; оно не подразумевает наличие нулевого или какого-либо иного значения. В Access поддерживается концепция отсутствующих данных, т. к. это важно для целостности базы данных. В действительности сведения часто отсутствуют, хотя иногда только временно (например, если цена на новый товар еще не определена). Поэтому в базе данных, моделирующей некоторый реальный объект, например компанию, должна быть возможность хранения записей с отсутствующими сведениями. Для определения того, содержится ли в поле значение Null, используется функция IsNull, а функция Nz применяется для преобразования значений Null в нули.

Поле

Выражение

Описание

ShipRegion

Is Null

Отображение заказов для клиентов, у которых отсутствует (равно Null) значение в поле ShipRegion.

ShipRegion

Is Not Null

Отображение заказов для клиентов, у которых есть значение в поле ShipRegion.

Факс

“”

Отображение заказов для клиентов, у которых нет факсимильного аппарата, то есть для тех клиентов, у которых поле “Факс” содержит пустую строку, а не значение Null.

К началу страницы

Поиск совпадений в шаблонах записей с помощью оператора Like

Оператор Like обеспечивает гибкий поиск строк, соответствующих определенному шаблону, так как Like можно использовать с подстановочными знаками. Например, подстановочный знак * (звездочка) соответствует любой последовательности знаков, что упрощает поиск всех имен, начинающихся с определенной буквы. Например, используйте выражение Like “S*” для поиска всех имен, имена которых начинаются с буквы с. Дополнительные сведения см. в статье оператор Like.

Поле

Выражение

Описание

ShipName

Like “S*”

Поиск всех записей, значение в поле “ИмяПолучателя” которых начинается с буквы С.

ИмяПолучателя

Like “*Imports”

Поиск всех записей, значение в поле “ИмяПолучателя” которых заканчивается слогом “ов”.

ShipName

Like “[A-D]*”

Поиск всех записей, значение в поле ShipName которых начинается с букв А, Б, В или Г.

ShipName

Like “*ar*”

Поиск всех записей, значение в поле ShipName которых включает сочетание букв “ар”.

ИмяПолучателя

Like “Григорий Верны?”

Поиск всех записей, значение в поле “ИмяПолучателя” которых начинается с “Григорий” и содержит вторую строку из 6 букв, в которой первые 5 букв — “Верны”, а последняя буква неизвестна.

ИмяПолучателя

Not Like “A*”

Поиск всех записей, значение в поле ShipName которых не начинается с буквы A.

К началу страницы

Подбор строк с помощью агрегатных функций SQL

Агрегатные функции по подмножеству или SQL используются для вычисления выборочной суммы, выборочного среднего или выборочного подсчета значений. Например, может потребоваться подсчитать только значения, попадающие в определенный интервал или возвращающие значение “Да”. Кроме того, может потребоваться подставить значение из другой таблицы. В примерах выражений ниже агрегатные функции по подмножеству используются для вычисления набора значений, а результат используется в качестве условий отбора в запросе.

Поле

Выражение

Описание

Freight

> (DStDev(“[Freight]”, “Orders”) + DAvg(“[Freight]”, “Orders”))

Функции DStDev и DAvg используются для отображения всех заказов, для которых стоимость доставки превышает среднюю с учетом стандартного отклонения.

Quantity

> DAvg(“[Quantity]”, “[Order Details]”)

Функция DAvg используется для отображения заказанных товаров, количество которых превышает среднее.

К началу страницы

Подбор полей с помощью вложенных запросов

Подчиненный (вложенный) запрос используется для вычисления значения, которое будет использоваться в качестве условия. В примерах выражений, приведенных в следующей таблице, строки сопоставляются по результатам подчиненного запроса.

Поле

Выражение

Отображает

UnitPrice

(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])

Заказы, итоговая сумма которых превышает среднее значение для заказов.

К началу страницы

Запросы на обновление

Запрос на обновление используется для изменения данных в одном или нескольких полях базы данных, например для замещения или удаления значений. Ниже показаны некоторые выражения, используемые в запросах на обновление. Они добавляются в строку Обновление бланка запроса для поля, которое вы хотите обновить.

Дополнительные сведения см. в статье Создание запроса на обновление.

Поле

Выражение

Результат

Название

“Salesperson”

Изменяет текстовое значение на “Продавец”.

ProjectStart

#8/10/17#

Изменяет значение даты на 10 августа 2017 г.

Поддержка прекращена.

Yes

Изменяет в логическом поле значения “Нет” на “Да”.

ИнвНомер

“PN” & [PartNumber]

Добавляет строку “PN” к началу каждого инвентарного номера.

ИтогПозиции

[UnitPrice] * [Quantity]

Вычисляет произведение значений “Цена” и “Количество”.

СтоимостьДоставки

[Freight] * 1.5

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

Продажи

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

Если значение поля ProductID в текущей таблице совпадает со значением поля ProductID в таблице “Заказано”, обновляет итоговые значения продаж, рассчитываемые как произведение полей Quantity и UnitPrice.

ShipPostalCode

Right([ShipPostalCode], 5)

Обрезает левые знаки в поле, оставляя пять правых знаков.

UnitPrice

Nz([UnitPrice])

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

К началу страницы

Инструкции SQL

В Access в качестве языка запросов используется SQL. Каждый запрос, созданный в режиме конструктора, можно также представить на языке 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;

Отображает в поле CountOfProductID общее количество товаров для типов, содержащих более 10 товаров.

К началу страницы

Выражения для таблиц

Существует два основных способа использования выражений в таблицах: присвоение значения по умолчанию и создание правила проверки.

Значения по умолчанию для полей

При разработке базы данных может потребоваться присвоить значение по умолчанию полю или элементу управления. Затем при создании новой записи с этим полем или объектом, содержащим элемент управления, Access будет подставлять соответствующее значение. Выражения в приведенной ниже таблице являются примерами значений по умолчанию для поля или элемента управления. Если элемент управления связан с полем таблицы, которое имеет значение по умолчанию, значение по умолчанию элемента управления имеет приоритет.

Поле

Выражение

Значение поля по умолчанию

Quantity

1

1

Область

“MT”

Московская

Область

“New York, N.Y.”

Пушкино, Московская область (Если значение содержит знаки пунктуации, его нужно заключить в прямые кавычки).

Факс

“”

Пустая строка, чтобы обратить внимание на то, что данное поле должно быть пустым, а не содержащим значение Null.

Дата заказа

Date( )

Текущая дата

Срок

Date() + 60

Дата, отстоящая от текущей на 60 дней

К началу страницы

Правило проверки поля.

С помощью выражения можно создать правило проверки для поля или элемента управления. Затем при вводе данных в поле или элемент управления эти данные будут проверяться на соответствие условию. Чтобы создать правило проверки, измените свойство ValidationRule поля или элемента управления. Следует также задать значение для свойства ValidationText, которое содержит текст, отображаемый Access при нарушении правила проверки. Если значение для свойства ValidationText не задано, будет выводиться сообщение об ошибке, используемое по умолчанию.

Ниже приведены примеры выражений для задания правил проверки в свойстве ValidationRule и соответствующий текст в свойстве ValidationText.

Свойство ValidationRule

Свойство ValidationText

<> 0

Введите значение, отличное от нуля.

0 Or > 100

Значение должно быть либо равно 0, либо больше 100.

Like “K???”

Значение должно содержать четыре знака и начинаться с буквы K.

< #1/1/2017#

Введите дату, предшествующую 01.01.2017.

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

Укажите дату в 2017 г.

Дополнительные сведения см. в статье Создание условия на значение для проверки данных в поле.

К началу страницы

Выражения для макросов

В некоторых случаях выполнять макрокоманду или набор макрокоманд в макросе нужно только в том случае, если выполнено определенное условие. Предположим, вы хотите, чтобы макрокоманда выполнялась только в том случае, если значение текстового поля счетчика равно 10. Задайте выражение со следующим условием в столбце Условие макроса:

[Counter]=10

Как и в случае со свойством Validation Rule, выражение в столбце Условие является условным выражением. Оно должно возвращать логическое значение True или False. Макрокоманда будет выполнена, только если условие возвращает значение True.

Совет.    Чтобы временно пропустить макрокоманду, введите в качестве условия False. Это может быть полезно, когда вы пытаетесь найти проблемы в макросе.

Используйте это выражение для выполнения действия.

If

[City]=”Paris”

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

DCount(“[OrderID]”, “Orders”) > 35

Количество записей в поле “КодЗаказа” таблицы “Заказы” превышает 35.

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

В таблице “Заказано” есть больше трех записей, у которых значение поля OrderID совпадает со значением поля OrderID в форме “Заказы”.

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

Значение поля ShippedDate в форме, из которой запускается макрос, попадает в интервал со 2 февраля по 2 марта 2017 г.

Forms![Products]![UnitsInStock] < 5

Значение поля “НаСкладе” в форме “Товары” меньше 5.

IsNull([FirstName])

Поле FirstName в форме, из которой запускается макрос, имеет значение Null (не заполнено). Это выражение эквивалентно следующему: [Имя] Is Null.

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

Поле CountryRegion в форме, из которой запускается макрос, содержит значение “Литва”, а значение поля TotalOrds в форме SalesTotals превышает 100.

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

Поле CountryRegion в форме, из которой запускается макрос, имеет значение France, Italy или Spain, а почтовый индекс не содержит 5 символов.

MsgBox(“Confirm changes?”,1)=1

Нажмите кнопку ОК в диалоговом окне функции MsgBox. Если нажата кнопка Отмена, эта макрокоманда будет пропущена.

К началу страницы

romanln2011

Заблокирован

1

30.11.2012, 17:55. Показов 28413. Ответов 8


Студворк — интернет-сервис помощи студентам

Нужна помощь ни как не могу справиться с этими запросами, база в приложении

Запросы с вычисляемыми полями
Создать запрос Расчет стоимости. Стоимость вычисляется как произведение цены товара на количество. Если количество товара меньше заданного (например, 10 шт.), берется розничная цена, иначе – оптовая. Для расчета цены использовать функцию Iif. Поля запроса: Номер заказа, Наименование товара, Количество, Цена, Стоимость заказа. Сортировка записей – по номерам заказов.
Итоговые запросы
Создать запрос, вычисляющий суммарную стоимость заказов на товары каждой фирмы. Группировка – по полю Фирма-производитель. Суммирование – по полю Стоимость заказа. Сортировка – по названиям фирм.
Перекрестные запросы
Создать перекрестный запрос, подсчитывающий количество товаров каждой фирмы, заказанных каждым клиентом. Использовать в качестве заголовков столбцов фамилии клиентов, заголовков строк – названия фирм. Суммирование – по полю Количество.

Вложения

Тип файла: rar td.rar (96.4 Кб, 202 просмотров)



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

30.11.2012, 17:55

8

romanln2011

Заблокирован

30.11.2012, 18:41

 [ТС]

2

апросы с вычисляемыми полями
Создать запрос Расчет стоимости. Стоимость вычисляется как произведение цены товара на количество. Если количество товара меньше заданного (например, 10 шт.), берется розничная цена, иначе – оптовая. Для расчета цены использовать функцию Iif. Поля запроса: Номер заказа, Наименование товара, Количество, Цена, Стоимость заказа.

в чем косяк ?

Расчет стоимости в БД access

вот что пишет

Расчет стоимости в БД access



0



ltv_1953

Эксперт MS Access

17214 / 7066 / 1582

Регистрация: 21.06.2012

Сообщений: 13,256

30.11.2012, 19:26

3

Посмотрите такой запрос

SQL
1
2
SELECT Заказы.*, IIf([Количество]<10,[Розничная цена],[Оптовая цена]) AS Цена
FROM Товары INNER JOIN Заказы ON Товары.[Наименование товара] = Заказы.[Наименование товара];

ps Вообще-то по наименованиям лучше не связывать таблицы и, тем более, не хранить их в заказах. В товарах добавьте счетчик – код товара и его используйте в заказах.



1



romanln2011

Заблокирован

30.11.2012, 19:46

 [ТС]

4

Цитата
Сообщение от ltv_1953
Посмотреть сообщение

Посмотрите такой запрос

SQL
1
2
SELECT Заказы.*, IIf([Количество]<10,[Розничная цена],[Оптовая цена]) AS Цена
FROM Товары INNER JOIN Заказы ON Товары.[Наименование товара] = Заказы.[Наименование товара];

ps Вообще-то по наименованиям лучше не связывать таблицы и, тем более, не хранить их в заказах. В товарах добавьте счетчик – код товара и его используйте в заказах.

Это было задание все делал четко по нему к сожалению не могу вносить коррективы
а как сделать столбец суммы и сортировку по номеру заказа?



0



ltv_1953

Эксперт MS Access

17214 / 7066 / 1582

Регистрация: 21.06.2012

Сообщений: 13,256

30.11.2012, 22:13

5

Цитата
Сообщение от romanln2011
Посмотреть сообщение

а как сделать столбец суммы и сортировку по номеру заказа?

SQL
1
2
3
SELECT Заказы.*, IIf([Количество]<10,[Розничная цена],[Оптовая цена]) AS Цена, [Количество]*[Цена] AS Сумма
FROM Товары INNER JOIN Заказы ON Товары.[Наименование товара] = Заказы.[Наименование товара]
ORDER BY [Номер заказа];



1



romanln2011

Заблокирован

01.12.2012, 15:52

 [ТС]

6

Цитата
Сообщение от ltv_1953
Посмотреть сообщение

SQL
1
2
3
SELECT Заказы.*, IIf([Количество]<10,[Розничная цена],[Оптовая цена]) AS Цена, [Количество]*[Цена] AS Сумма
FROM Товары INNER JOIN Заказы ON Товары.[Наименование товара] = Заказы.[Наименование товара]
ORDER BY [Номер заказа];

Супер, огромное спасибо!!!

SQL
1
2
3
4
немного поправил под задание
SELECT Заказы.[Номер заказа], Заказы.[Наименование товара], Заказы.Количество, IIf([Количество]<10,[Розничная цена],[Оптовая цена]) AS Цена, [Количество]*[Цена] AS Сумма
FROM Товары INNER JOIN Заказы ON Товары.[Наименование товара] = Заказы.[Наименование товара]
ORDER BY Заказы.[Номер заказа];

Добавлено через 7 минут
было супер если бы помогли с этим запросом
Итоговые запросы
Создать запрос, вычисляющий суммарную стоимость заказов на товары каждой фирмы. Группировка – по полю Фирма-производитель. Суммирование – по полю Стоимость заказа. Сортировка – по названиям фирм.

Добавлено через 16 минут
делаю:

SQL
1
2
SELECT Производители.[Название фирмы], IIf([Количество]<10,[Розничная цена]*[Количество],[Оптовая цена]*[Количество]) AS [Стоимость заказа] FROM (Производители INNER JOIN Товары ON Производители.[Название фирмы] = Товары.[Название фирмы]) INNER JOIN Заказы ON Товары.[Наименование товара] = Заказы.[Наименование товара]
GROUP BY Производители.[Название фирмы];

Но говорит: попытка выполнить запрос который не вкл. указанное вырожение

Добавлено через 6 минут

SQL
1
2
3
SELECT Производители.[Название фирмы], IIf([Количество]<10,SUM([Розничная цена]*[Количество]),SUM([Оптовая цена]*[Количество])) AS [Стоимость заказа]
FROM (Производители INNER JOIN Товары ON Производители.[Название фирмы] = Товары.[Название фирмы]) INNER JOIN Заказы ON Товары.[Наименование товара] = Заказы.[Наименование товара]
GROUP BY Производители.[Название фирмы];

Пытаюсь сделать с суммами аналогично

Добавлено через 3 минуты
ltv_1953, посмотрите пожалуйста мой запрос)



0



ltv_1953

Эксперт MS Access

17214 / 7066 / 1582

Регистрация: 21.06.2012

Сообщений: 13,256

01.12.2012, 16:07

7

Посмотрите (Название фирмы берется из Товаров)

SQL
1
2
3
SELECT [Название фирмы], SUM([Количество]*IIf([Количество]<10,[Розничная цена],[Оптовая цена])) AS Стоимость_Заказа
FROM Товары INNER JOIN Заказы ON Товары.[Наименование товара] = Заказы.[Наименование товара]
GROUP BY [Название фирмы];



0



0 / 0 / 0

Регистрация: 21.12.2015

Сообщений: 8

22.12.2015, 18:49

8

А Как будет стоимость всего товара находящегося в наличии…?



0



Эксперт MS Access

17214 / 7066 / 1582

Регистрация: 21.06.2012

Сообщений: 13,256

22.12.2015, 18:52

9

Имена/структуру таблиц и их связи нужно угадать?



1



В этой статье речь поговорим про вычисляемые поля в запросах Access. В запросе, как и в таблице, для каждой записи могут производиться вычисления с числовыми, строковыми значениями или значениями дат с использованием данных из одного или нескольких полей. Результат вычисления образует в таблице запроса новое вычисляемое поле. В отличие от вычисляемых полей таблицы, вычисляемые поля запроса в исходных таблицах базы данных новых полей не создают. При каждом выполнении запроса производятся вычисления на основе текущих значений полей.
Вычисляемые поля в запросах Access
В выражениях вычисляемых полей помимо имен полей могут использоваться константы и функции. В результате обработки выражения может получаться только одно значение.

Задача 1. В таблице ТОВАР имеются поля ЦЕНА и СТАВКА_НДС, вычислите цену с учетом НДС и сравните ее с полученной в вычисляемом поле таблицы Цена с НДС.

  1. Создайте в режиме конструктора запрос на выборку для таблицы ТОВАР. Перетащите в бланк запроса поля НАИМ_ТОВ, ЦЕНА, СТАВКА_НДС и Цена с НДС (рис. 4.6).
  2. Для подсчета цены с учетом НДС создайте вычисляемое поле, записав в пустой ячейке строки Поле (Field) выражение [ЦЕНА]+[ЦЕНА]*[СТАВКА_НДС].
  3. Для отбора записей со значением выше 5000 в вычисляемом поле в строку Условие отбора (Criteria) введите > 5000
  4. После ввода выражения система по умолчанию формирует имя вычисляемого поля Выражение 1, которое становится заголовком столбца в таблице с результатами выполнения запроса. Это имя вставится перед выражением [ЦЕНА]+[ЦЕНА]*[СТАВКА_НДС]. Для каждого нового вычисляемого поля в запросе номер выражения увеличивается на единицу. Имя вычисляемого поля отделяется от выражения двоеточием. Для изменения имени установите курсор мыши в вычисляемом поле бланка запроса и нажмите правую кнопку мыши. В контекстно-зависимом меню выберите Свойства (Properties) поля и в строку Подпись (Caption) введите новое имя поля ― Цена с НДС1. Теперь в таблице с результатами выполнения запроса в заголовке вычисляемого столбца отобразится это имя. Имя поля может быть исправлено также непосредственно в бланке запроса.
  5. Для отображения результата выполнения запроса щелкните на кнопке Выполнить (Run) в группе Результаты (Results). Вычисляемое поле таблицы и за-проса имеют одинаковые значения.
  6. Измените в одной из записей запроса цену товара. Значения в обоих вычисляемых полях будут моментально пересчитаны.
  7. Для формирования сложного выражения в вычисляемом поле или условии отбора целесообразно использовать построитель выражений. Построитель позволяет выбрать необходимые в выражении имена полей из таблиц, запросов, знаки операций, функции. Удалите выражение в вычисляемом поле и используйте построитель для его формирования.
  8. Вызовите построитель выражений (Expression Builder), нажав кнопку Построитель (Builder) в группе Настройка запроса (Query Setup) ленты Конструктор (Design), или выбрав Построить (Build) в контекстно-зависимом меню. Курсор мыши должен быть установлен предварительно в ячейке ввода выражения.
  9. В левой части окна Построитель выражений (Expression Builder) (рис. 4.7) выберите таблицу ТОВАР, на которой построен запрос. Справа отобразится список ее полей. Последовательно выбирайте нужные поля и операторы, двойным щелчком вставляя в выражение. Выражение сформируется в верхней части окна. Обратите внимание, построитель перед именем поля указал имя таблицы, которой оно принадлежит, и отделил его от имени поля восклицательным знаком.
  10. Завершите процесс построения выражения в вычисляемом поле, щелкнув на кнопке ОК.
  11. Сохраните запрос под именем ― Цена с НДС и закройте его.
  12. Выполните сохраненный запрос, выделив его в области навигации и выбрав в контекстном меню команду Открыть (Open).

Вычисляемые поля в запросах Access
Задача 2. В вычисляемых полях и условиях отбора можно использовать встроенные функции. В Access определено более 150 функций.
Пусть необходимо выбрать все накладные, по которым производилась отгрузка в заданном месяце. В таблице НАКЛАДНАЯ дата отгрузки хранится в поле ДАТА_ОТГ с типом данных Дата/время (Date/Time).

  1. Создайте в режиме конструктора запрос на выборку для таблицы НАКЛАДНАЯ. Перетащите в бланк запроса поля НОМ_НАКЛ и КОД_СК (рис. 4.8).
  2. Создайте вычисляемое поле в пустой ячейке строки Поле (Field), записав туда одно из выражений: Format([НАКЛАДНАЯ]![ДАТА_ОТГР];»mmmm») ― эта функция возвратит пол-ное название месяца
    или Format([НАКЛАДНАЯ]![ДАТА_ОТГР];»mm») ― эта функция возвратит номер месяца.
  3. Для отбора накладных, выписанных в заданном месяце, в вычисляемом поле в строку Условие отбора (Criteria) введите название месяца, например март (рис. 4.8), или номер месяца, например 3 в соответствии с параметром в функции Format.
  4. Выполните запрос, нажав кнопку Выполнить (Run) в группе Результаты (Results) на вкладке ленты Работа с запросами | Конструктор (Query Tools | Design).
  5. Запишите в вычисляемом поле функцию Month(НАКЛАДНАЯ!ДАТА_ОТГ), и убедитесь, что эта функция возвращает выделенный из даты номер месяца.
  6. Для выборки всех строк, относящихся ко второму кварталу, в строку Условие отбора (Criteria) введите оператор Between 4 And 6, определяющий, попадает ли значение выражения в указанный интервал.
  7. Запишите в вычисляемом поле выражение MonthName(Month(НАКЛАДНАЯ!ДАТА_ОТГ)) и убедитесь, что функция MonthName преобразует номер месяца в его полное на-звание.

Вычисляемые поля в запросах Access
Для закрепления смотрим видеоурок:

Параметрический запрос Access тут.

Создадим
запрос на выборку в режиме Конструктор
запросов для получения сведений о
проданных книгах, продавцах, жанрах,
количестве

Выполнение
в MS Access 2007

  1. Выполним
    команды Создание Запросы
    Конструктор
    запросов.

  2. В
    диалоговом окне Добавление таблицы
    откроем вкладку Таблицы. По очереди
    выберем таблицы, которые будут
    использоваться в запросе (Жанры, Серия,
    Книги, Заказы, Строки заказа, Продавцы,
    Авторы)

  3. Каждый
    раз нажимаем кнопку Добавить. Закроем
    окно Добавление таблицы.

  4. Верхняя
    часть окна Конструктор Запроса содержит
    список всех полей таблиц, включенных
    в область действия запроса.

  5. Нижняя
    часть содержит бланк QBE (QuerybyExample —
    запрос по образцу), в котором вы
    определяете параметры запроса. Каждый
    столбец бланка соответствует одному
    из полей.

  6. В
    строку Поле включите имена полей,
    используемых в запросе (Имя, Отчество,
    Фамилия, Название
    книги;

    накладной;
    Дата
    покупки;
    Фамилия
    продавца;
    Цена;
    Количество)

  7. Для
    этого установим курсор на имени
    выбираемого поля в верхней части окна
    Конструктора в соответствующей таблице,
    и дважды щелкнем ЛКМ (левой кнопкой
    мыши).

Создание
вычисляемого поля

При
использовании операторов для построения
выражений условий отбора целесообразно
пользоваться Построителем выражений,
для вызова которого:

  1. щелкнем
    в последнюю ячейку бланка запроса, в
    которую будет вставлено выражение

  2. выполним
    команды Работа с запросами Конструктор
    Настройка
    запроса и щелкните по кнопке

  3. в
    диалоговом окне Построитель выражений
    создадим выражение, определив имена
    полей

Стоимость
заказа: Книги!Цена*[Строки заказа]!Количество

Заменим
слово «Выражение 1» на Стоимость
заказа,
выражение примет вид:

Стоимость
заказа:
Книги!Цена*[Строки заказа]!Количество

Заполненный
бланк запроса

Чтобы
увидеть результаты запроса1 выберем
команду Вид – Режим таблицы

Сохраните
запрос с именем Запрос1 стоимость заказа.

3. Запрос «Запрос 3 на группировку»

Выполнение
в MS Access 2007

  1. Выполним
    команды Создание Запросы
    Конструктор
    запросов.

  2. Добавим
    таблицы-Книги , Авторы

  3. Добавим
    поля Имя , Отчество, Фамилия, Название

  4. Для
    задания группировки Выделим поля и
    нажмем на кнопку.

  5. Для
    расчета количества книг каждого автора
    в Поле Название, Групповая операция
    выбираем Count

Запрос
в конструкторе

Результат
запроса

4. Запрос «Запрос 4_перекрестный »

Выполнение
в MS Access 2007

  1. На
    Создпние- Мастер запросов – Перекрестный
    запрос

  2. Следовать
    шагам мастера

  3. Доработаем
    запрос в конструкторе, как показано на
    рисунке

  4. Сохранить
    запрос4

Перекрестный
запрос в режиме Конструктора.

Результат
запроса

  1. Запрос
    на добавление

Выполнение
в MS Access 2007

  1. Выполним
    команды Создание Запросы
    Конструктор
    запросов

  2. Из
    меню выбираем
    Обновление

  1. Добавим
    поле Цена, Обновление Цена + 10

Запрос
в конструкторе

Результатом
запроса изменение всех записей и
увеличение цены на 10

Создание отчетов.

Отчет—
это объект базы данных, который
используется для отображения и обобщения
данных. С помощью отчетов можно
распространять и архивировать мгновенные
снимки данных в печатном виде, и файлов
других форматов.

Отчеты
могут содержать подробные сведения об
отдельных записях, сводные сведения о
большой группе записей либо и то, и
другое. Кроме того, отчеты Access также
можно использовать при создании наклеек
для списков рассылок и многого другого.

Отчет
по запросу Запрос2 стоимость заказа
.

Выполнение
в MS Access 2007

  1. Выполним
    команды Объекты 
    Отчеты Создание
    отчета с помощью мастера.

  2. Откроется
    окно мастера

  3. В
    поле Таблицы и запросы из списка выберем
    запрос-Запрос 2 стоимость заказа. Нажмем
    кнопку Далее.

  4. Откроется
    2-ое окно мастера. Выбираем уровни
    группировки Имя,

  5. Нажмем
    кнопку Далее.

  6. Откроется
    3-ое окно мастера. Выбор сортировки.
    Нажимаем итоги и с тавим галочки
    Sum-Количество и стоимость

  7. Нажмем
    кнопку Далее.

  8. Откроется
    4-ое окно мастера. Выбираем вид макета
    – структура1.Нажмем кнопку Далее.

  9. Откроется
    5-ое окно мастера. Выбираем стиль –
    Деловой.

  10. Откроется
    6-ое окно мастера. Сохраняем запрос –
    Запрос2 стоимость заказа

Отчет
книги магазина

Отчет
заказы

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

В MS Access вычисляемые поля и строка итогов позволяют выполнять вычисления на основе данных в таблицах. Вычисляемые поля выполняют вычисления с использованием данных в записи, в то время как строки итогов выполняют вычисления для всего поля данных.

Поле рассчитано

Когда вы создаете вычисляемое поле, вы добавляете новое поле, в каждой строке которого содержится расчет, включающий другие числовые поля в этой строке. Для этого вы должны ввести математическое выражение, состоящее из имен полей в вашей таблице и математических символов. Вам не нужно слишком много разбираться в математике или построении выражений, чтобы создать полезное вычисляемое поле. Фактически, вы можете писать сильные выражения, просто используя математические знания, полученные в школе. Например, вы можете:

  1. Используйте знак +, чтобы вычислить сумму двух полей или добавить в поле постоянное значение (например, + 2 или + 5).
  2. Используйте * для умножения значений двух полей или для умножения полей на постоянное значение.
  3. Использование — вычитание одного поля из другого или вычитание постоянного значения из поля.

В приведенном ниже примере мы будем использовать таблицу, содержащую заказы за месяц. В таблице представлены товары, перечисленные по торговым единицам — один, полдюжины и дюжины. В столбце указано количество товаров, проданных каждой торговой единицей. Другой столбец сообщает нам фактическое числовое значение каждой из этих единиц. Например, в верхнем ряду вы можете увидеть, что было продано две дюжины пирожных с помадкой, и в каждой дюжине по 12 пирожных.

Изображение 1 из Как создавать поля вычисляемых и итоговых строк в Access 2016

Чтобы найти общее количество проданных пирожных, нам нужно будет умножить количество проданных единиц на стоимость каждой единицы (здесь 2 * 12 равно 24). Это простой вопрос, но выполнение этого вычисления для каждой строки в таблице было бы утомительной и трудоемкой задачей. Вместо этого вы можете создать вычисляемое поле, чтобы знать, сколько из этих двух продуктов умножается в каждой строке.

Как создать вычисляемое поле

1. Выберите вкладку «Поля», найдите группу «Добавить и удалить» и щелкните раскрывающуюся команду «Дополнительные поля».

Изображение 2: как создавать поля вычисляемых и итоговых строк в Access 2016

2. Наведите указатель мыши на вычисляемое поле и выберите нужный тип данных. Поскольку результатом будет число, выберите «Число».

Изображение 3: как создавать поля вычисляемых и итоговых строк в Access 2016.

3. Создайте свое выражение. Чтобы выбрать поля для включения в выражение, дважды щелкните поле в поле «Категории выражений». Не забудьте включить в математические операции такие операторы, как + или -. Поскольку мы хотим умножить два поля, мы поставим между ними символ умножения

.

Изображение 4: как создавать поля вычисляемых и итоговых строк в Access 2016.

4. Щелкните ОК.  Рассчитанные поля будут добавлены в вашу таблицу.  Если хотите, можете отсортировать или отфильтровать.

Изображение 5 из Как создать поля вычисляемых и итоговых строк в Access 2016

Дополнительные примеры математических выражений, которые можно использовать для создания вычисляемых полей, см. В арифметических выражениях в диалоговом окне «Построитель выражений».

Всего товаров

Строка суммирует все значение в числовом столбце, как то, что вы обычно делаете в бухгалтерской книге или в квитанции. Итоговый результат появится в специальной строке внизу вашей таблицы.

Для примера в этой статье мы добавим итоговую строку в вычисляемое поле. Это покажет нам общее количество проданных товаров.

Как создать итоговую строку

1. На вкладке «Главная» найдите группу «Записи» и щелкните команду «Итоги».

Изображение 7 из Как создавать поля вычисляемых и итоговых строк в Access 2016

2. Прокрутите до последней строки таблицы.

3. Найдите нужное поле для итоговой строки, затем выберите второй пробел под последней записью для этого поля.  Когда появится раскрывающаяся стрелка, щелкните стрелку.

Изображение 8 из Как создать поля вычисляемых и итоговых строк в Access 2016

4. Выберите функцию, которую вы хотите выполнить с данными поля.  В примере в этой статье мы выберем Sum, чтобы сложить все значения в вычисляемом поле.

Изображение 9 из Как создать поля вычисляемых и итоговых строк в Access 2016

5. Появится итоговая строка.

Изображение 10 из того, как создавать поля вычисляемых и итоговых строк в Access 2016

Удачи!

  1. Узнать больше:
  2. Создайте собственную базу данных в Access 2016
  3. Форматирование форм в Access 2016

Создание форм (форм) в Access 2016

Добавить комментарий