![]() |
|
Модераторы: mihanik |
![]()
|
|
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Сейчас я занят тем, что перегоняю в аксессную базу данные из кучи экселевских файлов (в экселевских файлах - списки). Делается все кодом, запускаемым в аксессе.
Суть проблемы: есть функция, которая вызывается очень часто. В ней я описал как Static переменную (допустим, xlBook) типа Excel.Workbook. Перед первым запуском значение этой переменной равно Nothing. После инициализации переменной, естественно, уже не равно. Есть три варианта: 1. Оказаться от использования такой функции (возможно, но трудозатраты оценить не берусь) 2. Не описывать переменную как Static, а инициализировать каждый раз заново. 3. Оставить как есть, но тогда надо проверять значение переменной, и если оно равно Nothing, то инициализировать ее. Вся проблема в том, что функция IsNull() в любом случае возвращает False, а строчка
Вызывает ошибку "Неправильное использование Nothing". Вариант № 3 предпочтителен тем, что надо будет дописать всего одну строчку к тому, что уже есть. Вариант 2 не хотелось бы использовать, так как при моем объеме работы (до 100000 вызовов функции) работать она будет неделю (мне бы хотелось уложиться в одну - две ночи). Вариант 1 не нравится по большей частью тем, что половину написанного придется переписывать... У кого какие соображения? -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 26 Всего: 454 |
Пользуйтесь. Что до Nothing - это специальное значение. Или, вернее, это записываемый в форме оператора присвоения метод очистки ссылки. Почему? да просто это метод переменной, а в синтаксисе VB переменные не имеют ни свойств, ни методов. А с методом сравнивать нельзя. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Akina, спасибо за совет, но он мне не помог
Вот кусок кода:
Вот в таком виде оно не работает. IsEmpty(xlBook) возвращает False до инициализации и после... Соответственно приходится либо каждый раз инициализировать заново, либо придумывать что-то еще... -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| AsIs |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 2.4.2005 Где: Санкт-Петербург Репутация: 2 Всего: 17 |
На память не помню точно, но в обычном басике можно так:
или так:
|
||||
|
|||||
| Aloha |
|
|||
|
. ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 351 Регистрация: 14.5.2006 Репутация: 5 Всего: 165 |
RockClimberх
У меня заработал такой код:
Это сообщение отредактировал(а) Aloha - 29.5.2006, 20:00 |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |