powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос при первом запуске вовращает меньше записей
4 сообщений из 4, страница 1 из 1
Запрос при первом запуске вовращает меньше записей
    #32560393
vladK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К примеру:
Первый раз запускаю запрос, прокручиваю на последнюю запись - 550.
Второй - как сложится - иногда 551, иногда сразу 552
На третий - 552. И их там действительно столько. Но это не правило, на истинную цифру может выйти и только на четвертый раз...
DCount, который стоит на форме сразу показывает 552.
С Динамический/Статический поигрался, сортировку убрал - не помогает.

В запросе 6 таблиц, 2 подзапроса, 12 полей вывода, 3 условия, 2 из них по дате. Т.е. вроде и не особо навороченный. Да вот он соб-но:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT tblStudentClass.dtStartDate AS StartingDate, tblStudent.txtFullName AS Name, tblStudent.lngStudentNumber AS StudentNo,
tblClass.txtClassCode AS Class, tblLookupTimeSlot.txtTimeSlot AS [Time], tblStudentClass.intNumberOfWeeks AS NumberWeeks,
tblStudentClass.intWeeksHolidaysAllowed AS Holidays, tblStudent.txtPlacementTestScore AS TestScore, tblAgent.txtCompany AS Source,
Exists (Select anStudentClassID From tblStudentClass SC Where SC.lngStudent = tblStudent.anStudentID AND SC.lngClass= 40 ) AS Accnb,
Exists (Select anStudentClassID From tblStudentClass SC Where SC.lngStudent = tblStudent.anStudentID AND SC.lngClass= 129 ) AS Pickup,
tblStudentClass.dtEarliestEndDate AS FinishingDate
FROM (tblAgent INNER JOIN tblStudent ON tblAgent.anAgentID = tblStudent.lngAgent)
INNER JOIN (tblLookupTimeSlot INNER JOIN (tblCourse INNER JOIN (tblClass INNER JOIN tblStudentClass
ON tblClass.anClassID = tblStudentClass.lngClass) ON tblCourse.anCourseID = tblClass.lngCourse)
ON tblLookupTimeSlot.anTimeSlotID = tblClass.lngTimeSlot) ON tblStudent.anStudentID = tblStudentClass.lngStudent
WHERE (((tblStudentClass.dtStartDate) Between [Forms]![frmStatMain]![datFrom] And [Forms]![frmStatMain]![datTo])
AND ((tblStudentClass.dtEarliestEndDate)>[dtStartDate]) AND ((tblCourse.lngCourseType)= 1 ) AND ((tblClass.lngCourse) Not In ( 19 , 21 )));


Кто-нибудь сталкивался и как лечил?
...
Рейтинг: 0 / 0
Запрос при первом запуске вовращает меньше записей
    #32560489
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй изменить на
select all or select distinctrow

И еще, какой формат полей даты? Может быть там у тебя затесались минуты и секунды? И что в этом случае стоит на форме в полях
[Forms]![frmStatMain]![datFrom] And [Forms]![frmStatMain]![datTo]
То же самое по полю dtStartDate
...
Рейтинг: 0 / 0
Запрос при первом запуске вовращает меньше записей
    #32560535
vladK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это было из-за вложенных exists.
nz(Select First(... - не помогло та же ситуация.
Заменил на nz(DFirst(... и все записи выводит с первого раза. И даже визуально субъективно быстрее отрабатывает, несмотря на то что доменные функции считаются медленными
...
Рейтинг: 0 / 0
Запрос при первом запуске вовращает меньше записей
    #32560607
vam911
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разбей на несколько запросов - отметь, когда начинает глючить - так и найдешь ошибку (все займет 3-5 минут).
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запрос при первом запуске вовращает меньше записей
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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