ODBC 从 R 连接到网络驱动器上的 Access DB .accdb 文件
Posted
技术标签:
【中文标题】ODBC 从 R 连接到网络驱动器上的 Access DB .accdb 文件【英文标题】:ODBC connect from R to Access DB .accdb file on Network Drive 【发布时间】:2017-02-28 18:11:08 【问题描述】:我在网络驱动器上有一个 .accdb Access DB 文件,该文件已映射到本地计算机上的 Z:/ 驱动器。你能把 ODBC 连接到这个吗?
这是创建 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
相同的代码,只是不同的文件路径。
【问题讨论】:
是的,你可以。查看 RODBC。 我目前正在使用 RODBC。这是一个 AccessDB 文件,所以我直接通过文件路径连接。也就是说,我没有在 Windows ODBC 管理器中创建 ODBC 连接。我尝试用新的映射网络驱动器文件路径换出我使用的原始文件路径,但它没有连接。 这是我收到的错误,暗示我无法连接到外部服务器:1:在 odbcDriverConnect(paste0("Driver=Microsoft Access Driver (*.mdb, *.accdb); DBQ=", : [RODBC] ERROR: state HY024, code -1023, message [Microsoft][ODBC Microsoft Access Driver] '(unknown)' 不是有效路径。确保路径名拼写正确并且您连接到文件所在的服务器。 请向我们展示完整的尝试代码。 我编辑了我的问题并添加了代码。谢谢 【参考方案1】:如前所述,对 MS Access 数据库(如带有 RODBC 的 R)的 ODBC 调用同时接受本地硬盘或网络路径(即通用命名约定 (UNC)),前提是它们遵循 Windows file name rules。当然,一定要通过加倍字符来转义 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))
【讨论】:
我实际上能够让它与正斜杠 (/) 一起使用。无需逃避任何事情 正确。你可以做任何一个。以上是关于ODBC 从 R 连接到网络驱动器上的 Access DB .accdb 文件的主要内容,如果未能解决你的问题,请参考以下文章
Tableau Server 连接到 ODBC 驱动程序时出错
使用 ODBC 连接将 R Studio 连接到 IBM Netezza 数据库 [关闭]