|
|
|
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
|
|||
|---|---|---|---|
|
#18+
Проблема следующая 1. Файл Excel содержит макросы, которые подключаются к базе MSSQL Server через системный DSN. Если офис 2000, то там есть наДстройки ODBC,а в 2003 и XP офисе этих наДстроек нет и вылезает ошибка с указанием на: AddIns("ODBC").Installed = True 2. На одной из машин с офисом 2000 утыкается в слово Date: DateZamer.Text = Date говорит ему не хватает библиотеки. Казалось, понимание таких стандартных обращений как к Date должно быть по-умолчанию. Файл достался "по наследству" и решать проблему надо на уровне библиотек и настроек, а не на уровне смены кодов. Помогите советом. Как бороться с 1) и 2). Заранее спасибо. Все подключения DSN проверены (тест прошел успешно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2005, 21:29:35 |
|
||
|
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
|
|||
|---|---|---|---|
|
#18+
1) Как именно делается подключение к базе? Через QueryTable или через VBA/ADO? Если QueryTable, то во первых находишь драйвер ODBC для своей базы данных, инсталлируешь его. Впрочем, для MS SQL Server ODBC драйвер скорее всего уже есть. Во вторых, запросы из Excel которые через QueryTable идут через File DSN, не системный DSN и не пользовательский! На той машине которя может делать запросы смотришь DSN через который Excel тянет данные и на всех остальных машинах повторяешь его. Если данные тягаются через VBA/ADO, то инсталлируешь драйвер ODBC, потом настраиваешь пользовательский или системный DSN. 2) Переинсталлируй Excel. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2005, 22:36:00 |
|
||
|
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
|
|||
|---|---|---|---|
|
#18+
1. вероятно, ваш код полагается на наличие надстройки xlodbc.xla. В Office XP она отсутствует (по крайней мере в установке по умолчанию.) Но есть и в 97м офисе и 2000м. Местоположение по умолчанию для 2000-го офиса - ...\Office\Library\MSQuery. Можно попробовать ее установить в XP. Сам не делал этого никогда. но и причин, почему она не должна работать в XP (будучи установленной) на бегу не вижу. Попробуйте поставить (установить) версию из поставки офис2000. Иначе все-таки придется переделывать код, чтобы убрать зависимость от этой надстройки. 2. Ошибки такого сорта характерны, когда часть ссылок, используемых в VBA проекте по каким-то причинам нарушена. Откройте VBA-редактор. в его меню нажмите tools->references в появившемся списке ссылок найдите все строки строки, на которых проставлены "птицы". Вас должны интересовать такие из них, в отображаемых свойствах которых появится слово missing. Это будет сломанная ссылка на неустановленную библиотеку или другой ексель проект. После приведения ссылок в порядок (доустановки отсутствующего или указания правильного местоположения) все поломанные Код: plaintext отлично заработают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 00:31:56 |
|
||
|
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
|
|||
|---|---|---|---|
|
#18+
вот статья - что включено, что нет http://support.microsoft.com/default.aspx?scid=kb;en-us;288118 вот страница загрузки xlodbc http://www.microsoft.com/downloads/details.aspx?FamilyID=57e79367-13a0-4895-9942-5b177846ab8a&displaylang=en ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 01:23:36 |
|
||
|
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
|
|||
|---|---|---|---|
|
#18+
Спасибо за все предложения, еще пока проверяю. Обращение к базе идет таким образом: 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": - после внимательной переустановки офиса или после включения библиотек вручную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 22:41:11 |
|
||
|
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2005, 23:58:07 |
|
||
|
Excel (Office 2003,XP,2000) и БД (MS SQLServer)
|
|||
|---|---|---|---|
|
#18+
Freebird Хотя наДстройка "ODBC Add in" появилась, но в коде все же пришлось закоментировать обращение AddIns("ODBC").Installed = True - не работало во второй ссылке предлагаемый текст можно прочитать на 32х языках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2005, 03:09:37 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33299558&tid=2185690]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 204ms |
| total: | 319ms |

| 0 / 0 |
