Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






О нумерованном динамическом запросе.




Улучшить метод получения нумерованного динамического запроса не удалось. Более того, разработать метод, нумерующий запрос со скоростью = C*n, по-видимому, невозможно. Поэтому для полноты привожу метод 3 из упомянутой выше статьи.

SELECT DCount("*", "MyQuery",КритерийСравнения) AS Num, MyField
FROM MyQuery ORDER BY MyField;

КритерийСравнения для чисел: "MyField <=" & MyField

КритерийСравнения для текста: "MyField <='" & MyField & "'"

Примечание.

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

форму строим на нумерованном статическом запросе;

корректировку проводим в свободном поле формы;

после корректировки изменяем прямым доступом соответствующее поле в основной таблице;

обновляем запрос в форме.

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

Суммирование с накоплением в запросе

Автор: Юрий Шерман
www.tour-soft.com

Запрос, нумерующий записи и выдающий сумму полей с накоплением.

Постановка задачи.

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

Требуется построить статический запрос, не меняющий порядка следования записей MyQuery, и добавляющий:
- вычисляемое поле Num, нумерующее строки запроса, начиная с 1;
- вычисляемое поле Summa, представляющее собой сумму значений поля MyField от первой строки до текущей.

Решение.

Текст запроса:

SELECT DISTINCT Numeration(MyField) as Num, SumField(MyField) As Summa, MyField FROM MyQuery
WHERE Numeration() = 0 AND SumField() = 0;

Функция Numeration описана в статье "Нумерация строк запроса"

Описание функции SumField:

Public Function SumField(Optional Var) As Double
Static D As Double
If IsMissing(var) Then
D = 0
Else
D = D + Nz(Var,0)
End If
SumField = D
End Function






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных