• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Как передать значение поля в процедуру из библиотеке скриптов

  • Автор темы rm2005
  • Дата начала
Статус
Закрыто для дальнейших ответов.
R

rm2005

Здавствуйте, у меня вот такой вопрос

Подцепил директивой use "MyProc" процедуру из библиотеке скриптов


Код:
sub MyProc(MyVal as variant) 
'тут чего-то делаем
end sub

вызываю

Код:
Set CurrentUIDoc = CurrentUIWorkspace.CurrentDocument
Set CurrentDoc = CurrentUIDoc.Document
'MyID - поле документа
Call MyProc(CurrentDoc.MyID) - здесь ошибка несовпадения типов "Type Mismatch"

Получилось передать значение только изменив параметр в процедуре на стринг и передав значение поля через промежуточную строковую переменную. Но это мне кажется как-то криво.

Подскажите, как лучше сделать.
 
H

Hedg

а что мешает использовать функцию преобразования в cтроку Cstr ???
 
R

rm2005

Для: Hedg
Хотелось бы передавать ссылку на поле или его значение, а уже приобразовывать внутри процедуры. Можно ли так делать?
 
H

Hedg

Как мне видиться
Код:
Call MyProc(Cstr(CurrentDoc.MyID))
 
R

rm2005

Для: Hedg
Поменял
Код:
sub MyProc(MyVal as string)
Вызываю
Код:
Call MyProc(Cstr(CurrentDoc.MyID))
Всё равно "Type Mismatch"
 
H

Hedg

А вот так
Код:
Call MyProc(Cstr(CurrentDoc.MyID(0)))
 
O

Ogion7

<!--QuoteBegin-rm2005+24:04:2007, 14:54 -->
<span class="vbquote">(rm2005 @ 24:04:2007, 14:54 )</span><!--QuoteEBegin-->Хотелось бы передавать ссылку на поле или его значение, а уже приобразовывать внутри процедуры. Можно ли так делать?
[snapback]63279" rel="nofollow" target="_blank[/snapback]​
[/quote]
только если передать процедуре сам документ
 
R

rm2005

Для: Hedg
Спасибо, так работает. А если в поле состоит из 2 строк, можно ли передать?
Call MyProc(Cstr(CurrentDoc.MyID.text))
не работает.

Для: Ogion7
Буду делать через документ.
 
H

Hedg

Для: rm2005
Если строк больше чем одна, то так работаь не будет.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

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