2010-12-28 2 views
4

Я уже несколько дней бил головой об этом. Я пытаюсь использовать pyodbc для подключения к базе данных Microsoft Access, и я не могу заставить строку подключения правильно или что-то в этом роде. Это то, что я использую:Не удается подключиться к БД доступа, используя pyodbc

cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Path\to\file.accdb')

Я получаю сообщение об ошибке:

Error: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnectW)')

Несмотря на то, когда я бегу dataSources() я вижу:

{'MS Access Database': 'Microsoft Access Driver (*.mdb, *.accdb)', 'dBASE Files': 'Microsoft Access dBASE Driver (*.dbf, *.ndx, *.mdx)', 'Excel Files': 'Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)'}

Есть что-то, что я здесь очень не хватает?

+0

Существует аналогичный вопрос, который может помочь: http://stackoverflow.com/questions/3251702/how-to-connect-pyodbc-to-an-access-mdb-database-file – Fionnuala

+0

Я уже нашел, что и попробовал все, что он предлагает. По-прежнему не может показаться, что это работает. – dciliske

+0

Это полезно, когда вы отправляете вопрос, пытаясь найти другие решения SO, чтобы указать на них и объяснить, почему они не решили вашу проблему. –

ответ

5

Это 64-разрядность проблема. Я решил это, используя 32-битный python и pyodbc.

1

Попробуйте добавить Provider=MSDASQL. Это deprecated, но это, кажется, работает нормально:

cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; 
DBQ=C:\Path\to\file.accdb; Provider=MSDASQL;') 
+1

Пробовал. Не работает. Неужели я чего-то не хватает? Я работаю под управлением Windows 7 Professional с Access 2007 – dciliske

+0

Он работал для меня с Access XP (2002), подключившись к .mdb для Windows 7 Professional. Поскольку он устарел, возможно, он не поддерживает новый формат .accdb. – mwolfe02

+0

Он также работал для меня с Access 2007, подключающимся к .accdb на Windows XP Professional. У меня нет машины Win7 с Access 2007, поэтому я не могу реплицировать вашу среду. – mwolfe02

Смежные вопросы