Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Microsoft Access - программирование и готовые решения


Выпуск 102. Функции группировки в SQL запросах

Подписка:      "Microsoft Access - программирование и готовые решения"
Дата:               03.07.2011
Сайт:               http://www.leadersoft.ru/
Статья:            http://www.leadersoft.ru/rus/help/subscribe/sub102.html
Обсудить:       http://help.leadersoft.ru/tabid/74/forumid/1/scope/threads/Default.aspx

Введение
Сильной стороной Microsoft Access является использование функций в запросах SQL. Вы можете ссылаться на поля в формах приложения, можете создать свою функцию на VBA или использовать встроенные функции в Access. Пример.
SELECT [КАССА примеры].Дата FROM [КАССА примеры] WHERE ((([КАССА примеры].Дата)>Date()+10));
 
Встроенные функции

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

  • Функция Sum возвращает сумму значений содержащихся в заданном поле запроса.
  • Функция Count вычисляет количество записей, возвращенных запросом.
  • Функции Min, Max возвращают минимальное или максимальное из значений, содержащихся в заданном поле запроса.
  • Функции First и Last возвращают значение поля из первой или последней записи в результирующем наборе, который возвращается запросом.

Примеры использования простейшей функции суммирования и  подсчета записей в операциях по кассе показаны ниже

  • SELECT [КАССА примеры].дбСчет AS Приход, Sum([КАССА примеры].Сумма) AS SumСумма FROM [КАССА примеры] GROUP BY [КАССА примеры].дбСчет;
  • SELECT Count(*) AS [ЧислоБольшихОпераций] FROM [КАССА примеры] WHERE [Сумма] > 10000

Функции группировки
Кроме этих функций, которые есть и в Access, SQL Server, MySQL и других базах данных, Access предлагает функции с фильтрацией, т.е. функции DSum, DCount и другие. Их используют уже реже, но значение их для построения интерфейса имеет большое значение, т.к. можно значительно упростить код приложения, если знать как их использовать. Например, указанный ниже запрос выводит число операций по кассе, где сумма больше 10 тысяч рублей. Обратите внимание, что этот запрос возвращает 1 поле, которое может использоваться в SQL запросах, а не только в VBA, а фильтр записей ("[Сумма]>10000") имеет разные виды реализаций. Примеры
  • Me.Результат = DCount("Сумма","Касса примеры","[Сумма] > 10000") AS ЧислоБольшихОпераций;
  • Me.Результат = DCount("Сумма", "Касса примеры", "[Сумма] > " & Forms("Форма1")!МаксимальнаяСумма)
  • Me.Результат = DCount("Сумма", "Касса примеры", "[Сумма] > " & GetMaxSum())
  • Public Function GetMaxSum() As Currency
        GetMaxSum = Forms("Форма1")!МаксимальнаяСумма
    End Function
  • Me.Результат = DLookUp("Format([Сумма],""0.0"")&"" "" & [дбСчет]","Касса примеры","[Сумма] > 10000")
Обратите внимание на последний пример, там где должно стоять ! 1 поле, мы подставили выражение, используя ряд полей Сумма и дбСчет. Это позволяет одним запросом сразу запросить несколько полей из базы данных, а потом из этих данных найти нужное поле, например, так buffer = Split(Me.Результат," ")
Примечание

Таким образом, используя эти функции можно построить простейший код на VBA, без применения серверных процедур с параметрами и команд из ADO библиотеки.



Разработка баз данных на заказ
На сайте leadersoft.ru можно заказать базу данных на Access или динамический сайт с базой SQL Server. Необходимо заранее продумать и подготовить письменные материалы, чтобы сократить время на подготовку проекта, и тем самым уменьшить расходы на проектирование. Сейчас разработаны много новых интересных решений.
  • Это рассылка SMS сообщений из базы данных через специальный интерфейс. Например, поздравление с днем рождением, напоминания о платеже и т.п.,
  • импорт из Сбербанка (Банка Москвы) платежей и сохранение их базе Access в разных таблицах без дублирования информации о клиентах и платежах,
  • перевод баз данных из Access в SQL Server для разных офисов, 
  • Подключение к базам MySQL, SQL Server, Access, Excel (только чтение) из одного проекта с возможностью редактирования, добавления и удаления записей.
  • Работа с электронными кошельками типа webmoney, w1 и т.п.
  • Импорт больших xml файлов с удаленных сайтов и из каталога программы.

Компьютерная литература
Это специальный раздел сайта leadersoft.ru, где продаются книги по компьютерной тематики. Для удобства пользования вся литература разбита на разделы, смотрите ниже ссылки. Вы также можете оставить свою заявку на покупку или продажу своей книги через форум на сайте: Книги .

Лицензия на источник информации
    Все права на статью принадлежат Leadersoft.ru. Статья предназначена только для публикации среди подписчиков subscribe.ru. Никто без письменного разрешения leadersoft.ru не может продавать, перепечатывать, сдавать в аренду или другим образом извлекать выгоду, используя информацию из этой и других статьях данной рассылки.

В избранное