Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将32位R连接到32位Access数据库_R_Ms Access_Rodbc - Fatal编程技术网

将32位R连接到32位Access数据库

将32位R连接到32位Access数据库,r,ms-access,rodbc,R,Ms Access,Rodbc,我正在使用带RStudio的32位R尝试连接到.accdb文件。我的机器上运行32位MS Access R版本: platform i386-w64-mingw32 arch i386 os mingw32 system i386, mingw32 status

我正在使用带RStudio的32位
R
尝试连接到
.accdb
文件。我的机器上运行32位MS Access

R版本:

platform       i386-w64-mingw32            
arch           i386                        
os             mingw32                     
system         i386, mingw32               
status                                     
major          3                           
minor          1.2                         
...
language       R                           
version.string R version 3.1.2 (2014-10-31)
nickname       Pumpkin Helmet
我正在尝试使用
RODBC
包连接到MS Access数据库。我无法使用
odbcConnectAccess(“location\u of\u database.accdb”)
连接到客户端提供的数据库。此特定数据库是使用Access 2013创建的。当我尝试连接时,会收到各种警告消息:

Warning messages:
1: In odbcDriverConnect(con, ...) :
  [RODBC] ERROR: state HY000, code -1028, message [Microsoft][ODBC Microsoft     Access Driver] Cannot open database '(unknown)'.  It may not be a database that     your application recognizes, or the file may be corrupt.
2: closing unused RODBC handle 12 
3: In odbcDriverConnect(con, ...) :
  [RODBC] ERROR: state 01000, code 1, message [Microsoft][ODBC Microsoft Access Driver]General Warning Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x11a4 Thread 0x798 DBC 0x88e0064 Jet'.
4: In odbcDriverConnect(con, ...) :
  [RODBC] ERROR: state 01000, code 1, message [Microsoft][ODBC Microsoft Access Driver]General Warning Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x11a4 Thread 0x798 DBC 0x88e0064 Jet'.
5: In odbcDriverConnect(con, ...) : ODBC connection failed
有趣的是,我可以使用
odbcConnectAccess2007()
成功连接到使用Access 2010创建的数据库;但是,当我尝试使用
odbcConnectAccess()
连接到这些相同的数据库时,我会遇到上述相同的错误

谷歌搜索上面的
错误:state 01000,code 1
消息可能会有所帮助,但即使按照步骤更改
HKEY_LOCAL_机器
也不起作用

虽然我最初认为,那里的警告消息与“ACE DSN”有关,而我看到的错误消息与“Jet DSN”有关

我无法用我的access版本打开我试图用
RODBC
访问的数据库,因为这些数据库是用access 2013创建的,并且我已经安装了access 2010

有人能帮我解决为什么不能用
odbcConnectAccess()
打开此数据库的问题吗

为什么我无法使用
odbcConnectAccess()
打开此[Access 2013]数据库

我相当肯定

odbcConnectAccess(<fileSpec>)
odbcConnectAccess()
它只是

odbcDriverConnect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ=<fileSpec>')
odbcDriverConnect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=<fileSpec>')
odbcDriverConnect('DRIVER={Microsoft Access驱动程序(*.mdb)};DBQ=')
(即旧的“Jet”ODBC驱动程序),以及

odbcConnectAccess2007()
它只是

odbcDriverConnect('DRIVER={Microsoft Access Driver (*.mdb)};DBQ=<fileSpec>')
odbcDriverConnect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=<fileSpec>')
odbcDriverConnect('DRIVER={Microsoft Access驱动程序(*.mdb,*.accdb)};DBQ='))
(即较新的“ACE”ODBC驱动程序)


较旧的“Jet”驱动程序无法处理.accdb文件,因此需要
odbcConnectAccess2007()
。如果出现“无法识别的数据库格式”错误,则数据库文件可能已损坏。

您是否尝试过使用Access\u 2010的副本打开Access\u 2013数据库?当你这样做时会发生什么?您还尝试过使用
odbcConnectAccess2007()
而不是
odbcConnectAccess()
在R中打开该数据库吗?我收到一条错误消息,上面写着“无法识别的数据库格式[database location.accdb]”。您尝试过使用
odbcConnectAccess2007()在R中打开该数据库吗
而不是
odbcConnectAccess()
?是。我得到的错误与我原来的问题相同。Access 2007-2016文件基本上没有区别,因为它们都使用相同的格式。某些UI功能甚至可能与表元素不同,但R连接到ACE引擎而不是GUI。无法识别的数据库格式表明已损坏。尝试创建新的Access.accdb并导入所有对象。