Lotus Script Как Проверить На Уникальность Поля?

  • Автор темы Автор темы diga
  • Дата начала Дата начала
savl
не можешь объяснить в чем именно проблема, когда компилирую выдает ошибку "Object variable not set"
а пару дней назад спокойно запускалась и работала
обработчик ошибок показывает что ошибка тут:

Код:
Set view=ws.CurrentDatabase.Database.GetView("(Hidden)\Main View")

вот сам уже полностью рабочий (пару дней назад) код:

Код:
Sub Querysave(Source As Notesuidocument, Continue As Variant)
On Error Goto handler ' обработчик ошибок
Const FuncName = {Sub "Querysave" }' обработчик ошибок
Dim ErrStr As String' обработчик ошибок
Dim db As NotesDatabase 'переменная класса базы данных
Dim doc As NotesDocument 'переменная класса документ базы данных
Dim currDoc As NotesDocument 'переменная класса документ базы данных
Dim view As notesView ' класс вид
Dim ws As New NotesUIWorkspace
'Dim ws As New NotesUIWorkspace 'текущий открытый документ
Dim ndc As NotesDocumentCollection 'переменная класса колекции документов
Set doc = source.Document 'получаем ссылку на текущий документ "заднего плана"
Set db = doc.ParentDatabase 'получаем ссылку на текущую БД
If ( source.FieldGetText( "OrgTitle" ) = "" ) Then 
Messagebox( "Заполните поле наименование организации" )
Call source.GotoField( "OrgTitle" )
continue = False 
Else 
If ( source.FieldGetText( "OrgID" ) = "" ) Then
Messagebox( "Отсутствует краткое наименование организации" )
Call source.GotoField( "OrgID" )
continue = False
Else 
Set view=ws.CurrentDatabase.Database.GetView("(Hidden)\Main View")
Set ndc=view.GetAllDocumentsByKey(source.FieldGetText( "OrgID" ), True)
If ndc.Count > 0 Then
Set currDoc= ndc.GetFirstDocument
Do While Not currDoc Is Nothing
If currDoc.UniversalID <> doc.UniversalID Then
Msgbox "Документ с таким названием уже существует.",16
continue = False
Exit Sub	
End If
Set currDoc= ndc.GetNextDocument(currDoc)
Loop
End If		
Messagebox( "Данные успешно сохранены" )
End If
End If
Goto Endh' обработчик ошибок
handler:' обработчик ошибок
ErrStr = FuncName & ": " & Err &", в стр " & Erl & nLine & Error$' обработчик ошибок
Msgbox ErrStr, 16, "Error!"' обработчик ошибок
Resume endh' обработчик ошибок
Endh:' обработчик ошибок
End Sub
 
Заменить:
Код:
Set view=ws.CurrentDatabase.Database.GetView("(Hidden)\Main View")
на
Код:
Set view=db.GetView({(Hidden)\Main View})
 
>Set view=ws.CurrentDatabase.Database.GetView("Main View")
так получать БД не надо. Есть ньюансы с CurrentDatabase. Лучше из документа (или из сессии, если это текущая БД) Set db вы сделали просто так, для увеличения кол-ва строчек? ;)
и вот кому я это писала? да, я мб, не права, но у меня сложилось впечатление, что стажер компании очень не хочет туда попасть.
 
у меня сложилось впечатление, что стажер компании очень не хочет туда попасть.

с удовольствием я бы поработал бы я там, но это не мое, я не стажер, а практикант с университета, было 2 варианта, либо тупо сидеть в приемной комиссии и принимать абитуриентов, либо пойти в компанию делать хоть что-то умное, я выбрал второе, для меня все это в новинку поэтому не очень понимал, как я уже писал, чем больше спрашиваю, тем больше начинаю понимать. ранее работал только Visual studio на c++ и с БД не работал. Вот из-за этого у меня такие глупые вопросы)
 
Мы в соцсетях:

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