Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 DLookup и 2-а критерия. Возможно?  [new]
trexmernii
Member

Откуда:
Сообщений: 236
Ну собственно вопрос в теме! Я так понимаю что не получится, только через
Select ... Where...
Ну может энтузиасты подскажут?
3 окт 10, 13:42    [9543989]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40411
Что Вы называете двумя критериями? Что-то типа a=b and c=d? Если да, то это один критерий.
3 окт 10, 13:47    [9544010]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
trexmernii
Member

Откуда:
Сообщений: 236
Владимир Саныч,

DLookup("[Наименование]", "Входящие", "[Cчет] = '" & rst!Счет & "'" and "[Дата открытия] = #" & rst!ДатОткр & "#")
Вот так вот реально работать будет? Щас пойду пробовать!
3 окт 10, 13:51    [9544024]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40411
trexmernii
Вот так вот реально работать будет?

Думаю, что нет. Надо дату правильно отформатировать.
3 окт 10, 14:04    [9544073]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40411
И кавычки вокруг and лишние.
3 окт 10, 14:05    [9544077]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27502
Если в процедуре, то можно несколько иначе (для тех кто на дух не переносит длукапы)
Dim n, s
s="Select Наименование From Входящие Where [Cчет] = '" & rst!Счет & "' And " _
    & " [Дата открытия]=" & Format(rst!ДатОткр, "\#mm\/dd\/yyyy\#")
n=CurrentProject.Connection.Execute(s)
3 окт 10, 14:20    [9544110]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27502
В последней строчке забыл филд
n=CurrentProject.Connection.Execute(s).Fields(0)
3 окт 10, 14:22    [9544112]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
trexmernii
Member

Откуда:
Сообщений: 236
Спасибо всем за помощь, в итоге получилось следующие:
DLookup("[Наименование]", "Входящие", "[Счет] = '" & rst!Счет & "' And [Дата открытия]<=" & Format$(rst!Дата, "\#mm\/dd\/yyyy\#") _
& " And ([Дата закрытия]>=" & Format$(rst!Дата, "\#mm\/dd\/yyyy\#") & " Or nz([Дата закрытия],0) = 0)")
3 окт 10, 15:47    [9544359]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
ё
Guest
trexmernii
Спасибо всем за помощь, в итоге получилось следующие:
DLookup ... " Or nz([Дата закрытия],0) = 0)")

...ну, а эта глупость зачем ? чтоб Акцесс погрелся ?
Or [Дата закрытия] is null
3 окт 10, 15:51    [9544367]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40411
ё
...ну, а эта глупость зачем ? чтоб Акцесс погрелся ?
Or [Дата закрытия] is null

Полагаю, чтобы включить в выборку эти записи тоже.
3 окт 10, 16:01    [9544392]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
ё
Guest
Владимир Саныч
ё
...ну, а эта глупость зачем ? чтоб Акцесс погрелся ?
Or [Дата закрытия] is null

Полагаю, чтобы включить в выборку эти записи тоже.

Саныч,

...в чём-чём, а в логике тебе не откажеш
nz - для этого - задлянафига ??
3 окт 10, 16:18    [9544438]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40411
ё
nz - для этого - задлянафига ??

Чтобы включить и те, где null, и те, где 0.
Ну неужели непонятно?
3 окт 10, 16:21    [9544449]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
ё
Guest
Владимир Саныч
ё
nz - для этого - задлянафига ??

Чтобы включить и те, где null, и те, где 0.
Ну неужели непонятно?



>> и те, где 0
в поле с типом дата/время ??

Саныч,
ты серьёзно думаеш, что ТС, у себя в программе оперирует датой 30.12.1899 ?
?CDate(1)
31.12.1899 

зы
...неее, я конечно понимаю что для этого поля можно установить значение по-умолчанию 0
но я плохо представляю, что нужно курить, что бы так сделать ?
3 окт 10, 16:35    [9544481]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40411
ё
ты серьёзно думаеш, что ТС, у себя в программе оперирует датой 30.12.1899 ?

Вполне могу представить себе ситуацию, что программа заносит 0 (ноль, он же нуль) в поле типа дата.
3 окт 10, 16:41    [9544501]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
ё
Guest
Владимир Саныч
ё
ты серьёзно думаеш, что ТС, у себя в программе оперирует датой 30.12.1899 ?

Вполне могу представить себе ситуацию, что программа заносит 0 (ноль, он же нуль) в поле типа дата.


>> могу представить себе ситуацию
поделись,
я себе, такую ситуацию, представить - не могу
3 окт 10, 17:07    [9544562]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40411
А в чем проблема? Была программа, которая заносила 0 во все поля. Потом исправили для текстовых. А для дат не исправили.
3 окт 10, 17:47    [9544632]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
ё
Guest
ё

>> могу представить себе ситуацию
поделись,
я себе, такую ситуацию, представить - не могу

Владимир Саныч
А в чем проблема? Была программа, которая заносила 0 во все поля. Потом исправили для текстовых. А для дат не исправили.


Саныч,

извини,
просто навеяло

Товарищ прапорщик, а сможете провести урок астрономии в школе юных астронавтов?
- Смогу.
- И вопросов учеников не боитесь? Они ребята умные и въедливые.
- Нет.
После урока.
- Ну что, вопросы были?
- Только один. Какой-то умник спросил: "С каких это пор Солнце вокруг Земли ходит?"
- И что вы ответили?
- Я ответил уклончиво: "Да пошел ты на х#й!"

3 окт 10, 19:56    [9544943]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40411
Не знаю, мне такое развитие событий (с занесением нуля) кажется вполне естественным. Причем настолько, что я даже не хочу называть его багом.
3 окт 10, 20:18    [9545031]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
ё
Guest
Владимир Саныч
Не знаю, мне такое развитие событий (с занесением нуля) кажется вполне естественным. Причем настолько, что я даже не хочу называть его багом.

с числовым полем - ДА
с полем дата/время - НЕТ

зы
спецом пересмотрел рабочую БД в плане датных полей
если нот нулл - то стоит значение по умолчанию Дате()
если НЕ нот нулл - то вообще непонимаю про какой 0 речь - что это ???

...а если завтра микрософт "расширит границы времени" в Аксе, как это уже случилось в МС СКЛ Сервер - что этот 0 будет обозначать ??
ну там они для этого ввели доп.типы данных...
...а вдруг на Акс - их не хватит... ?

(утрирую, конечно, но всё же...)
3 окт 10, 20:36    [9545088]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
trexmernii
Member

Откуда:
Сообщений: 236
Спасибо всем за дельное замечание - поменял
Or [Дата закрытия] is null
3 окт 10, 20:58    [9545162]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40411
ё
с числовым полем - ДА
с полем дата/время - НЕТ

Ишо раз (и последний). Я не говорю, что так надо писать программы или что я сам так написал бы. Но я верю, что кто-то так может. А может и сам могу, если не сосредоточусь.
3 окт 10, 23:17    [9545624]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
ё
Guest
Владимир Саныч
ё
с числовым полем - ДА
с полем дата/время - НЕТ

Ишо раз (и последний). Я не говорю, что так надо писать программы или что я сам так написал бы. Но я верю, что кто-то так может. А может и сам могу, если не сосредоточусь.

тьху, плин!

а я говорю (тоже в последний)
что "писателю" который ставит значение по-умолчанию (или откуда там этот 0 появляется, - неважно ),
нужно "поставить на вид", возможно "с занесением",
что он делает х-ню!
и предупредить - что он сам себе роет...
3 окт 10, 23:28    [9545655]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
alvk
Member [заблокирован]

Откуда: Находка
Сообщений: 10974
ё,

у меня в поле с датой именно такая дата и стоит в записях до 01.09.2010 (примерно данные на период около месяца). Сам лично ставил, между прочим. А причина очень даже банальная, сливал часть данных из старой программы в новую, в старой такого поля не было (там было три даты, а сейчас четыре), поле в новой обязательно к заполнению (заполняется автоматом, ручного доступа нет). Поэтому пустое поле с датой меня как-то не прельстило (впрочем, как и большинство
пустых полей), да и не вышло бы оно у меня, а так очень даже ничего, всегда можно
фильтрануть. Ну как?
4 окт 10, 08:58    [9546137]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16825
"Поле с пустой датой не прельстило" - пустой значение NULL как раз и говорит о том что значенния нет. Никакого. Ни нулевого, ни по умолчанию. Этим можно и нужно пользоваться.
"А так всегда можно фильтрануть" - фильтровать по условию, что поле пусто, ничуть не сложнее, условие становится более наглядным. Лишние навороты с Nz при этом только "загрязняют" картинку.
4 окт 10, 09:09    [9546180]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
alvk
Member [заблокирован]

Откуда: Находка
Сообщений: 10974
Программист-Любитель,

Обязательное поле - я же написал, какие Null? Сделать не обязательным? Не вариант, они тогда смогут в другой БД дату договора не проставлять, те двести записей с 1899 годом нормально лежат, со временем там будут реальные даты стоять.
4 окт 10, 09:23    [9546239]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
qwrqwr_
Guest
Владимир Саныч
ё
ты серьёзно думаеш, что ТС, у себя в программе оперирует датой 30.12.1899 ?

Вполне могу представить себе ситуацию, что программа заносит 0 (ноль, он же нуль) в поле типа дата.
ВС +1
Например, если в поле datetime надо хранить только время. И это время может быть 00:00.
4 окт 10, 09:39    [9546318]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
ё
Guest
alvk
Обязательное поле - я же написал, какие Null?
...

...это - красссиво ! )))
поле - обязательное для заполнения, но заполнять можно всякой хнёй типа неимеющей никакого смысла датой 30.12.1899
4 окт 10, 11:23    [9547049]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
alvk
Member [заблокирован]

Откуда: Находка
Сообщений: 10974
ё,

Вообще-то я уже всё рассказал, что не понятно? Был перенос данных из одной базы в другую, в новой существует дополнительное поле с датой, пустым оставить его нельзя, это всё-равно временно, количество строк около 200. И записывать туда всякую хню невозможно вообще-то, оно автоматом заполняется из другой базы, не надо передёргивать.
4 окт 10, 11:34    [9547146]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: DLookup и 2-а критерия. Возможно?  [new]
Rikozenit
Member

Откуда:
Сообщений: 119
Здравствуйте!
Необходимо применить 3 условия в критерии функции dlookup:
min_stroka_bloka = DLookup("№строки", "Онлайн", "[Заказ_№] = '" & zakaz & "' AND [№_Прибора] = " & №_tek_pribor AND [№_Блока] = " & №_tek_blok)

но вот этот код вызывает ошибку Expexted: list separator or )
Подскажите, пожалуйста, как исправить?
25 дек 18, 09:38    [21772674]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Serg197311
Member

Откуда:
Сообщений: 365
& №_tek_pribor !!!!!!!!!!! AND [№_Блока]

Там где воскл знаки чего-то не хватает
25 дек 18, 09:46    [21772679]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
Rikozenit, по сути ты формируешь строку запроса, точнее секцию WHERE. Как правильно её сформировать смотри фак - https://www.sql.ru/faq/faq_topic.aspx?fid=157
25 дек 18, 09:47    [21772680]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Rikozenit
Member

Откуда:
Сообщений: 119
Панург, не могу найти как правильно составить эту строку(
min_stroka_bloka.Value = СurrentProject.Connection.Execute("SELECT Min(Онлайн.[№строки]) AS [Min-№строки] " _
& " FROM Онлайн GROUP BY Онлайн.[Заказ_№], Онлайн.[№_Прибора], Онлайн.[№_Блока] " _
& " HAVING (((Онлайн.[Заказ_№]) Like " * 1355 - 3 * ") AND ((Онлайн.[№_Прибора])=1) AND ((Онлайн.[№_Блока])=1))").Fields(0)
25 дек 18, 10:07    [21772697]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
Rikozenit, мне кажется почему-то, что ты не сильно и старался. Статья, к которой я отослал тебя не сильно то и большая, можно было прочитать тщательно.

Rikozenit
не могу найти как правильно составить эту строку(
К тому же это уже не строка.
И где всё это написано? Что будет если не найдётся минимальное значение?

Для VBA
...
    With СurrentProject.Connection.Execute("SELECT Min([Онлайн].[№строки]) AS [Min-№строки] " _
        & " FROM Онлайн GROUP BY Онлайн.[Заказ_№], [Онлайн].[№_Прибора], [Онлайн].[№_Блока] " _
        & " WHERE [Онлайн].[Заказ_№] Like '%1355 - 3%' AND [Онлайн].[№_Прибора]=1 AND [Онлайн].[№_Блока]=1")
            If Not .EOF then
                Me.min_stroka_bloka=.Fields(0)
            Else
                Me.min_stroka_bloka=Null'?
            End if
        .Close
    End With
...
25 дек 18, 10:31    [21772714]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Rikozenit
Member

Откуда:
Сообщений: 119
Панург, спасибо!
With CurrentProject.Connection.Execute - только в твоём коде тут буква C русская закралась почему-то( (на всяк случ)
в статье я не нашёл вот эту конструкцию:
    With СurrentProject.Connection.Execute(SQL)
            If Not .EOF then
                x=.Fields(0)
            Else
                x=Null '?
            End if
        .Close
    End With


Использую это в модуле формы, чтобы набивать спецификацию заказа. Искомое минимальное значение ограничивает потом работу цикла.
25 дек 18, 11:40    [21772785]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Swa111
Member

Откуда:
Сообщений: 85
Панург,

У Вас что то запросом, Where после Group, и эта хитрая конструкция не нужна так как агрегатная функция над пустой таблицой вернет null, то же самое что Вы потом программно делаете

Из собственного опыта для отладки советую добавлять символы перевода строки при делении на строки. И предварительно запрос сохранять в строке, что бы можно было посмотреть что собралось в окне Immediate

sSQL = "SELECT Min([Онлайн].[№строки]) AS [Min-№строки] " & vbCrLf _ 
     & "FROM Онлайн" & vbCrlf _
     & "WHERE [Онлайн].[Заказ_№] Like '%" & zakaz & "%' "  & vbCrLf _ 
              "AND [Онлайн].[№_Прибора]= " & me![№_tek_pribor] & vbCrLf _ 
              "AND [Онлайн].[№_Блока]=" &  me![№_tek_blok]

debug.print (sSQL) 'Вывести запрос в окно отладки

With СurrentProject.Connection.Execute(sSQL) 'Если здесь будет ошибка то лезем в окно отладки 
  Me.min_stroka_bloka=.Fields(0)
  .Close
End With


Если произошла ошибка то копируем запрос из окна отладки и вставляем в запрос в режиме sql, пробуем запустить. В этом случае проще локализовать ошибку.
25 дек 18, 13:14    [21772891]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
Swa111
У Вас что то запросом, Where после Group
недоглядел. я просто скопировал и не выкинул лишнее
25 дек 18, 14:19    [21772960]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
Swa111
Me.min_stroka_bloka=.Fields(0)
тут тоже будет ошибка если запрос не вернёт строк
25 дек 18, 14:20    [21772962]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
Rikozenit
в статье я не нашёл вот эту конструкцию:
это надо смотреть там же другую статью - https://www.sql.ru/faq/faq_topic.aspx?fid=410
25 дек 18, 14:22    [21772965]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
Rikozenit
With CurrentProject.Connection.Execute - только в твоём коде тут буква C русская закралась почему-то( (на всяк случ)
Эт не у мну закралась, эт у тюбю 21772697.
25 дек 18, 14:25    [21772968]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Swa111
Member

Откуда:
Сообщений: 85
Панург,

но кокретно данный запрос всегда вернет одну строку
25 дек 18, 16:26    [21773115]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
Swa111
Панург,

но кокретно данный запрос всегда вернет одну строку
С чего бы? Если ни одна запись не соответствует условию, то и записей не будет
25 дек 18, 18:25    [21773235]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Swa111
Member

Откуда:
Сообщений: 85
Панург,

это свойство агрегатных функций, если нет строк то взвращается null
25 дек 18, 20:23    [21773330]     Ответить | Цитировать Сообщить модератору
 Re: DLookup и 2-а критерия. Возможно?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 4021
Swa111
Панург,

это свойство агрегатных функций, если нет строк то взвращается null
Согласен - был неправ.
26 дек 18, 04:09    [21773516]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Microsoft Access Ответить