最近尝试用RStudio访问accdb文件,碰到了以下问题以及解决办法:首先说明下最初的运行环境:R-3.3.2 64bit,win7 64bit。
加载RODBC之后,运行脚本:
conn <- odbcConnectAccess2007(access.file="Stock.accdb",uid="test", pwd="test");##已设置R默认路劲是在accdb文件所在位置
报错:[RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
1、感觉是驱动程序不对,就回过头找ACCESS的驱动程序,按照找到的办法:
http://ask.csdn.net/questions/219305
发现在管理工具打开之后,打不开配置,提示:找不到驱动程序的安装例程。
原来是win7 64bit的影响,需要运行C:\Windows\SysWOW64\odbcad32.exe来配置,结果还是同样的报错。
查到办法:https://zhidao.baidu.com/question/265621073194994325.html?qbl=relate_question_0&word=64%20%CE%BB%20win7%20%D5%D2%B2%BB%B5%BDODBC%20%B0%B2%D7%B0%B3%CC%D0%F2%20%C7%FD%B6%AF%C0%FD%B3%CC
原来是我用的office2016是32版本,需要下载Microsoft Access Database Engine 2010 Redistributable,并且和office保持一致。
下载安装之后,终于是可以打开odbcad32.exe来配置,一般都已经预设了access database源,需要选中访问accdb文件,并且在高级中设置访问的用户和密码,这里和R脚本保持一致,都是test,这个随意。
2、重新运行R脚本,结果报错,大致意思是只运行在32位窗口下。查RStudio中默认R版本是R-3.3.2 64bit,切换成R-3.3.2 32bit后,重新运行Rstudio,发现又报错,找不到文件(未知),突然想到原来重启之后,没有把路径设置到accdb文件所在路径,设置路径之后,运行脚本成功。
conn <- odbcConnectAccess2007(access.file="Stock.accdb",uid="test", pwd="test");
后续运行SQL查询没有问题出现。
这里再把调试过程描述出来:
重点是:R要用32位版本R-3.3.2 32bit,下载access驱动和office版本保持一致(32bit),ODBC配置(选择数据库和配置用户及密码)
暂无数据