Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
el_virun
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 62
1

Выделение строк в listbox, выбор условия запроса по дате из формы

09.01.2018, 17:55. Просмотров 820. Ответов 2

И снова Здравствуйте Уважаемые!
Есть проблема нет понимания что я делаю не так хочу завязать результаты запросабвывод в листбокс и выделения строк с отрицательным значением но как всегда есть трабл:
--- для оформления выделения использую где-то подсмотренную шнягу переработанную под себя:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Dim RCS As DAO.Recordset
    Set RCS = CurrentDb.QueryDefs("evr_day_symm").OpenRecordset
    i = -1
    Do Until RCS.EOF
    i = i + 1
    dtT = RCS.Fields("SumOfTIME").Value
        If dtT < #8:00:00 AM# Then
        Me.List2.Selected(i) = True
        End If
    'MsgBox dtT 'âûâîäèò Г§Г*Г*Г·ГҐГ*ГЁГҐ Гў òåêòîâîì îêГ*ГҐ
    RCS.MoveNext
    Loop
    Set RCS = Nothing
    Me.List2.Requery

и самое интересное если при выполнении запроса условием ставлю сегодняшнее число "Data()"

SQL
1
2
3
4
SELECT SYMMARY.STAFF, CDate(SUM(SYMMARY.Time)) AS SumOfTIME, IIf(SumOfTIME>=8/24,"","-") & Format(SumOfTIME-8/24,"hh:nn:ss") AS OVER_DEBT
FROM SYMMARY
GROUP BY SYMMARY.STAFF, SYMMARY.DATA
HAVING (((SYMMARY.DATA)=DATE()));
все работает просто замечательно, а если пытаюсь перенести в условие значение даты с поля формы,

SQL
1
2
3
4
SELECT SYMMARY.STAFF, CDate(SUM(SYMMARY.Time)) AS SumOfTIME, IIf(SumOfTIME>=8/24,"","-") & Format(SumOfTIME-8/24,"hh:nn:ss") AS OVER_DEBT
FROM SYMMARY
GROUP BY SYMMARY.STAFF, SYMMARY.DATA
HAVING (((SYMMARY.DATA)=[Forms]![Form1]![Text0]));
то результатом являеться пустой запрос и ошибки

Если возможно просветите в чем заковыка, архив с тестовой базой прилагается

Спасибо за помощь и науку

З.Ы. так же если поскажите защиту от дурака в цикл выделения(т.е. ничего не трогать если на этот день нет записей) то буду благодарен еще больше
0
Вложения
Тип файла: zip Database161.zip (27.6 Кб, 2 просмотров)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2018, 17:55
Ответы с готовыми решениями:

Выделение записей (строк) в списке (Listbox) формы
Здравствуйте уважаемые!!! Есть БД, в которой последовательно, методом перехода от одной формы к...

Listbox выделение строк
Привет, например у меня в listbox1 первая строка с текстом&quot;часы&quot;, а в listbox2 текст &quot;часы&quot;...

Выделение четных строк в ListBox
Здравствуйте! Подскажите пожалуйста, как выделить несколько строк в listbox. По заданию нужно...

Выбор строк по максимальной дате
подскажите пожалуйста.. мне нужно выбирать из таблицы строки с максимальной датой, но выбирается...

Выделение строк в двух ListBox одним кликом
Здравствуйте. Подскажите пожалуйста как сделать так, у меня есть ListBox1 и ListBox2 В них...

2
mobile
Эксперт MS Access
23741 / 13295 / 2807
Регистрация: 28.04.2012
Сообщений: 14,557
09.01.2018, 18:49 2
Лучший ответ Сообщение было отмечено el_virun как решение

Решение

Перенес условие в запросе из HAVING во WHERE. Так правильнее. В Having пишем когда условие использует агрегатные функции. Заменил условие в запросе с прямой ссылки на форму на публичную функцию DateForm() в Module1. Запрос теперь такой
SQL
1
2
3
4
5
SELECT SYMMARY.STAFF, CDate(SUM(SYMMARY.Time)) AS SumOfTIME, 
   IIf(SumOfTIME>=8/24,"","-") & Format(SumOfTIME-8/24,"hh:nn:ss") AS OVER_DEBT
FROM SYMMARY
WHERE SYMMARY.DATA=DateForm()
GROUP BY SYMMARY.STAFF, SYMMARY.DATA
Функция DateForm()
Visual Basic
1
2
3
Public Function DateForm()
    DateForm = Forms![Form1]![Text0]
End Function
1
Вложения
Тип файла: rar Database161.rar (23.8 Кб, 2 просмотров)
el_virun
0 / 0 / 0
Регистрация: 29.11.2017
Сообщений: 62
09.01.2018, 19:02  [ТС] 3
Уважаемый mobile, Вы как всегда смогли помочьб спасибо большое за Ваш труд и время!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2018, 19:02

Выбор формы в зависимости от результата запроса
Здравствуйте!!! Нужна помощь, не могу сообразить как сделать чтоб при нажатии кнопки на &quot;Главной...

Выделение цветом строк Табчасти при открытии формы программно созданного документа
Добрый день! Помогите пожалуйста разобраться, программно создал документ, при открытии на табличной...

Выбранный элемент ListBox одной формы перенести в ListBox на другую форму
проблема такая: в программе(в форме Form1) должна по нажатию кнопки открываться 2-я форма, в...


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

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

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