2017-02-28 84 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

相关问题