Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Access не понимает функции Trim, LCase


Автор: BelkaJul 6.9.2007, 20:23
Уважаемые знатоки, подскажите!!!

На домашнем компьютере не работает  программа написанная с помощью Access 2003 и VBA.
Спотыкается на таких СТАНДАРТНЫХ функциях, как Trim, LCase, UCase.

В редакторе VB проверила, какая библиотека требуется этим функциям. (View - Object Browser)
Там указано: C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6.DLL

Проверила, по указанному пути данный файл есть.

При этом, на работе данная программа работает без проблем.
Разница только в том, что на домашнем стоит только офис (2003), а на работе установлен еще и VB6.

Админ посоветовал скопировать недостающую библиотеку в C:\WINDOWS\system32  (пояснив, что если нужной библиотеки программа не находит, то она будет искать ещё и в этой папке).
Не помогло :(

Подскажите, какие библиотеки скопировать (и куда), чтобы Access начал понимать стандартные функции.

Автор: Akina 6.9.2007, 20:53
Цитата(BelkaJul @  6.9.2007,  21:23 Найти цитируемый пост)
Проверила, по указанному пути данный файл есть.

Теперь проверь, что она числится в списке подключенных (References...) - галочка должна стоять.

Автор: BelkaJul 7.9.2007, 11:14
Akina, проверила....

Tools - References:

стоят галочки около первых 5-ти элементов:

Visual Basic for Application
Microsoft Access 11.0 Object Library
OLE Automation
Microsoft DAO 3.6 Object Library
Microsoft ActiveX Data Objects 2.1 Library


в чем ещё может быть загвоздка?  smile 

Автор: Akina 7.9.2007, 12:11
Все правильно - эти функции описаны в VBA Library (%Program Files%\Common Files\Microsoft Shared\VBA\VBA6\VBE6.DLL). Попробуй, что ли, перерегистрировать эту библиотеку...

Автор: BelkaJul 7.9.2007, 13:21
Akina, я правильно Вас понимаю?
"перерегистрировать эту библиотеку" это следующие действия:

в Tools - References
1) снять галочку около библиотеки Visual Basic for Application
2) кнопка Browse, указать заново путь для этой библиотеки (%Program Files%\Common Files\Microsoft Shared\VBA\VBA6\VBE6.DLL)
3) поставить галочку обратно

Понимаю, что для знающего человека этот вопрос более, чем дурацкий, но мне ни разу ещё не приходилось совершать сей обряд "перерегистрации библиотеки" smile 




Автор: Akina 7.9.2007, 14:15
нет, это в командной строке подряд 2 команды:
Код

regsvr32 /u  C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6.DLL
regsvr32 C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6.DLL

То что описАли Вы - это перепривязка.
PS. А еще бы проверить валидность либы (т.е. просто сравнить ее с той что в дистрибутиве, если ее не обновлял какой-нить постфикс илисервис-пак - не попорчена ли)...

Автор: BelkaJul 10.9.2007, 15:18
Цитата
 regsvr32 /u  C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6.DLL
regsvr32 C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\VBE6.DLL 


сделано, не помогло :(  smile 

Цитата
А еще бы проверить валидность либы (т.е. просто сравнить ее с той что в дистрибутиве, если ее не обновлял какой-нить постфикс илисервис-пак - не попорчена ли)... 

офис свеже переустановлен  - вроде бы библиотеки не должны успеть попортиться (за 5 минут разделяющие установку офиса и запуск программы)


Прога уже проверена на 3-х компах (кроме рабочего). НА всех трех - не видит функции LCase, Trim

 smile  какая-то нездоровая фигня :(

Автор: Akina 10.9.2007, 15:39
Более чем странно - если Object Browser видит и показывает функцию, то библиотека подключена и функция доступна. 

Нет ли каких проблем с безопасностью? антивирусом? сертификатами? 

Дополнительно - функции не отрабатывают в коде модуля? в запросе? а через построитель запросов видны-доступны?

Автор: BelkaJul 11.9.2007, 08:35
Цитата(Akina)
Нет ли каких проблем с безопасностью? антивирусом? сертификатами? 


Уровень безопастности стоит низкий. Антивирус отключен. Сертификатами  не пользуюсь. И Акцесс про них не спрашивает.

Цитата(Akina)
Дополнительно - функции не отрабатывают в коде модуля? в запросе? а через построитель запросов видны-доступны? 

Функция не отрабатывает в коде модуля.  В запросе не пробовала - на одной машине снова снесу vb6 - поэкспериментирую в построителе запросов.



ПРоблему решили установкой на машину VB6.  smile 

Можно ли как-нибудь сделать что-то наподобие дистрибутивного пакета??? Чтобы на все машины, где должна работать программка не устанавливать vb6.

Просто на мой взгляд слегка дико, что для работы Акцесса с весьма простыми функциями - требуется дополнительная установка vb6. smile 

Автор: Akina 11.9.2007, 12:24
Цитата(BelkaJul @  11.9.2007,  09:35 Найти цитируемый пост)
слегка дико, что для работы Акцесса с весьма простыми функциями - требуется дополнительная установка vb6.

Боюсь, что все-таки косяк где-то или в инсталляторе, или в процессе инсталляции Офиса... попробуй (ну так, для куража) переставить (изменение состава компонентов) Офис, указав ставить ВСЕ компоненты Аксесса и ВСЕ Средства/ОбщиеСредства...

Автор: mihanik 16.9.2007, 15:54
Цитата(BelkaJul @  11.9.2007,  08:35 Найти цитируемый пост)
ПРоблему решили установкой на машину VB6.   


Пока помечу как решённый...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)