powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
19 сообщений из 19, страница 1 из 1
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40128805
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

В запросе есть [поле 1] с формулой, где используется другое [поле 2] с Dlookup (берущее значение из другой, не связанной табл.), выяснилось, что значение не "считывается". При открытии запроса, значение [поля 2] показывает верно, а в формуле оно не учитывается. Формула использует условие IIF... т.е. если [Поле 2] имеет определенное значение, то... и т.д. Подскажите, пж, как лучше сделать?
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40128825
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga,
Чтоб что-то сказать надо,как минимум, видеть текст запроса
может Dlookup надо применить как условие в IIf, а не в отдельном поле
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40128833
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga
Здравствуйте!

В запросе есть [поле 1] с формулой, где используется другое [поле 2] с Dlookup (берущее значение из другой, не связанной табл.), выяснилось, что значение не "считывается". При открытии запроса, значение [поля 2] показывает верно, а в формуле оно не учитывается. Формула использует условие IIF... т.е. если [Поле 2] имеет определенное значение, то... и т.д. Подскажите, пж, как лучше сделать?

Смотрим в книгу - видим фигу.

Access выполняет запросы асинхронно.
Пора уже забыть DlookUp и разучить православные запросы чистого SQL.
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40128835
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще aleks222 абсолютно прав-использование вложенной функции есть потери в быстродействии и задачу надо решать(как правило это всегда возможно) "православными" средствами чистого SQL
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129191
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за советы!
Извиняюсь, что не сразу, болел пару дней )

Запрос простой, состоит из одной таблицы - табель. В нем несколько выражений с подсчетом отработ. часов, больничн и отпускных ). Для учета данных в начислении з/п, подтягиваю величину (кол-во рабочих часов в данном месяце) из другой, несвязанной таблицы (баланс раб. времени) через DLookUp...

А фрагментом "православного" ) запроса на SQL, "вытягивающим" значение из несвязанной таблицы не поделитесь?
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129193
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga
Спасибо за советы!
Извиняюсь, что не сразу, болел пару дней )

Запрос простой, состоит из одной таблицы - табель. В нем несколько выражений с подсчетом отработ. часов, больничн и отпускных ). Для учета данных в начислении з/п, подтягиваю величину (кол-во рабочих часов в данном месяце) из другой, несвязанной таблицы (баланс раб. времени) через DLookUp...

А фрагментом "православного" ) запроса на SQL, "вытягивающим" значение из несвязанной таблицы не поделитесь?


Хрустальный шар чаво-то потрескался - таблицы плохо видно.
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129197
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторХрустальный шар чаво-то потрескался - таблицы плохо видно !

Наглядно "косяк" видно, когда ставим галочки (учитываем или не учитываем в выплате этого мес. переработку. Остаток переработки переходит на след. мес.). Там видно, что формулы "не видят" поля с DlookUp в запросе.
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129199
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga
авторХрустальный шар чаво-то потрескался - таблицы плохо видно
!

Наглядно "косяк" видно, когда ставим галочки (учитываем или не учитываем в выплате этого мес. переработку. Остаток переработки переходит на след. мес.). Там видно, что формулы "не видят" поля с DlookUp в запросе.

Мне что-то не хочется ставить себе winrar ради твоей проблемы.
Или zip, или жди других спасителей.
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129217
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

😳

PS а rar то лучше запаковал )
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129220
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
SELECT Val(Nz([d1]))+Val(Nz([d2]))+Val(Nz([d3]))+Val(Nz([d4]))+Val(Nz([d5]))+Val(Nz([d6]))+Val(Nz([d7]))+Val(Nz([d8]))+Val(Nz([d9]))+Val(Nz([d10]))+Val(Nz([d11]))+Val(Nz([d12]))+Val(Nz([d13]))+Val(Nz([d14]))+Val(Nz([d15]))+Val(Nz([d16]))+Val(Nz([d17]))+Val(Nz([d18]))+Val(Nz([d19]))+Val(Nz([d20]))+Val(Nz([d21]))+Val(Nz([d22]))+Val(Nz([d23]))+Val(Nz([d24]))+Val(Nz([d25]))+Val(Nz([d26]))+Val(Nz([d27]))+Val(Nz([d28]))+Val(Nz([d29]))+Val(Nz([d30]))+Val(Nz([d31]))+Nz([addhour]) AS vs, IIf([d1]="Б",1,0)+IIf([d2]="Б",1,0)+IIf([d3]="Б",1,0)+IIf([d4]="Б",1,0)+IIf([d5]="Б",1,0)+IIf([d6]="Б",1,0)+IIf([d7]="Б",1,0)+IIf([d8]="Б",1,0)+IIf([d9]="Б",1,0)+IIf([d10]="Б",1,0)+IIf([d11]="Б",1,0)+IIf([d12]="Б",1,0)+IIf([d13]="Б",1,0)+IIf([d14]="Б",1,0)+IIf([d15]="Б",1,0)+IIf([d16]="Б",1,0)+IIf([d17]="Б",1,0)+IIf([d18]="Б",1,0)+IIf([d19]="Б",1,0)+IIf([d20]="Б",1,0)+IIf([d21]="Б",1,0)+IIf([d22]="Б",1,0)+IIf([d23]="Б",1,0)+IIf([d24]="Б",1,0)+IIf([d25]="Б",1,0)+IIf([d26]="Б",1,0)+IIf([d27]="Б",1,0)+IIf([d28]="Б",1,0)+IIf([d29]="Б",1,0)+IIf([d30]="Б",1,0)+IIf([d31]="Б",1,0) AS sd, IIf([d1]="v",1,0)+IIf([d2]="v",1,0)+IIf([d3]="v",1,0)+IIf([d4]="v",1,0)+IIf([d5]="v",1,0)+IIf([d6]="v",1,0)+IIf([d7]="v",1,0)+IIf([d8]="v",1,0)+IIf([d9]="v",1,0)+IIf([d10]="v",1,0)+IIf([d11]="v",1,0)+IIf([d12]="v",1,0)+IIf([d13]="v",1,0)+IIf([d14]="v",1,0)+IIf([d15]="v",1,0)+IIf([d16]="v",1,0)+IIf([d17]="v",1,0)+IIf([d18]="v",1,0)+IIf([d19]="v",1,0)+IIf([d20]="v",1,0)+IIf([d21]="v",1,0)+IIf([d22]="v",1,0)+IIf([d23]="v",1,0)+IIf([d24]="v",1,0)+IIf([d25]="v",1,0)+IIf([d26]="v",1,0)+IIf([d27]="v",1,0)+IIf([d28]="v",1,0)+IIf([d29]="v",1,0)+IIf([d30]="v",1,0)+IIf([d31]="v",1,0) AS v, IIf([vs]=0,0,IIf([vs]<[tmHour],0,IIf([otchk]=False,0,[vs]-[tmHour]))) AS ot, IIf([vs]<[tmHour],[vs],IIf([otchk]=True,[vs],[tmHour])) AS tab, DSum('Nz([ot])-Nz([addhour])','[qryTab]','[staff_id]=' & Nz([staff_id],0) & ' And ([nYear]*100+ [nMonth])<' & ([nYear]*100+[nMonth])) AS ost, DLookUp("mHour","tblCalendar","cMonth=" & [nMonth] & " And  [cYear]=" & [nYear]) AS tmHour, tblTab.*
FROM tblTab;



Этот? Или какой другой запрос?
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129224
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222,

в запросе поле ot, там формула ссылается на поле tmhour, которое дилукапится из несвязанной таблицы, в ot оно игнорируется..
так вот вместо дилукап как лучше подставить значение в формулу?
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129239
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расскажите,поподробней,какую задачу Вы решаете(Учитывать\не учитывать переработку,переносить\не переносить её).
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129244
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga
в запросе поле ot, там формула ссылается на поле tmhour, которое дилукапится из несвязанной таблицы, в ot оно игнорируется..


ну, если это единственная беда в твоем королевстве, то в ot вместо tmhour вставь содержимое самого tmhour и будет тебе счастье...
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129293
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga
aleks222,

в запросе поле ot, там формула ссылается на поле tmhour, которое дилукапится из несвязанной таблицы, в ot оно игнорируется..
так вот вместо дилукап как лучше подставить значение в формулу?


Как-то так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
SELECT Val(Nz([d1]))+Val(Nz([d2]))+Val(Nz([d3]))+Val(Nz([d4]))+Val(Nz([d5]))+Val(Nz([d6]))+Val(Nz([d7]))+Val(Nz([d8]))+Val(Nz([d9]))+Val(Nz([d10]))+Val(Nz([d11]))+Val(Nz([d12]))+Val(Nz([d13]))+Val(Nz([d14]))+Val(Nz([d15]))+Val(Nz([d16]))+Val(Nz([d17]))+Val(Nz([d18]))+Val(Nz([d19]))+Val(Nz([d20]))+Val(Nz([d21]))+Val(Nz([d22]))+Val(Nz([d23]))+Val(Nz([d24]))+Val(Nz([d25]))+Val(Nz([d26]))+Val(Nz([d27]))+Val(Nz([d28]))+Val(Nz([d29]))+Val(Nz([d30]))+Val(Nz([d31]))+Nz([addhour]) AS vs
, IIf([d1]="Б",1,0)+IIf([d2]="Б",1,0)+IIf([d3]="Б",1,0)+IIf([d4]="Б",1,0)+IIf([d5]="Б",1,0)+IIf([d6]="Б",1,0)+IIf([d7]="Б",1,0)+IIf([d8]="Б",1,0)+IIf([d9]="Б",1,0)+IIf([d10]="Б",1,0)+IIf([d11]="Б",1,0)+IIf([d12]="Б",1,0)+IIf([d13]="Б",1,0)+IIf([d14]="Б",1,0)+IIf([d15]="Б",1,0)+IIf([d16]="Б",1,0)+IIf([d17]="Б",1,0)+IIf([d18]="Б",1,0)+IIf([d19]="Б",1,0)+IIf([d20]="Б",1,0)+IIf([d21]="Б",1,0)+IIf([d22]="Б",1,0)+IIf([d23]="Б",1,0)+IIf([d24]="Б",1,0)+IIf([d25]="Б",1,0)+IIf([d26]="Б",1,0)+IIf([d27]="Б",1,0)+IIf([d28]="Б",1,0)+IIf([d29]="Б",1,0)+IIf([d30]="Б",1,0)+IIf([d31]="Б",1,0) AS sd, IIf([d1]="v",1,0)+IIf([d2]="v",1,0)+IIf([d3]="v",1,0)+IIf([d4]="v",1,0)+IIf([d5]="v",1,0)+IIf([d6]="v",1,0)+IIf([d7]="v",1,0)+IIf([d8]="v",1,0)+IIf([d9]="v",1,0)+IIf([d10]="v",1,0)+IIf([d11]="v",1,0)+IIf([d12]="v",1,0)+IIf([d13]="v",1,0)+IIf([d14]="v",1,0)+IIf([d15]="v",1,0)+IIf([d16]="v",1,0)+IIf([d17]="v",1,0)+IIf([d18]="v",1,0)+IIf([d19]="v",1,0)+IIf([d20]="v",1,0)+IIf([d21]="v",1,0)+IIf([d22]="v",1,0)+IIf([d23]="v",1,0)+IIf([d24]="v",1,0)+IIf([d25]="v",1,0)+IIf([d26]="v",1,0)+IIf([d27]="v",1,0)+IIf([d28]="v",1,0)+IIf([d29]="v",1,0)+IIf([d30]="v",1,0)+IIf([d31]="v",1,0) AS v

--, IIf([vs]=0,0,IIf([vs]<[tmHour],0,IIf([otchk]=False,0,[vs]-[tmHour]))) AS ot
, IIf([vs]=0,0,IIf([vs]<с.mHour,0,IIf([otchk]=False,0,[vs]-с.mHour))) AS ot

--, IIf([vs]<[tmHour],[vs],IIf([otchk]=True,[vs],[tmHour])) AS tab
, IIf([vs]<с.mHour,[vs],IIf([otchk]=True,[vs],с.mHour)) AS tab

, DSum('Nz([ot])-Nz([addhour])','[qryTab]','[staff_id]=' & Nz([staff_id],0) & ' And ([nYear]*100+ [nMonth])<' & ([nYear]*100+[nMonth])) AS ost

--, DLookUp("mHour","tblCalendar","cMonth=" & [nMonth] & " And  [cYear]=" & [nYear]) AS tmHour
, с.mHour AS tmHour

, tblTab.*
FROM tblTab
     cross join ( select top 1 mHour from tblCalendar where cMonth  = [nMonth] And [cYear] = [nYear] ) as c
;
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129553
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за помощь!

sdku, авторкакую задачу Вы решаете(Учитывать\не учитывать переработку,переносить\не переносить её)

собственно всё это и в задаче. Есть сотрудники у кого учитываются переработки, а есть у кого не учитываются. У кого учитываются, то данные уйдут в табл по з/п, а у кого не учитываются, то переходят на след мес и в последующем вносятся вместо отгулов.

vmag, авторвставь содержимое самого tmhour

а я так делал, но почему то у меня что-то шло не так.. а сейчас вижу, что все идет так как надо )) Посмотрим, как будет с бОльшим объемом данных, будут тормоза или нет. Спасибо!

aleks222, спасибо за код, который снимет ограничитель скорости! Тоже буду пробовать прикручивать к своей БД ) 👍🏽
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129619
Код: sql
1.
2.
SELECT... IIf([vs]=0,0,IIf([vs]<[tmHour],0,IIf([otchk]=False,0,[vs]-[tmHour]))) AS ot, IIf([vs]<[tmHour],[vs],IIf([otchk]=True,[vs],[tmHour])) AS tab,... DLookUp("mHour","tblCalendar","cMonth=" & [nMonth] & " And  [cYear]=" & [nYear]) AS tmHour, tblTab.*
FROM tblTab;


В запросе поля вычисляют я с лева на право. Переставьте Поле2 левее Поле1 и взлетит без повторения DLookup.
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129621
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий
Код: sql
1.
2.
SELECT... IIf([vs]=0,0,IIf([vs]<[tmHour],0,IIf([otchk]=False,0,[vs]-[tmHour]))) AS ot, IIf([vs]<[tmHour],[vs],IIf([otchk]=True,[vs],[tmHour])) AS tab,... DLookUp("mHour","tblCalendar","cMonth=" & [nMonth] & " And  [cYear]=" & [nYear]) AS tmHour, tblTab.*
FROM tblTab;


В запросе поля вычисляют я с лева на право. Переставьте Поле2 левее Поле1 и взлетит без повторения DLookup.
Полезнее разучить написание запросов sql.
И бубен можно выкинуть...
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129655
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий
В запросе поля вычисляют я с лева на право. Переставьте Поле2 левее Поле1 и взлетит без повторения DLookup.


я с этого начал, - не взлетело... только повтор содержимого отработал
...
Рейтинг: 0 / 0
поле с выражением DlookUp в запросе "не успевает" вставиться в формулу другого поля
    #40129734
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ запросе поля вычисляются слева на право.

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


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