Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
12 / 9 / 3
Регистрация: 13.07.2018
Сообщений: 686
1

Невозможно выполнить запрос на форме

01.02.2020, 12:01. Просмотров 1285. Ответов 12
Метки нет (Все метки)

Всем привет.
Друзья подскажите почему вылетает ошибка
На главной форме флажок, который по уму должен отсортировывать строки по полю Скрытая = True

Вот что я делаю
Visual Basic
1
2
3
4
5
6
7
Dim sql As String
If Me.flgSk.Value = False Then
sql = "SELECT tblПоставщик.Код, tblПоставщик.Наим_поставщика,....... CCur(Nz([SummaUPD],0)) AS СуммаУПД FROM tblПоставщик LEFT JOIN qryПоставщикСписок_Sub ON tblПоставщик.Код = qryПоставщикСписок_Sub.ПоставщикID WHERE (((tblПоставщик.Скрытая)=False))"
Else
sql = "SELECT tblПоставщик.Код, tblПоставщик.Наим_поставщика, ......., CCur(Nz([SummaUPD],0)) AS СуммаУПД FROM tblПоставщик LEFT JOIN qryПоставщикСписок_Sub ON tblПоставщик.Код = qryПоставщикСписок_Sub.ПоставщикID WHERE (((tblПоставщик.Скрытая)=True))"
End If
CurrentDb.Execute sql
По моей логике все должно работать, но это не точно))).
Если без смеха подскажите в каком направлении рыть.
P.S.
Мне по аналогичной схеме еще 4 формы надо преобразить, а работа мягко говоря встала.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2020, 12:01
Ответы с готовыми решениями:

Невозможно выполнить POST запрос
Доброго времени суток, комрады. Столкнулся со странной проблемой - не выходит post запрос...

Невозможно выполнить запрос из приложения
Написал простенькое приложение, которое генерирует скрипт восстановления из бекапов. Но при попытке...

Невозможно выполнить запрос обнаружен неизвестный или некорректный jpeg-маркер
Появляется такая ошибка в Photoshop при открытии файла jpeg. И уже не в первый раз. Причем сам файл...

Невозможно выполнить настройку джойстика
Здравствуйте Имеется джойстик подключенный по usb при переходе Панель управленияИгровые...

12
12 / 9 / 3
Регистрация: 13.07.2018
Сообщений: 686
01.02.2020, 12:04  [ТС] 2
Скрин ошибки
0
Миниатюры
Невозможно выполнить запрос на форме  
7350 / 3759 / 844
Регистрация: 05.10.2016
Сообщений: 10,341
01.02.2020, 12:20 3
Цитата Сообщение от vb001 Посмотреть сообщение
Скрин ошибки
И правильно - там нечего исполнять, запрос то на выборку!
Вот процедура:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private Sub OpenSQLStrAsQuery(sSQL$, Optional sQueryName$ = "Z_TempQuery")
Dim qdf As QueryDef
Dim bQueryPresent As Boolean
    
' Пытаемся узнать есть ли запрос с таким названием:
    For Each qdf In CurrentDb.QueryDefs
        If qdf.Name = sQueryName Then 'если запрос есть
            bQueryPresent = True 'Запрос уже есть
        End If
    Next qdf
    
    If bQueryPresent = False Then ' создаем QueryDef
        Set qdf = CurrentDb.CreateQueryDef(sQueryName)
    Else
        'Если запрос уже открыт
        If CurrentData.AllQueries(sQueryName).IsLoaded Then
            DoCmd.Close acQuery, "sQueryName"
        End If
        Set qdf = CurrentDb.QueryDefs(sQueryName)
    End If
    
    qdf.sql = sSQL 'Задаём "тело" запроса
 
' открываем
    DoCmd.OpenQuery sQueryName, acViewNormal
    
    Set qdf = Nothing
End Sub
Напишите так :
Visual Basic
1
OpenSQLStrAsQuery sql
1
Эксперт MS Access
6596 / 4199 / 255
Регистрация: 12.08.2011
Сообщений: 12,097
01.02.2020, 12:22 4
Лучший ответ Сообщение было отмечено vb001 как решение

Решение

Цитата Сообщение от vb001 Посмотреть сообщение
CurrentDb.Execute sql
поменяйте на:
Visual Basic
1
me.recordsource = sql
2
Эксперт MS Access
16229 / 6697 / 1449
Регистрация: 21.06.2012
Сообщений: 12,357
01.02.2020, 12:26 5
Формально: Execute только для запросов выполняемых (UPDATE, DELETE, ...), а не запросов на выборку SELECT, что и написано в сообщении. Что реально Вы хотите сделать - непонятно. Возможно собирались измените источник записей формы? Тгда и присваивайте ему Ваши SQL. Тогда вместо
Visual Basic
1
CurrentDb.Execute sql
поставьте
Visual Basic
1
Me.RecordSource =sql

Не по теме:

Опоздал ...

1
12 / 9 / 3
Регистрация: 13.07.2018
Сообщений: 686
01.02.2020, 13:31  [ТС] 6
Да вы правы я делаю выборку. Спасибо. Исправлю

Добавлено через 1 час 2 минуты
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Me.RecordSource =sql
Ошибка пропала, но выборка не происходит.
Я в ТЗ наверное не полностью расписал.
На главной форме флажком должно фильтроваться данные в подчиненной форме, которая в свою очередь сделана на основе запроса qryПоставщикСписок
Такое ощущение я вообще не правильно построил запрос на выборку.
0
12 / 9 / 3
Регистрация: 13.07.2018
Сообщений: 686
01.02.2020, 13:33  [ТС] 7
Скрин запроса
0
Миниатюры
Невозможно выполнить запрос на форме  
7350 / 3759 / 844
Регистрация: 05.10.2016
Сообщений: 10,341
01.02.2020, 13:54 8
Цитата Сообщение от vb001 Посмотреть сообщение
На главной форме флажком должно фильтроваться данные в подчиненной форме
так и фильтруйте! ...
Visual Basic
1
2
3
4
Dim sql As String
   sql = "Скрытая="  Me!flgSk.Value
   Me![Название объекта подчинённая форма].Form.Filter = sql
   Me![Название объекта подчинённая форма].Form.FilterOn = True
0
12 / 9 / 3
Регистрация: 13.07.2018
Сообщений: 686
01.02.2020, 19:36  [ТС] 9
Попробуем

Добавлено через 5 часов 41 минуту
Цитата Сообщение от Eugene-LS Посмотреть сообщение
так и фильтруйте! ...
Евгений, все работает, но как я и ожидал есть нюансы такова вида фильтрации
1. Если много записей то будет эффект подтормаживания, а именно сначала выведет все потом скроет.
2. На форме много все различных поисков. И не удобно вклинивать туда данный фильтр.

Вот я изначально и задался мыслью. Если я изначально в запросе сделаю выборку по полю Скрытая = False.
А вот на форме смогу с помощью SQL (как нибудь))) строки где Скрытая = True выведу.
То что ребята предложили выше убрало ошибку, но фильтрации описанной выше не получилось.
0
7350 / 3759 / 844
Регистрация: 05.10.2016
Сообщений: 10,341
01.02.2020, 19:59 10
Цитата Сообщение от vb001 Посмотреть сообщение
1. Если много записей то будет эффект подтормаживания, а именно сначала выведет все потом скроет.
Это-же сколько миллионов записей то у вас?!
Вы думаете смена источника данных будет быстрее ? - сомневаюсь.

2. На форме много все различных поисков. И не удобно вклинивать туда данный фильтр.
Делайте сложный (совокупный) фильтр типа:
[Поле01] = Значение01 And [Поле02] = Значение02 And [Поле03] = Значение03 And [Поле04] = Значение04 ...
0
Модератор
Эксперт MS Access
9960 / 3985 / 642
Регистрация: 07.08.2010
Сообщений: 11,195
Записей в блоге: 3
01.02.2020, 21:27 11
Цитата Сообщение от vb001 Посмотреть сообщение
Скрин запроса
принято выкладывать текст запроса, а не скрин
а еще удобнее пример базы
1
12 / 9 / 3
Регистрация: 13.07.2018
Сообщений: 686
01.02.2020, 21:30  [ТС] 12
Уяснил
0
Эксперт MS Access
6596 / 4199 / 255
Регистрация: 12.08.2011
Сообщений: 12,097
02.02.2020, 03:33 13
Цитата Сообщение от vb001 Посмотреть сообщение
но фильтрации описанной выше не получилось.
А обращаться не к главной форме, а к подчинённой пробовали?
Но пример правильнее
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2020, 03:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Dorkbot B. Невозможно выполнить логи
Прошу помощи! Завелись червяки Dorkbot B, ужасно все тормозит, виснет, с десятого раза только смог...

Невозможно выполнить операцию перечисления
Всем доброго времени суток! Возникла проблема, ни как не могу понять ее природу. Коллекция была...

Ora 30036 Невозможно выполнить insert
Всем привет. Столкнулся на работе с такой проблемой: Мне требуется перенести данные из одной...

Невозможно выполнить ОБРЕЗАТЬ к данному объекту
НЕ получается обрезать части в массиве. В чем может быть проблема?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.