• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Поиск по дате в другой БД

  • Автор темы San40S
  • Дата начала
S

San40S

Я же написал с проверкой на пустоту. :)
Мне и вот эта часть
Код:
StartWork > [15.04.2009]
кажется сомнительной.
Или там железно задаётся в формате dd.mm.yyyy в независимости ни от чего?

там "железно", выбирается из календаря.

abbatik

отбирает! протупил немного... там надо вместо
Код:
EndWork <> ""
написать
Код:
EndWork = ""
- проверить, чтобы оно либо меньше даты, либо пустое.
Механичесски туплю :)
 
O

Omh

Не, меня интересует не как задаётся, а как интерпретируется.
Я мож параноик, но я бы задавал дату для сёрча через
Код:
@Date(Yera; Month; Day)
, а не через
Код:
[xxxxxxx]
 
S

San40S

Не, меня интересует не как задаётся, а как интерпретируется.
Я мож параноик, но я бы задавал дату для сёрча через
Код:
@Date(Yera; Month; Day)
, а не через
Код:
[xxxxxxx]

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

А вот теперь задача, как вместо стационарной даты, вписать в формулу, значение поля (тип Date/Time - Calendar/Time control)???
 
A

abbatik

там "железно", выбирается из календаря.

abbatik

отбирает! протупил немного... там надо вместо
Код:
EndWork <> ""
написать
Код:
EndWork = ""
- проверить, чтобы оно либо меньше даты, либо пустое.
Механичесски туплю :unsure:

Ну да, это я и имел ввиду :)
 
S

San40S

формула.... бла-бла Date =[" + переменная с датой + "] бла-бла

Код такой:
Код:
sd = doc.GetItemValue("SerDate")
Set col = mdb.Search({Form = "WorkerCard" & StartWork > ["+sd+"] & (EndWork < ["+sd+"] | EndWork = "")}, Nothing, 0)

Вот что выдало :unsure:
Notes error: Formula Error (Form = "WorkerCard" & StartWork > ["+sd+"] & (EndWork < ["+sd+"] | EndWork = ""))

Вопрос: переменная sd каког типа должна быть? У мну Вариант, мож из-за этого?
 
O

Omh

String должен быть.
Query - это String.

Я бы делал примерно так:
Код:
Dim DlgDoc As NotesDocument
Set DlgDoc = db.CreateDocument

If ws.DialogBox("Форма с двумя полями-датами",True, True, False, False, False, False, "Говнюк, выбери даты!", DlgDoc, True) Then
Dim StartDate As Variant
Dim EndDate As Variant
StartDate = dlgDoc.GetItemValue("FieldWithStartDate")(0)
EndDate = dlgDoc.GetItemValue("FieldWithEndDate")(0)

if Not isDate(StartDate) and Not isdate(EndDate) then
Messagebox "Ну я же просил выбрать даты!" + Chr(13) + "Теперь ты будешь убит!", 0 + 64, "Information"
Exit Sub
end if

dim Params(2) As String
Params(0) = {Form = "WorkerCard"}
if Isdate(StartDate) then Params(1) = {StartWork > @Date(} + Cstr(Year(StartDate)) + {;} + Cstr(Month(StartDate)) + {;} + Cstr(Day(StartDate)) + {)}
if Isdate(EndDate) then Params(2) = {@if(EndWork = ""; @True; EndWork > @Date(} + Cstr(Year(EndDate)) + {;} + Cstr(Month(EndDate)) + {;} + Cstr(Day(EndDate)) + {))}

Dim Query As String
Query = Implode(Fulltrim(Params); { & })

'Поиск
End If
Ошибки не исключаю, писал прям тут

И ставь обработчик ошибок, что бы знать какая ошибка.
Простейший:
Код:
Sub SubName
On Error Goto Errh

'тело процедуры

Exit Sub
errh:
Msgbox Error & | in line | & Erl(), 64, |Lotus Notes (| & Lsi_info(2) & |)|
Exit Sub
End Sub
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!