2016-03-23 1 views
1

Я бегу на Windows 7, Python 2.7 и Microsoft Access 2013.Pyodbc Ошибка - Python для MS Access

При попытке запуска:

import pyodbc 
conn_string = ''' 
DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; 
UID=admin; 
UserCommitSync=Yes; 
Threads=3; 
SafeTransactions=0; 
PageTimeout=5; 
MaxScanRows=8; 
MaxBufferSize=2048; 
FIL=MS Access; 
DriverId=25; 
DefaultDir=C:\Users\jseinfeld; 
DBQ=C:\Users\jseinfeld\Desktop\Databasetest1.accdb; 
''' 
connection = pyodbc.connect(conn_string) 

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

Error: ('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x29dc Thread 0x113c DBC 0x8a3ed48  

Jet'. (63) (SQLDriverConnect); [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x29dc Thread 0x113c DBC 0x8a3ed48 

Jet'. (63); [HY000] [Microsoft][ODBC Microsoft Access Driver] Not a valid file name. (-1044); [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x29dc Thread 0x113c DBC 0x8a3ed48 

Jet'. (63); [HY000] [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key Temporary (volatile) Ace DSN for process 0x29dc Thread 0x113c DBC 0x8a3ed48 

Jet'. (63); [HY000] [Microsoft][ODBC Microsoft Access Driver] Not a valid file name. (-1044)") 

Я понимаю, что есть много вопросов относительно доступа к Pyodbc и MS Access. Я уже выполнил следующее:

1) Обеспечен У меня есть 64-битный Python и 64 бита MS Access

2) Учитывая разрешение на доступ к учетной записи в HKEY_LOCAL_MACHINE \ SOFTWARE \ реестра ODBC ключа

https://support.microsoft.com/en-us/kb/295297

Error in opening an Access database in python

"General error Unable to open registry key Temporary (volatile) ..." from Access ODBC

3) Пробовал убедиться, что у меня есть действующая строка подключения https://stackoverflow.com/questions/6469545/python-connecting-to-a-database-with-pyodbc-not-working#=

4) База данных Access не открыта, когда я пытаюсь запустить этот код. Я перезагрузил свой компьютер и до сих пор получаю эту ошибку.

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

+0

То, как вы строите строку подключения означает, что она включает в себя встроенный разрывы строк. Вы пробовали это без перерывов? ... начиная с исходной строки примерно так: 'conn_string = r'DRIVER = {Microsoft Access Driver (* .mdb, * .accdb)}; DBQ = C: \ Users \ jseinfeld \ Desktop \ Databasetest1.accdb; ' – HansUp

+0

хороший вызов, но да, я пробовал именно то, что – BeeGee

+1

Те" Недействительное имя файла. " записи указывают, что это может быть опечатка в пути к файлу или, возможно, проблема с правами доступа. Вы пытались скопировать файл в другое место, например «C: \ Users \ Public \ ...» (и дважды проверять имя файла)? –

ответ

3

Начните с простым подключением строкой только с атрибутами DRIVER и DBQ и не внедренная линии ломает ...

conn_string = r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:\Users\jseinfeld\Desktop\Databasetest1.accdb;' 

После того, как вы получите самую простая строка соединения работает, вы можете добавлять и тестировать другие соединения, как атрибуты необходимо.

2

В дополнение к ответу HansUp, я использовать следующую технику для создания строки соединения без вложенных разрывов строк, которые по-прежнему легко читать нас люди:

conn_string = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};' 
    r'DBQ=C:\Users\jseinfeld\Desktop\Databasetest1.accdb;')