powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / DLookup+IsNull - какая-то ерунда получается
15 сообщений из 15, страница 1 из 1
DLookup+IsNull - какая-то ерунда получается
    #32856956
Serinna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Источником данных подчиненной формы "subfrm" является запрос на основе таблицы "subtab", в которой три поля:
Поле1 - это индекс
Поле2 - связь с главной таблицей
Поле3 - собственно данные.

В подчиненной форме (ленточная) "subfrm" на событие "Текущая запись" прикручена следующая инструкция:

Код: plaintext
1.
2.
3.
4.
5.
6.
If Not IsNull (DLookup("Поле3", "subtab", "[Поле2] = Forms![Поле2]")) Then
Me.Letter1.Visible=True
Me.Letter2.Visible=False
Else
Me.Letter1.Visible=False
Me.Letter2.Visible=True
End if
То есть, если в подчиненной форме нет записей, выводится одна надпись, если записи есть, выводится другая надпись.
Вроде и ошибка не выдается, но при работе через главную форму Леттеры в subfrm делают что хотят.
Попробовал другое условие:
Код: plaintext
If Nz(DLookup("Поле3", "subtab", "[Поле2] = Forms![Поле2]"),  0 ) <>  0  Then
И еще кучу других условий на другие события. Но в результате - непредсказуемое поведение Леттеров.
Подскажите кого нужно победить и как.
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32856959
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Requery делать не пытался?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
If Not IsNull (DLookup("Поле3", "subtab", "[Поле2] = Forms![Поле2]")) Then
Me.Letter1.Visible=True
Me.Letter2.Visible=False
Requery
Else
Me.Letter1.Visible=False
Me.Letter2.Visible=True
Requery
End if
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32856965
Serinna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DafА Requery делать не пытался?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
If Not IsNull (DLookup("Поле3", "subtab", "[Поле2] = Forms![Поле2]")) Then
Me.Letter1.Visible=True
Me.Letter2.Visible=False
Requery
Else
Me.Letter1.Visible=False
Me.Letter2.Visible=True
Requery
End if

Уже попытался.
Результат прежний
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32856973
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если ввести переменную и ей присваивать значения Dlookup. А уж потом переменную проверять на isnull?
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32856976
Serinna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DafА если ввести переменную и ей присваивать значения Dlookup. А уж потом переменную проверять на isnull?
Забыл сказать, что пробовал и через переменную.
Видимо эти Dlookup'ы издеваются!
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32856977
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему на событии текущей записи?
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32856978
Serinna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DafА почему на событии текущей записи?
Извиняюсь спросить - А на какое событие?
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32856979
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор...на событие "Текущая запись" прикручена следующая инструкция:
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32856982
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смущает "[Поле2] = Forms![Поле2]"
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32856986
Serinna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexey Shсмущает "[Поле2] = Forms![Поле2]"
В принципе и без этого - результат не ожидаемый :(
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32856989
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выложи сюда свою форму, если возможно. Посмотрим ...
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32857001
Serinna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DafВыложи сюда свою форму, если возможно. Посмотрим ...
Собственно вот...
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32857019
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Current на пустую выборку данных не вызывается. Поэтому у вас срабатывает всегда первая ветка кода в подчиненной форме.

Я бы сделал такое поле в главной форме и сделал в ней проверку DCount по подчиненной таблице = 0.

Не включать PK в подчиненную форму не рекомендуется.
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32857035
Фотография Daf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот посмотри. Вроде работает ...
...
Рейтинг: 0 / 0
DLookup+IsNull - какая-то ерунда получается
    #32857211
Serinna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DafВот посмотри. Вроде работает ...
Спасибо. Действительно, работает.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / DLookup+IsNull - какая-то ерунда получается
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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