Главная страница > Вопрос
Вопрос
Запрос с параметром в Access
Задача: в MS Access из таблицы выбрать N последних записей.
Для пяти записей это будет выглядеть так:

SELECT TOP 5 *
FROM TestTable
ORDER BY TestTable.Num DESC;

Работает, но не совсем: вместо числа 5 должно быть число, задаваемое пользователем...
Обычно это делается квадратными скобками, например:

SELECT *
FROM TestTable
WHERE (((TestTable.Num)=[Number]));
но в первом примере подставление вместо числа выражения [Number] выдает ошибку.

Вопрос: как первый код сделать рабочим запросом с параметром, задаваемым пользователем?
запрос | access | выборка | параметр | sql 23.09.08 Автор: Defacto
Ответы
1 из 3
возможна только такая конструкция SELECT TOP 5 *
переменные, типа SELECT TOP [XX] * - это уже ошибка синтаксиса запроса

как вариант, Вы можете написать программу, которая будет такой запрос динамично создавать :)
23.09.08 Автор: Без имени
2 из 3
так, говоря о программе, и имелось ввиду VBA for Access :))
23.09.08 Автор: Без имени
3 из 3
скрипт лучше писать сразу в форме, которую и нужно будет создать...
в форме (Форма3) нужно будет сделать поле Num , куда будет вводиться количество выводимых записей, и кнопка (Кнопка0), которая будет все обрабатывать :)

Вешаете на кнопку событие по нажатию

Private Sub Кнопка0_Click()

Dim db As Database
Set db = CurrentDb

Num = Forms("форма3").Num

Set sql = db.CreateQueryDef("xx", "select top " & Num & " * from TestTable")
DoCmd.OpenQuery "xx", acNormal, acEdit
db.QueryDefs.Delete "xx"

End Sub
23.09.08 Автор: Без имени
Это может быть интересно
Помогите разобраться в Access c запросами на SQL
Где запросы в access 2007???
Помогите с запросом в access...
Запрос в Access 2010
Как установить в свойствах запроса "только на чтение" на MS Access 2007 ?
Войти
Просмотреть Вопросы и ответы в версии: для мобильных устройств | для ПК
©2014 Google - Политика конфиденциальности - Справка