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 DSN

使用 ODBC 连接将 R Studio 连接到 IBM Netezza 数据库 [关闭]

如何使用 OTL ODBC 驱动程序将 C++ 连接到 MySQL?

将 PHP 连接到 UniVerse ODBC DSN

通过ODBC将Excel连接到PostgreSQL