Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Помогите правильно составить SQL запрос  [new]
Dikker
Member

Откуда:
Сообщений: 16
Всем здравствуйте. Использую для Рекордсета такую строку:
sql = "SELECT * FROM [Расписание] WHERE [Расписание]![Маршрут] like " & Forms![Мониторинг]![Маршрут] & " AND [Расписание]![График]= " & Forms![Мониторинг]![График] & " AND [Расписание]![Смена]= " & Forms![Мониторинг]![Смена] _
& " AND [Расписание]![День]= " & Forms![Мониторинг]![День] & " AND [Расписание]![Рейс]>= " & Forms![Мониторинг]![ПервыйКруг] & " AND [Расписание]![Рейс]<= " & Forms![Мониторинг]![ПоследнийКруг]

когда Forms![Мониторинг]![Маршрут] содержит только число (например 4), то все работает нормально, но стоит там появиться строке (например 4д), то выдает ошибку.

Как правильно написать?
15 май 19, 13:46    [21885240]     Ответить | Цитировать Сообщить модератору
 Re: Помогите правильно составить SQL запрос  [new]
bubucha
Member

Откуда:
Сообщений: 5392
[тут]
15 май 19, 13:59    [21885263]     Ответить | Цитировать Сообщить модератору
 Re: Помогите правильно составить SQL запрос  [new]
Dikker
Member

Откуда:
Сообщений: 16
DoubleQuote и DoubleApostrophe выдают Sub or Function not defined. Я ж за помощью сюда пришел, как не очень спец к очень спецам...
15 май 19, 14:32    [21885318]     Ответить | Цитировать Сообщить модератору
 Re: Помогите правильно составить SQL запрос  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 301
...WHERE [Расписание]![Маршрут] like '" & Forms![Мониторинг]![Маршрут] & "' AND ...

Несколько замечаний...
1. Оператор like уместен, если в поле "Маршрут" используются символы шаблона (например "*"), иначе используйте "="
2. Т.к. используется одна таблица, то от [Расписание]! можно отказаться, что сделает SQL строку короче
3. Если сборка SQL выполняется в модуле формы "Мониторинг", то вместо Forms![Мониторинг]![Маршрут] (и т.п.) можно указать Me![Маршрут], что сделает SQL еще короче.
4. У вас всегда заполнены все поля формы, участвующие в WHERE? Если нет, то стратегию формирования SQL надо менять.
15 май 19, 14:34    [21885324]     Ответить | Цитировать Сообщить модератору
 Re: Помогите правильно составить SQL запрос  [new]
Dikker
Member

Откуда:
Сообщений: 16
1. Если я использую "=", то "несоответствие типов данных"
2. Переделал - работает =)
3. Переделал - работает =)
4. Все поля обязательны к заполнению
15 май 19, 14:44    [21885348]     Ответить | Цитировать Сообщить модератору
 Re: Помогите правильно составить SQL запрос  [new]
Dikker
Member

Откуда:
Сообщений: 16
Кривцов Анатолий,
1. Если я использую "=", то "несоответствие типов данных"
2. Переделал - работает =)
3. Переделал - работает =)
4. Все поля обязательны к заполнению
15 май 19, 14:46    [21885355]     Ответить | Цитировать Сообщить модератору
 Re: Помогите правильно составить SQL запрос  [new]
Dikker
Member

Откуда:
Сообщений: 16
Проблему так и не решил =(
15 май 19, 15:10    [21885390]     Ответить | Цитировать Сообщить модератору
 Re: Помогите правильно составить SQL запрос  [new]
bubucha
Member

Откуда:
Сообщений: 5392
Dikker
Проблему так и не решил =(

так выше уже написали... 4д - строка, значит надо использовать апострофы ,т.е ..... должно получится примерно ...Like '4д' или ...='4д'
15 май 19, 15:23    [21885409]     Ответить | Цитировать Сообщить модератору
 Re: Помогите правильно составить SQL запрос  [new]
Кривцов Анатолий
Member

Откуда:
Сообщений: 301
Dikker
Если я использую "=", то "несоответствие типов данных"
Проблему так и не решил =(


Еще раз (добавьте апострофы):
...WHERE [Маршрут] like '" & Me![Маршрут] & "' AND ...
или
...WHERE [Маршрут] = '" & Me![Маршрут] & "' AND ...
15 май 19, 15:27    [21885418]     Ответить | Цитировать Сообщить модератору
 Re: Помогите правильно составить SQL запрос  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 6146
sql = "SELECT * FROM [Расписание] WHERE [Расписание]![Маршрут] like " & Forms![Мониторинг]![Маршрут] & " AND [Расписание]![График]= " & Forms![Мониторинг]![График] & " AND [Расписание]![Смена]= " & Forms![Мониторинг]![Смена] _
& " AND [Расписание]![День]= " & Forms![Мониторинг]![День] & " AND [Расписание]![Рейс]>= " & Forms![Мониторинг]![ПервыйКруг] & " AND [Расписание]![Рейс]<= " & Forms![Мониторинг]![ПоследнийКруг]
По-моему строка SQL должна выглядеть так(если все поля текстовые,которые числовые-без апострофов,если дата-применять ф-цию Format:
sql = "SELECT * FROM [Расписание] WHERE [Расписание]![Маршрут] like '" & Forms![Мониторинг]![Маршрут] & "*'  AND [Расписание]![График]= '" & Forms![Мониторинг]![График] & "' AND [Расписание]![Смена]= '" & Forms![Мониторинг]![Смена] _
& "' AND [Расписание]![День]=#" & format(Forms![Мониторинг]![День], "mm\/dd\/yy") & "# AND [Расписание]![Рейс]>= '" & Forms![Мониторинг]![ПервыйКруг] & "' AND [Расписание]![Рейс]<= '" & Forms![Мониторинг]![ПоследнийКруг] & "'"
15 май 19, 15:29    [21885420]     Ответить | Цитировать Сообщить модератору
 Re: Помогите правильно составить SQL запрос  [new]
Dikker
Member

Откуда:
Сообщений: 16
Всем спасибо огромное - помогли балбесу! =)
16 май 19, 05:44    [21885807]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить