最近嘗試用RStudio訪問(wèn)accdb文件,碰到了以下問(wèn)題以及解決辦法:首先說(shuō)明下最初的運(yùn)行環(huán)境:R-3.3.2 64bit,win7 64bit。
加載RODBC之后,運(yùn)行腳本:
conn <- odbcConnectAccess2007(access.file="Stock.accdb",uid="test", pwd="test");##已設(shè)置R默認(rèn)路勁是在accdb文件所在位置
報(bào)錯(cuò):[RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC 驅(qū)動(dòng)程序管理器] 未發(fā)現(xiàn)數(shù)據(jù)源名稱并且未指定默認(rèn)驅(qū)動(dòng)程序
1、感覺(jué)是驅(qū)動(dòng)程序不對(duì),就回過(guò)頭找ACCESS的驅(qū)動(dòng)程序,按照找到的辦法:
http://ask.csdn.net/questions/219305
發(fā)現(xiàn)在管理工具打開(kāi)之后,打不開(kāi)配置,提示:找不到驅(qū)動(dòng)程序的安裝例程。
原來(lái)是win7 64bit的影響,需要運(yùn)行C:\Windows\SysWOW64\odbcad32.exe來(lái)配置,結(jié)果還是同樣的報(bào)錯(cuò)。
查到辦法: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
原來(lái)是我用的office2016是32版本,需要下載Microsoft Access Database Engine 2010 Redistributable,并且和office保持一致。
下載安裝之后,終于是可以打開(kāi)odbcad32.exe來(lái)配置,一般都已經(jīng)預(yù)設(shè)了access database源,需要選中訪問(wèn)accdb文件,并且在高級(jí)中設(shè)置訪問(wèn)的用戶和密碼,這里和R腳本保持一致,都是test,這個(gè)隨意。
2、重新運(yùn)行R腳本,結(jié)果報(bào)錯(cuò),大致意思是只運(yùn)行在32位窗口下。查RStudio中默認(rèn)R版本是R-3.3.2 64bit,切換成R-3.3.2 32bit后,重新運(yùn)行Rstudio,發(fā)現(xiàn)又報(bào)錯(cuò),找不到文件(未知),突然想到原來(lái)重啟之后,沒(méi)有把路徑設(shè)置到accdb文件所在路徑,設(shè)置路徑之后,運(yùn)行腳本成功。
conn <- odbcConnectAccess2007(access.file="Stock.accdb",uid="test", pwd="test");
后續(xù)運(yùn)行SQL查詢沒(méi)有問(wèn)題出現(xiàn)。
這里再把調(diào)試過(guò)程描述出來(lái):
重點(diǎn)是:R要用32位版本R-3.3.2 32bit,下載access驅(qū)動(dòng)和office版本保持一致(32bit),ODBC配置(選擇數(shù)據(jù)庫(kù)和配置用戶及密碼)








暫無(wú)數(shù)據(jù)