Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel (Office 2003,XP,2000) и БД (MS SQLServer) / 7 сообщений из 7, страница 1 из 1
29.09.2005, 21:29:35
    #33297110
Freebird
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
Проблема следующая
1. Файл Excel содержит макросы, которые подключаются к базе MSSQL Server через системный DSN. Если офис 2000, то там есть наДстройки ODBC,а в 2003 и XP офисе этих наДстроек нет и вылезает ошибка с указанием на:
AddIns("ODBC").Installed = True
2. На одной из машин с офисом 2000 утыкается в слово Date:
DateZamer.Text = Date
говорит ему не хватает библиотеки. Казалось, понимание таких стандартных обращений как к Date должно быть по-умолчанию.

Файл достался "по наследству" и решать проблему надо на уровне библиотек и настроек, а не на уровне смены кодов.
Помогите советом. Как бороться с 1) и 2). Заранее спасибо.

Все подключения DSN проверены (тест прошел успешно)
...
Рейтинг: 0 / 0
29.09.2005, 22:36:00
    #33297154
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
1)
Как именно делается подключение к базе? Через QueryTable или через VBA/ADO? Если QueryTable, то во первых находишь драйвер ODBC для своей базы данных, инсталлируешь его. Впрочем, для MS SQL Server ODBC драйвер скорее всего уже есть. Во вторых, запросы из Excel которые через QueryTable идут через File DSN, не системный DSN и не пользовательский! На той машине которя может делать запросы смотришь DSN через который Excel тянет данные и на всех остальных машинах повторяешь его.
Если данные тягаются через VBA/ADO, то инсталлируешь драйвер ODBC, потом настраиваешь пользовательский или системный DSN.

2)
Переинсталлируй Excel.
...
Рейтинг: 0 / 0
30.09.2005, 00:31:56
    #33297214
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
1. вероятно, ваш код полагается на наличие надстройки xlodbc.xla.

В Office XP она отсутствует (по крайней мере в установке по умолчанию.)
Но есть и в 97м офисе и 2000м. Местоположение по умолчанию для 2000-го офиса - ...\Office\Library\MSQuery.
Можно попробовать ее установить в XP. Сам не делал этого никогда. но и причин, почему она не должна работать в XP (будучи установленной) на бегу не вижу. Попробуйте поставить (установить) версию из поставки офис2000.

Иначе все-таки придется переделывать код, чтобы убрать зависимость от этой надстройки.

2. Ошибки такого сорта характерны, когда часть ссылок, используемых в VBA проекте по каким-то причинам нарушена. Откройте VBA-редактор. в его меню
нажмите tools->references
в появившемся списке ссылок найдите все строки строки, на которых проставлены "птицы". Вас должны интересовать такие из них, в отображаемых свойствах которых появится слово missing.
Это будет сломанная ссылка на неустановленную библиотеку или другой ексель проект. После приведения ссылок в порядок (доустановки отсутствующего или указания правильного местоположения) все поломанные
Код: plaintext
DateZamer.Text = Date

отлично заработают.
...
Рейтинг: 0 / 0
30.09.2005, 01:23:36
    #33297229
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
...
Рейтинг: 0 / 0
30.09.2005, 22:41:11
    #33299558
Freebird
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
Спасибо за все предложения, еще пока проверяю.

Обращение к базе идет таким образом:
Handle = SQLOpen("DSN=MyDSN;UID=Administrator;APP=Microsoft® Query;WSID=Ivanov;DATABASE=MyBase;Trusted_Connection=Yes")
Result = SQLExecQuery(Handle, "select * from MyTable"). Не знаю насколько это правильно, просто др. вариантов не видел.

Положительного результата дабился таким образом:
Переустановил офис 2003, постарался не пропускать галок связанных с работой VB и MS Query - (не помогло)

Из Дистрибутива Office 2000 забрал библиотеки
- xlODBC32.dll
- xlODBC.xla
- xlquery.xla
Создал новую папку в Program Files/MS Office/.../Library/ MSQuery
и вставил туда библиотеки.

Хотя наДстройка "ODBC Add in" появилась, но в коде все же пришлось закоментировать обращение
AddIns("ODBC").Installed = True - не работало

Не успел заметить когда появилась наДстройка "ODBC Add in":
- после внимательной переустановки офиса или после включения библиотек вручную.
...
Рейтинг: 0 / 0
30.09.2005, 23:58:07
    #33299608
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
FreebirdОбращение к базе идет таким образом:
Handle = SQLOpen("DSN=MyDSN;UID=Administrator;APP=Microsoft® Query;WSID=Ivanov;DATABASE=MyBase;Trusted_Connection=Yes")
Result = SQLExecQuery(Handle, "select * from MyTable"). Не знаю насколько это правильно, просто др. вариантов не видел.
Ну можно и так... Но обычно используется другой метод. Идешь в главное меню Excel, Data->Get External Data->New Database Query. Там делаешь File DSN или используешь уже готовый. Запускается MS Query, в нем мышкой рисуешь свой select. Потом возвращаешь подготовленный резалт-сет в Excel. Указываешь в какое место листа этот резалт-сет помещать. Получишь готовую табличку на Экселевском листе. Плюс появится специальный тулбар с кнопками Refresh, Edit Query, etc
А из VBA c таким подготовленным запросом работаешь через коллекцию WorkSheet.QueryTables. Например:
Код: plaintext
1.
ActiveSheet.QueryTables( 1 ).CommandText = "select * from MyOtherTable"
ActiveSheet.QueryTables( 1 ).Refresh
...
Рейтинг: 0 / 0
01.10.2005, 03:09:37
    #33299657
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
Freebird Хотя наДстройка "ODBC Add in" появилась, но в коде все же пришлось закоментировать обращение
AddIns("ODBC").Installed = True - не работало

во второй ссылке предлагаемый текст можно прочитать на 32х языках.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel (Office 2003,XP,2000) и БД (MS SQLServer) / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]