2016-03-23 9 views
1

MS AccessにはPythonやPython 2.7およびMicrosoft Access 2013Pyodbcエラー - 私は、Windows 7上で実行しています

私が実行してみてください。

:私は次のエラーメッセージが表示さ

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に関する多くの質問があることを認識しています。 Iすでに次のことを実行しています

1)私は64ビットのPythonと64ビットのMS Access

2を持って確保)

https://support.microsoft.com/en-us/kb/295297キーHKEY_LOCAL_MACHINE \ SOFTWAREの\のODBCレジストリへのアカウントのアクセス許可を与えられました

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

のみDRIVERDBQ属性を持つシンプルな接続文字列で始まり、全く埋め込まれた行は、壊れていない...

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;') 
関連する問題