Проблема с VBA в ACCESS 2003

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
GoLdViPeX
Сообщения: 7
Зарегистрирован: 22 мар 2008, 01:51

Вопрос может быть глупый, но всё же. При использовании всех переменных, которые начинаются с "mso", например msoModeModeless, msoIconTip, msoButtonSetOk, msoBarRight и т.д. VBA выдает ошибку "Variable not definded", то есть переменная не определена. Как решить данную проблему?
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Ответ может быть глупый, но всё же. Заменить mso на что - либо другое, т.к. mso зарезервировано системой.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
GoLdViPeX
Сообщения: 7
Зарегистрирован: 22 мар 2008, 01:51

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

Простой пример(работа с ассистентом):

Код: Выделить всё

Public Function Blase() 
Dim B As Variant 'Инициализация пузыря
Dim X As Integer 'Инициализация переменной
Set B = Assistant.NewBalloon
Beep
With B
'Заголовок
.Heading = "{cf 252} Добро пожаловать в базу данных!{cf 0}"
.Text = "Вы хотите сделать резервную копию базы перед работой?"
[B].Mode = msoModeModeless
.Button = msoButtonSetOkCancel[/B] 
X = .Show
End With
End Function
На строчках, помеченных жирным шрифтом как раз и высвечивается вышеназванная ошибка.
Аватара пользователя
VictorM
Сообщения: 794
Зарегистрирован: 23 окт 2006, 01:44
Откуда: Lugansk, Ukraine
Контактная информация:

Значит я сразу не так Вас понял, извините. Видимо дело не в mso.
"Дайте людям рыбы, и вы накормите их на весь день;
научите их ловить рыбу - и вы накормите их на всю жизнь".
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте GoLdViPeX.
строка "...Assistant.NewBalloon..." подсказывает, что производится попытка запрограмировать "Помошника" MS Office.
Для начала стоит проверить есть ли возможность его програмировать - установлен ли он в Вашем Office.
Евгений.
Аватара пользователя
Aent
Сообщения: 1129
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

Я бы начал с того что посмотрел: есть ли в проекте ссылка на
Microsoft Office 11.0 Object Library, указывающая на MSO.DLL ... ;)
И есть ли сама dll. По умолчанию она располагается в C:\Program Files\Common Files\Microsoft Shared\OFFICE11\
GoLdViPeX
Сообщения: 7
Зарегистрирован: 22 мар 2008, 01:51

Teslenko_EA, ассистент в системе установлен и работает. Если убрать эти две строчки, выделенные жирным шрифтом, то всё нормально выводится.
GoLdViPeX
Сообщения: 7
Зарегистрирован: 22 мар 2008, 01:51

Aent, огромное спасибо! Прописал в Tools->References эту библиотеку и всё заработало.
Ответить