пример:
Dim ses As New NotesSession
Dim view As NotesView
Dim doc As notesdocument
Dim num As Variant
Set view = ses.currentdatabase.Getview("XXX")
num = "50000001"
Print "1: " & num ' Выведет 50000001
num = clng(num)
Print "2: " & num ' Выведет 50000001
Set doc = view.Getdocumentbykey(num, True)
Print "3: " & num ' Выведет 134217728
Теперь немного видоизменим программный код, приведя к Long переменную:
Dim ses As New NotesSession
Dim view As NotesView
Dim doc As notesdocument
Dim num As Long
Set view = ses.currentdatabase.Getview("XXX")
num = 50000001
Print "1: " & num ' Выведет 50000001
num = clng(num)
Print "2: " & num ' Выведет 50000001
Set doc = view.Getdocumentbykey(num, True)
Print "3: " & num ' Выведет 50000001
А теперь изменим тип только в вызове метода getDocumentByKey:
Dim ses As New NotesSession
Dim view As NotesView
Dim doc As notesdocument
Dim num As Variant
Set view = ses.currentdatabase.Getview("XXX")
num = 50000001
Print "1: " & num ' Выведет 50000001
num = clng(num)
Print "2: " & num ' Выведет 50000001
Set doc = view.Getdocumentbykey(CLng(num), True)
Print "3: " & num ' Выведет 50000001
отсюда вывод: использовать тип Variant конечно удобно, но это как хождение по минному полю - путь короче, но не знаешь где рванёт ;)
ЗЫ: клиент Standard 8.5.3FP1
Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!
Комментариев нет:
Отправить комментарий