Поиск Картинки Карты Play YouTube Новости Почта Диск Ещё »
Войти
Ваш браузер не поддерживает сервис Вопросы и ответы, поэтому некоторые функции могут работать некорректно. Просмотреть список поддерживаемых браузеров можно здесь.
Вопросы и ответы
Запрос с параметром в Access
Запрос с параметром в Access
Задача: в MS Access из таблицы выбрать N последних записей.
Для пяти записей это будет выглядеть так:

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

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

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

Вопрос: как первый код сделать рабочим запросом с параметром, задаваемым пользователем?
Примечание №1 23 сент. 2008 г., 18:18:23
Решаемая задача не стоит того, чтобы под нее писать программу...

А возможно эту задачу решить через VBA?
Примечание №2 23 сент. 2008 г., 18:58:55
А вот тут уже сложнее...
Куда писать скрипт? Куда сувать кнопку и поле?
Ответы (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
возможна только такая конструкция SELECT TOP 5 *
переменные, типа SELECT TOP [XX] * - это уже ошибка синтаксиса запроса

как вариант, Вы можете написать программу, которая будет такой запрос динамично создавать :)
так, говоря о программе, и имелось ввиду VBA for Access :))
Об этом вопросе
Баллов за лучший ответ: 50
Просмотров: 10291
Ответов: 3
Похожие вопросы
ответов: 1 Голосов: -1
ответов: 3 Голосов: 0
ответов: 2 Голосов: 0
ответов: 7 Голосов: 1
ответов: 6 Голосов: 2
ответов: 5 Голосов: 0
ответов: 1 Голосов: 0
ответов: 1 Голосов: 0
x
©2013 Google - Условия использования - Правила в отношении веб-контента - Политика конфиденциальности - Принципы сообщества