2017-02-28 137 views
1

我在映射到本地計算機上的Z:/驅動器的網絡驅動器上有一個.accdb訪問數據庫文件。你可以連接ODBC到這個?ODBC從R連接到網絡驅動器上的Access數據庫.accdb文件

這是創建ODBC的代碼(usrAccessPath是包含文件路徑的字符串變量):

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]'(unknown)'不是有效路徑。請確保路徑名拼寫正確,並且您已連接到服務器上的文件所在地 –

回答

1

正如所評論的,只要遵循Windows file name rules,使用RODBC對MS Access數據庫(如R)進行ODBC調用即可接受本地硬盤或網絡路徑(即通用命名約定(UNC))。當然,一定要通過人物加倍逃脫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

相關問題