明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

訪問access提示不能打開注冊表關(guān)鍵字

[摘要]access 不能打開注冊表關(guān)鍵字 80004005錯誤信息如下:----------------------------------Microsoft OLE DB Provider for OD...

   access 不能打開注冊表關(guān)鍵字 80004005

  錯誤信息如下:

  ----------------------------------

  Microsoft OLE DB Provider for ODBC Drivers 錯誤 ''''80004005''''

  [Microsoft][ODBC Microsoft Access Driver]常見錯誤 不能打開注冊表關(guān)鍵字 ''''Temporary (volatile) Jet DSN for process 0x728 Thread 0x854 DBC 0x276fb44 Jet''''。

  ----------------------------------

  下面幾個可能原因:

  1。微軟已經(jīng)不更新ODBC,需要改用JET的方式連接ACCESS數(shù)據(jù)庫文件;

  2。系統(tǒng)目錄的權(quán)限發(fā)生的變更。

  也有老帖子說什么原因是:“ACCESS數(shù)據(jù)庫文件是ACCESS97版本的”,這個無須考慮,我用的是ACCESS2000數(shù)據(jù)庫。

  對于第一個原因,原來的連接字串如下:

  --ODBC連接方式------------------------

  mdbpath=server.MapPath("my.mdb.asp")

  CnnStr = "DBQ=" & mdbpath & ";DRIVER={Microsoft Access Driver (*.mdb)};uid=admin;pwd="

  -------------------------------------

  改用JET連接后連接字串為:

  ---JET連接方式---------------------

  CnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;User Id=admin;Data Source="& mdbpath &" '''';Password=luntanbbs"

  -------------------------------------

  測試過后無效,雖然提示的錯誤信息有點不同:

  ----------------------------------

  Microsoft JET Database Engine 錯誤 ''''80004005'''' 未指定的錯誤

  ----------------------------------

  最后檢查第二個原因:系統(tǒng)目錄權(quán)限不足。經(jīng)詢問,原來由于出于安全的考慮一同事把該服務(wù)器的WINNT目錄設(shè)置為 Administrators、system “完全控制”,users 只讀。

  但是,按道理,這樣的權(quán)限設(shè)置,ODBC的驅(qū)動程序處于 winntsystem32odbcjt32.dll 這個也是可讀的,難道是因為缺少“執(zhí)行”權(quán)限?

  我把 winntsystem32目錄下所有以odbc開頭的DLL文件全部授予“執(zhí)行”權(quán)限,發(fā)現(xiàn)還是一樣的錯誤信息。跟著我索性把整個 system32 目錄設(shè)成 everyone 可執(zhí)行,可是一測試依然不行。

  難道是還有其他文件被ODBC或JET調(diào)用但又不在這個system32目錄下且又沒有得到充分授權(quán)而導(dǎo)致失敗?

  正在想的時候,驀然瞥見 winnttemp 目錄。嘿,我把 temp 目錄設(shè)置成 everyone 可“寫入”看看。

  一測試,嘿,成了。使用ODBC連接方式的程序,成功的讀取更新ACCESS數(shù)據(jù)庫中的記錄。


Microsoft Access在很多地方得到廣泛使用,例如小型企業(yè),大公司的部門。