powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Кое-что о запросах и основанных на них формах. Критические ситуации
20 сообщений из 20, страница 1 из 1
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39632944
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кое-что о запросах и основанных на них формах. Критические ситуации.

Есть у меня форма с подформой. Подформа основана на запросе. На мой взгляд не слишком сложном (но это моё мнение). Понадобилось мне добавить в подформу одно новое поле из новой таблицы. И вместо заполненной подформы получил пустое место. Вот так.

-------------------------------------------------------------
А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса?
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39632947
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перешел в режим конструктора и попробовал заново открыть форму в режиме формы. Раньше она запускалась у меня при старте задачи из autoexec.
Получил Вот такое сообщение.
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39632948
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не прикрепил.
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39632956
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот исходный запрос, на котором была основана подформа
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39632960
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вот это, доработанный.
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39632969
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Долго разбирался, в чем дело. Пробовал действовать последовательно.
Добавляю таблицу - всё работает.
Добавляю поле для вывода из таблицы. Перестаёт работать.

Сжатие и очистка от "мусора" не помогли.

Потом объединил связанные запрос и таблицу в один новый запрос и подставил его вместо задействованных запроса и таблицы. Вот так.
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39632974
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получается, что в некоторых случаях. запросы слишком тяжелы для форм. И их надо упростить, объединив несколько таблиц/запросов в один запрос, и уже его подставлять в итоговый.

Просто вот такое замечание, полученное опытным путём. Может кто-то уже с чем-то похожим сталкивался?
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39632978
ROI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JossПолучается, что в некоторых случаях. запросы слишком тяжелы для форм. И их надо упростить, объединив несколько таблиц/запросов в один запрос, и уже его подставлять в итоговый.

Просто вот такое замечание, полученное опытным путём. Может кто-то уже с чем-то похожим сталкивался?
Я тоже к этому пришел в свое время и так же опытным путем.
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633186
MrShin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JossМожет кто-то уже с чем-то похожим сталкивался?
Частенько сталкиваюсь с таким. Текст запроса почему-то просто режется в случайном месте. Поэтому использую только простые запросы, либо сохраненные запросы любой сложности
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633192
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss, а sql текст запроса какой? думается мне что акс при обработке добавления таблицы в конструкторе, тип связи поставил Right join.
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633257
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MrShinЧастенько сталкиваюсь с таким. Текст запроса почему-то просто режется в случайном месте. Поэтому использую только простые запросы, либо сохраненные запросы любой сложности Использовал как раз сохранённый запрос.
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633270
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исходный текст
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT Тб321КлПериод.pYear, Тб321КлПериод.IdCodPeriod, Тб301РеЗастр.КодОКПО, Тб301РеЗастр.НаимОКПО, 
Тб301РеЗастр.НомЗапТб301, IIf(Len(Тб301РеЗастр!Улица)>3,", " & Тб301РеЗастр!Улица,"") AS Улица_, 
IIf(Len(Nz(Тб301РеЗастр!ДомКвартира,""))>0,", " & Тб301РеЗастр!ДомКвартира,"") AS Дом_, 
Тб301РеЗастр!НасПункт & [Улица_] & IIf(Len(Nz(Тб301РеЗастр!ДомКвартира,""))>0,
", " & Тб301РеЗастр!ДомКвартира,"") AS Address_, Тб301РеЗастр.КодСубъект, Тб304РеСубъект.НаимСубъект, 
Тб301РеЗастр.СумКоличОНС AS ОНС, Тб301РеЗастр.СумКоличСОНС AS СОНС, Тб301РеЗастр.КодПериод, 
IIf(Len(Nz([email],""))=0,"","@") AS Lemail, Тб319УНП.OKULP, Left([Тб301РеЗастр].[КодОКПО],8) AS ОКПО8, 
Тб301РеЗастр.КодОКОГУ, qry_OKOGU.OKOGU0, qry_OKOGU.НаимОКОГУ AS NameOKOGU, Тб324ОКОГУ.НаимОКОГУ
FROM ((((((Тб301РеЗастр LEFT JOIN Тб321КлПериод ON Тб301РеЗастр.КодПериод = Тб321КлПериод.КодПериод) 
INNER JOIN Тб304РеСубъект ON (Тб301РеЗастр.КодПериод = Тб304РеСубъект.[Код период]) AND (Тб301РеЗастр.КодСубъект = Тб304РеСубъект.КодСубъект)) 
LEFT JOIN tblAdressE ON Тб301РеЗастр.КодОКПО = tblAdressE.КодОКПО) 
LEFT JOIN Тб319УНП ON Тб301РеЗастр.КодОКПО = Тб319УНП.OKPO) 
LEFT JOIN qry_OKOGU ON (Тб301РеЗастр.КодПериод = qry_OKOGU.КодПериод) AND (Тб301РеЗастр.КодОКОГУ = qry_OKOGU.КодОКОГУ)) 
LEFT JOIN Тб324ОКОГУ ON (qry_OKOGU.КодПериод = Тб324ОКОГУ.КодПериод) AND (qry_OKOGU.OKOGU0 = Тб324ОКОГУ.КодОКОГУ))
WHERE (((Тб301РеЗастр.КодПериод)=currentperiod()))
WITH OWNERACCESS OPTION;

Модернизированный текст
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT Тб321КлПериод.pYear, Тб321КлПериод.IdCodPeriod, Тб301РеЗастр.КодОКПО, Тб301РеЗастр.НаимОКПО, 
Тб301РеЗастр.НомЗапТб301, IIf(Len(Тб301РеЗастр!Улица)>3,", " & Тб301РеЗастр!Улица,"") AS Улица_, 
IIf(Len(Nz(Тб301РеЗастр!ДомКвартира,""))>0,", " & Тб301РеЗастр!ДомКвартира,"") AS Дом_, 
Тб301РеЗастр!НасПункт & [Улица_] & IIf(Len(Nz(Тб301РеЗастр!ДомКвартира,""))>0,", " & Тб301РеЗастр!ДомКвартира,"") AS Address_, 
Тб301РеЗастр.КодСубъект, Тб304РеСубъект.НаимСубъект, Тб301РеЗастр.СумКоличОНС AS ОНС, 
Тб301РеЗастр.СумКоличСОНС AS СОНС, Тб301РеЗастр.КодПериод, IIf(Len(Nz([email],""))=0,"","@") AS Lemail, Тб319УНП.OKULP, 
Left([Тб301РеЗастр].[КодОКПО],8) AS ОКПО8, Тб301РеЗастр.КодОКОГУ, qry_OKOGUm.OKOGU0, 
qry_OKOGUm.НаимОКОГУ AS NameOKOGU, qry_OKOGUm.НаимОКОГУм AS НаимОКОГУ, tblEBase.КодОператора
FROM (((((Тб301РеЗастр LEFT JOIN Тб321КлПериод ON Тб301РеЗастр.КодПериод = Тб321КлПериод.КодПериод) 
INNER JOIN Тб304РеСубъект ON (Тб301РеЗастр.КодПериод = Тб304РеСубъект.[Код период]) AND (Тб301РеЗастр.КодСубъект = Тб304РеСубъект.КодСубъект)) 
LEFT JOIN tblAdressE ON Тб301РеЗастр.КодОКПО = tblAdressE.КодОКПО) 
LEFT JOIN Тб319УНП ON Тб301РеЗастр.КодОКПО = Тб319УНП.OKPO) 
LEFT JOIN tblEBase ON Тб301РеЗастр.КодОКПО = tblEBase.КодОКПО) 
LEFT JOIN qry_OKOGUm ON (Тб301РеЗастр.КодОКОГУ = qry_OKOGUm.КодОКОГУ) AND (Тб301РеЗастр.КодПериод = qry_OKOGUm.КодПериод)
WHERE (((Тб301РеЗастр.КодПериод)=currentperiod()))
WITH OWNERACCESS OPTION;

Вряд ли здесь можно что-нибудь нарыть.
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633334
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
особенно учитывая что текст проблемного запроса не приведен :)
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633413
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Joss,

и видимо применена пользовательская функция
Код: sql
1.
WHERE (((Тб301РеЗастр.КодПериод)=currentperiod()))
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633421
Фотография __Michelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleckoособенно учитывая что текст проблемного запроса не приведен :)Почему?
Приведен.
Называется "модифицированный".
В нем новая таблица фигурирует - tblEBase. Из нее выбирается КодОператора.

Joss ,

А если при открытии формы задать
Код: vbnet
1.
Me.Recordsource = "<текст запроса>"

?
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633438
alecko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle, во втором запросе не должно быть запроса "qry_OKOGUm"- он создан позже, потому второй запрос - окончательный (проблем уже нет), и должна быть таблица "tblEBase "- в первом запросе её нет, т.е. он - начальный (проблем ещё не было)
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633515
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если после события, описанного в первом посте (пустая подчинённая форма), перейти в режим конструктора, а потом попробовать обратно открыть форму, то Access может выдать следующее сообщение (смотри рисунок). Именно после него я и решил объединить отдельные таблицы в один запрос.
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633522
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
__Michelle Joss ,

А если при открытии формы задать
Код: vbnet
1.
Me.Recordsource = "<текст запроса>"

? И получим вот такое сообщение
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633526
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКА, функция простенькая
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Public Function CurrentPeriod() As Integer
  If Nz(intPeriod, 0) = 0 Then
    CurrentPeriod = DMax("&#202;&#238;&#228;&#207;&#229;&#240;&#232;&#238;&#228;", "&#210;&#225;321&#202;&#235;&#207;&#229;&#240;&#232;&#238;&#228;", "Actuale<>0")
  Else
    CurrentPeriod = intPeriod
  End If
End Function
...
Рейтинг: 0 / 0
Кое-что о запросах и основанных на них формах. Критические ситуации
    #39633530
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот опять русские буквы выдаются кодами
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
Public Function CurrentPeriod() As Integer
  If Nz(intPeriod, 0) = 0 Then
    FilialPeriod = DMax("КодПериод", "Тб321КлПериод", "Actuale<>0")
  Else
    CurrentPeriod = intPeriod
  End If
End Function

Для нормального копирования надо ставить в Access и в браузере русский язык.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Кое-что о запросах и основанных на них формах. Критические ситуации
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]