2017-02-28 84 views
1

ローカルマシン上のZ:/ドライブにマップしたネットワークドライブに.accdbアクセスDBファイルがあります。これにODBCを接続できますか?ODBCをRからネットワークドライブのAccess DB .accdbファイルに接続する

これは(usrAccessPathは、ファイルパスを含む文字列変数です)ODBCを作成するためのコードです:

connAccessDB <- odbcDriverConnect(paste0("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=",usrAccessDBPath)) 

このファイルのパスが機能:

C:/Users/boswelpa/Desktop/Projects/Absenteeism/Absenteeism Data.accdb 

しかし、このファイルパス(マップされたネットワークドライブ)が動作しません:

Z:/SSG Reporting Team/For Thomas/Absenteeism Data.accdb 

同じコード、異なるファイルパス。

+0

はい、可能です。 RODBCを見てください。 – Parfait

+0

私は現在RODBCを使用しています。それはAccessDBファイルなので、ファイルパスをまっすぐに接続しています。つまり、Windows ODBCマネージャーにODBC接続を作成していません。私は新しいマップされたネットワークドライブのファイルパスで使用していた元のファイルパスを交換しようとしましたが、接続しません。 –

+0

これは、私が外部サーバーに接続できないことを意味するエラーです。 1:odbcDriverConnect(paste0( "Driver = {Microsoft Access Driver(* .mdb、* .accdb)}; DBQ ="、 [RODBC]エラー:状態HY024、コード-1023、メッセージ[Microsoft] [ODBC Microsoft Access Driver] '(不明)'が有効なパスではありません。パス名のスペルが正しく、ファイルが存在するサーバ –

答えて

1

RODBCを持つRなどのMS AccessデータベースへのODBC呼び出しは、Windows file name rulesに従う限り、ローカルハードディスクまたはネットワークパス(つまり、汎用名前付け規則(UNC))を受け入れます。もちろん、文字を2倍にすることにより、Rでバックスラッシュをエスケープするようにしてください:したがって

、次のリモートパスは動作するはずです:

accDB = "\\\\Path\\To\\Network\\Drive\\Access\\Database.accdb" 

conn <- odbcDriverConnect(paste0("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=", accDB)) 

また、UNCにマップし、適切にマップされたローカルドライブが動作するはずです:

accDB = "Z:\\Mapped\\Path\\To\\Network\\Drive\\Access\\Database.accdb" 

conn <- odbcDriverConnect(paste0("Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=", accDB)) 
+0

私は実際にスラッシュ(/)で動作するようになった。何もエスケープする必要はありません –

+0

正しい。あなたはどちらかを行うことができます。 – Parfait

関連する問題