2016-05-10 23 views
2

ファイルに接続して接続するために、RSTudioで32ビットのRを使用しています。私は自分のマシンで32ビットのMS Accessを実行しています。32ビットのRを32ビットのアクセスデータベースに接続する

Rバージョン:

platform  i386-w64-mingw32    
arch   i386       
os    mingw32      
system   i386, mingw32    
status          
major   3       
minor   1.2       
... 
language  R       
version.string R version 3.1.2 (2014-10-31) 
nickname  Pumpkin Helmet 

私はMS Accessデータベースに接続するためにRODBCパッケージを使用しようとしています。私はodbcConnectAccess("location_of_database.accdb")を使って、クライアントが提供するデータベースに接続することはできません。 ;

Warning messages: 
1: In odbcDriverConnect(con, ...) : 
    [RODBC] ERROR: state HY000, code -1028, message [Microsoft][ODBC Microsoft  Access Driver] Cannot open database '(unknown)'. It may not be a database that  your application recognizes, or the file may be corrupt. 
2: closing unused RODBC handle 12 
3: In odbcDriverConnect(con, ...) : 
    [RODBC] ERROR: state 01000, code 1, message [Microsoft][ODBC Microsoft Access Driver]General Warning Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x11a4 Thread 0x798 DBC 0x88e0064 Jet'. 
4: In odbcDriverConnect(con, ...) : 
    [RODBC] ERROR: state 01000, code 1, message [Microsoft][ODBC Microsoft Access Driver]General Warning Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x11a4 Thread 0x798 DBC 0x88e0064 Jet'. 
5: In odbcDriverConnect(con, ...) : ODBC connection failed 

興味深いことに、私はアクセス2010で作成されたデータベースに正常に接続するためにodbcConnectAccess2007()を使用することができます。これは、特定のデータベースは、私が接続しようとすると、私は警告メッセージのさまざまなを取得するアクセス2013で作成されましたただし、同じデータベースに接続するのにodbcConnectAccess()を使用しようとすると、上記のエラーが発生します。

上記のError: state 01000, code 1メッセージのGoogle検索では、this pageが役立つ可能性があることを示していますが、変更する手順を実行してもHKEY_LOCAL_MACHINEは機能しません。

私はもともとthat this question was promisingと考えていましたが、表示されているエラーメッセージが「Jet DSN」に関連しているのに対し、警告メッセージは「ACE DSN」に関連しています。

RODBCでアクセスしようとしているデータベースを、Access 2013でデータベースが作成され、Access 2010がインストールされているため、私のバージョンのAccessで開くことができません。

誰でも問題を解決して私がodbcConnectAccess()でこのデータベースを開くことができない理由を教えてもらえますか?

+0

Access_2010のコピーを使用してAccess_2013データベースを開こうとしましたか?あなたは何をしますか?また、 'odbcConnectAccess()'の代わりに 'odbcConnectAccess2007()'を使ってRでデータベースをオープンしようとしましたか? –

+0

''認識できないデータベース形式[database location.accdb]」というエラーメッセージが表示されます。 – Steven

+0

'odbcConnectAccess()'の代わりに 'odbcConnectAccess2007()'を使ってRでデータベースを開こうとしましたか? –

答えて

1

[Access 2013]データベースをodbcConnectAccess()で開けないのはなぜですか?私は

odbcConnectAccess(<fileSpec>) 

は単に

odbcDriverConnect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ=<fileSpec>') 

(すなわち、古い "ジェット" ODBCドライバ)、および

odbcConnectAccess2007(<fileSpec>) 

の省略形であることをかなり確信している

単純に簡略化したものです

odbcDriverConnect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=<fileSpec>') 

(つまり、新しい「ACE」ODBCドライバ)。

古い「Jet」ドライバは.accdbファイルでは動作しません。したがって、odbcConnectAccess2007()が必要です。 「Unrecognized database format」エラーが発生すると、データベースファイルが破損している可能性があります。

関連する問題