А знаете ли вы, что имея 64-битную операционную систему и 32-битный Microsoft Office, вы не сможете простыми стандартными манипуляциями настроить ODBC источник данных (data source)? Например, на таблицы Excel — что, в общем-то, не такая уж и редкость.
Если вы пойдете как обычно в Панель управления / Администрирование / Источники данных ODBC (Control Panel / Administrative Tools / Data Sources (ODBC)), то вы не увидите перечня ODBC драйверов MS Office, даже если они были установлены. В лучшем случае могут затесаться какие-то 64-битные драйвера, установленные с какими-то другими оснастками:
А чтобы всё-таки поработать с 32-битными драйверами ODBC нужно запускать 32-битную версию утилиты управления ODBC (ODBC Data Source Administrator) вот такой командой:
%windir%SysWOW64odbcad32.exe
В общем-то, логично. Но почему не вывести обе утилиты в панели управления?! как это сделано в Windows 8.1, кстати.
Информация есть здесь:
Unable to create DSN for Microsoft Office System Driver on 64-bit versions of Windows
No ODBC Drivers available for Excel or Access in Windows 7 ?!
Hi,
I tried using the 32-bit Office System driver (ODBC Administrator tool in %windir%SysWOW64odbcad32.exe) to build an ODBC data source but the Excel driver for .xlsx files is missing. I looked in the regular System Administrator’s ODBC Data Source Administration
and even the 64-bit version — and they are also missing the current Excel driver.
I’m running a 64-bit Windows system and 32-bit Office. I don’t get any error messages, aside from the one I get eventually on the Excel 97-2003 file (.xls) that I’m currently using for my ODBC database (since that’s the only Excel driver available in the
all 3 available ODBC Administrator tools). The error message there says the file is corrupted and can’t be accessed and it happens after I’ve created the ODBC database and used it less than 10 times.
I’ve already tried the information in the following threads without any luck:
http://answers.microsoft.com/en-us/office/forum/office_2007-excel/no-odbc-drivers-available-for-excel-or-access-in/001c234b-dfd5-4378-a325-c4f1482fb6fd?auth=1
https://support.microsoft.com/en-us/kb/2721825/en-us
Can I install new ODBC drivers? The .xlsx compatible one? According to the ODBC Data Source Administrator tool (from the SysWOW64 folder, not the administrator tools), under the Drivers tab, it says «To install new drivers, use the driver’s setup program.»
Where is the driver’s setup program?
Please help, thanks!
- Remove From My Forums
-
Question
-
Hi Guys,
Where can i download the Microsoft Excel Driver (*.xls, *.xlsx, *.xslm, *.xlsb)’
Currently i only have Microsoft Excel Driver (*.xls) and i need to add the xlsx format too.
All replies
-
Hi,
I’m afraid you are mixed up something. «*.xls», «*.xlsx», «*.xslm», «*.xlsb» is not a driver, but only an extension or a part of file name.
So, you don’t have to download driver, only need to install Excel in your computer. If Excel is installed, you can open, read/write, and save «*.xls», «*.xlsx», «*.xslm», «*.xlsb» file.If I misunderstand your question, please provide what you want to do after download the Microsoft Driver (using your words).
Regards,
Ashidacchi
-
Edited by
Wednesday, September 6, 2017 10:05 PM
-
Edited by
-
-
Proposed as answer by
Emi ZhangMicrosoft contingent staff
Tuesday, September 12, 2017 1:36 AM
-
Proposed as answer by
-
I think you are looking for Runtime environment for accessing Excel. Please install this:
https://www.microsoft.com/en-us/download/details.aspx?id=50040
02.02.17 — 12:43
Здравствуйте.
Раньше в х32 1С открывал Excel таким кодом
Стр_Конект = «Driver={Microsoft Excel Driver (*.xls)};
|DriverId=790;
|Dbq=»+Стр_Файл+»;
|DefaultDir=»+Стр_Путь+»;»;
Об_Конект = Новый COMОбъект(«ADODB.Connection»);
Попытка
Об_Конект.Open(Стр_Конект);
Исключение
Сообщить («Невозможно подключится к Microsoft Excel Driver!!!
|Возможно файл [«+Стр_Файл+»] открыт другим пользователем.»);
Возврат;
КонецПопытки;
Теперь выдает ошибку на этапе Об_Конект.Open(Стр_Конект);
Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][Драйвер ODBC Excel] Файл ‘(нет данных)’ не может быть открыт ядром базы данных Microsoft Jet. Файл уже открыт другим пользователем для монопольного доступа или требуется разрешение на просмотр данных.
Куда копать? Что подправить в строке коннекта?
1 — 02.02.17 — 13:10
(0) ODBC тут лишнее
MyCon = Новый COMОбъект («ADODB.Connection»);
Попытка
MyCon.Open («Provider=Microsoft.ACE.OLEDB.12.0;Data Source=»+ОБъект.ПутьКфайламБюджета+»;Extended Properties=»»Excel 12.0;HDR=Yes;IMEX=1;»»»);
Исключение
Сообщить(«Не удалось открыть файл->»+ОБъект.ПутьКфайламБюджета+» Проверьте путь и тип файла»);
Сообщить(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
Возврат;
КонецПопытки;
2 — 02.02.17 — 13:46
(1)Спасибо. На х32 код работает, а на х64 нет.
Ругается
Произошла исключительная ситуация (Microsoft OLE DB Service Components): Заглушке переданы неправильные данные.
Может что-то кроме Microsoft.ACE.OLEDB.12.0 надо в com+ прописать?
3 — 02.02.17 — 13:51
(2) а драйвер ACE х64 скачан и установлен?
4 — 02.02.17 — 13:53
(3) я в службе компонентов его com+ сопоставил по типу Книга знаний: Вызов 32-битных COM-объектов на стороне 64-битного сервера 1С. Без этого ругался на Provider=Microsoft.ACE.OLEDB.12.0.
Теперь вот на заглушку
5 — 02.02.17 — 14:14
Извините, а в файловом варианте эта штука не работает?
6 — 02.02.17 — 14:16
(5) у меня файловый вариант как раз
7 — 02.02.17 — 14:20
(6) У меня как раз 64.
Попробовал и я, тоже не срабатывает. Причина другая.
Сообщений 2:
Не удалось открыть файл->C:DBАзыExtRepsPL VAP FY17.xlsx Проверьте путь и тип файла
Произошла исключительная ситуация (ADODB.Connection): Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
Но у меня нет ACE
8 — 02.02.17 — 14:22
(6) может тебе поможет: http://www.cyberforum.ru/ado-net/thread125575.html
Я в этом плаваю по-топорному.
9 — 02.02.17 — 14:28
(0) чем вызвана необходимость использовать этот «Driver» ?
Нет Excel»я ?
10 — 02.02.17 — 14:29
(8) ну драйвер похоже ставить надо Microsoft.ACE.OLEDB.12.0 х64. Но для этого надо офис снести х32, неохота.
Через обертку com+ избавился от ошибки «поставщика». Но появились другие.
11 — 02.02.17 — 14:30
(10) Понял..
12 — 02.02.17 — 14:30
(9) Да, изначально у заказчика не было Екселя. Но сейчас уже есть, поэтому переписываю обработку под Excel.application
13 — 02.02.17 — 14:41
А так не пойдёт? Поскольку Excel установлен..
Попытка
Excel = Новый COMОбъект(«Excel.Application»);
Исключение
Сообщить(«Не найден Microfoft Excel.»);
Возврат Ложь;
КонецПопытки;
Попытка
WorkBook = Excel.WorkBooks.Open(ФайлExcel );
Исключение
Сообщить(«Excel не удалось открыть файл » + ФайлExcel );
Возврат Ложь;
КонецПопытки;
ТекЛист=Excel.WorkSheets(1);
…
14 — 02.02.17 — 14:42
+13 или ты под это и пишешь?
15 — 02.02.17 — 14:49
Платформа какая?
С 8.3.6 уже можно этим пользоваться:
ДанныеФайлаТабличныйДокумент = Новый ТабличныйДокумент;
ДанныеФайлаТабличныйДокумент.Прочитать(ИмяВремФайла);
16 — 02.02.17 — 14:57
(13) да, так и переписываю. Подумал, что быстрее переписать, чем разбираться с ADO.
LevelUP
17 — 02.02.17 — 15:01
(15)платформа 8.3.9 х64. Хороший способ, надо попробовать, без всяких COM и определений количества строк и колонок. Спасибо!
- Remove From My Forums
-
Вопрос
-
I am trying to access a spreadsheet that is currently homed on a Server that doesn’t have excel installed on it…however it has an excel driver (Microsoft Excel Driver .xls). I am running Office 2013 on my computer that
I am using to pull the spreadsheet onto. I need to find the correct driver to be able to open and make changes to the spreadsheet…Please help!-
Перемещено
6 ноября 2013 г. 6:16
ODBC issue
-
Перемещено
Ответы
-
Hello,
From your description, if I understand correctly, you want to know how to read excel file.
For this, my suggestion is to use the OleDb, we just need to install the
Microsoft Access Database EngineAnd for how to read excel file using OleDb, there is a sample for it:
DataTable dt = new DataTable(); OleDbConnection objOleDbCon = null; DataTable dtSheetName = new DataTable(); string filePath = "E:\BMX\Lab\TestLab\WindowsFormsApplication1\ADONET\DataSource.xlsx"; string fileExt = System.IO.Path.GetExtension(filePath); string fileName = System.IO.Path.GetFileName(filePath); OleDbCommand objOleDbCmd = new OleDbCommand(); OleDbDataAdapter objOleDbDataAdapter = new OleDbDataAdapter(); DataTable dtExcelData = new DataTable(); string xConnStr = ""; if (fileExt.ToLower() == ".xls") { xConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties="Excel 8.0;HDR=Yes;IMEX=1""; } else if (fileExt.ToLower() == ".xlsx") { xConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + filePath + ";Extended Properties="Excel 12.0;HDR=Yes;IMEX=1""; } objOleDbCon = new OleDbConnection(xConnStr); objOleDbCon.Open(); try { objOleDbCmd = new OleDbCommand("SELECT * FROM [" + "Course" + "$]", objOleDbCon); objOleDbDataAdapter = new OleDbDataAdapter(objOleDbCmd); objOleDbDataAdapter.Fill(dt); } catch (Exception ex) { throw ex; } finally { objOleDbCon.Close(); } return dt;
If I have misunderstood, please let me know.
Regards.
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey.-
Помечено в качестве ответа
Fred Bao
14 ноября 2013 г. 9:48
-
Помечено в качестве ответа