![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 09.08.2010
Сообщений: 8
|
![]()
Здравствуйте. Использую Microsoft Access 2007 для создания базы данных.
У меня это первая БД, так что опыта мало. Поэтому столкнулся со следующей проблемой: У меня имеется запрос, который отбирает из таблицы записи по какой-либо дате (дата производства или дата продажи). Требование в БД такое, чтобы юзер не мог напортачить при вводе параметров, поэтому, если я пишу в конструкторе запроса в поле "Условие отбора" выражение >=[Начальная] And <=[Конечная дата], то пользователь может ввести в качестве параметра любую букву, что и приведёт в к ошибке. Чтобы этого не произошло, я хочу использовать маску в форме. Теперь вопрос: как правильно это реализовать? В своей форме в поле ,куда вводится дата задаю событие "После обновления" как макрос: ЗадатьВремПеременную, Имя: StartDate, Выражение: [Формы]![Ввод дат]![Поле0].[OnChange] (Для создания выражение использовал построитель выражений). В запросе же пишу: >=[TempVars]![StartDate] And <=[Конечная дата]. Но тогда, при вызове запроса, выдаётся сообщение о невозможности вычислить выражение и т.д. Помогите пожалуйста ) Сколько не гуглил, никак не могу сообразить, как сделать правильно. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
![]()
Здравствуйте NecroArt.
1. конструкция "..>=[Начальная] And <=[Конечная дата].." - не есть правильно. ![]() необходимо явно указывать в сравнении имя объекта (поля) : D>=[Начальная] And D<=[Конечная дата] или использовать оператор сравнения Between: WHERE D Between [Начальная] And [Конечная дата] 2. не знаю как Вы планируете использовать макрос: ЗадатьВремПеременную, но передать значение переменной в любую SQL конструкцию можно только используя функцию, в MS Access это может быть пользовательская VBA функция возвращающая значение переменной или объекта. Использоваться может так: Код:
(D - поле даты в запросе, D1,D2 - значения переменных или соответствующих полей формы) Успехов Вам. Евгений. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 09.08.2010
Сообщений: 8
|
![]()
Оказывается, проблема решается добавлением в условие конструктора выражения вида Forms![Форма1].Controls![Поле1].Value. Что ж, всё= спасибо )
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
NULL в sql-запросах | _SERGEYX_ | БД в Delphi | 5 | 27.10.2010 18:16 |
проблемка с соксами при idhttp запросах | maloy_ya | Работа с сетью в Delphi | 3 | 29.09.2010 18:33 |
Трабл при SOAP-запросах по таймеру | 1datr | Работа с сетью в Delphi | 0 | 03.10.2009 13:26 |
Пустые поля в запросах | PetroPorsh | Microsoft Office Access | 1 | 16.10.2008 16:56 |
Возможна ли рекурсия в запросах | eremin | БД в Delphi | 0 | 23.05.2007 15:54 |