2014-10-30 156 views
0

系統信息:
Windows Professional。 64位。
IIS 7.0
Office 2007 32位(來自任務管理器)
否Visual Studio。
運行經典ASPWindows 7(64位)上的IIS 7和Ms Access 32位32位

需要連接到MS Access 2007數據庫。

<% 
    Dim objCon 
    Dim objRec 
    Dim objSql 
    Set objCon = Server.CreateObject("ADODB.Connection") 
    objCon.Open "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Server.MapPath("db/dbTest.accdb") 
    Set objRec = Server.CreateObject("ADODB.Recordset")  
    objSql = "select * from tblLogin;" 
    objRec.Open objSql, objCon 
    Do While not objRec.EOF 
     Response.Write ("<br>") 
     Response.Write (objRec("uid")) 
     Loop  
    %> 

在.asp文件中使用上述代碼。

錯誤消息:處理URL時服務器上發生錯誤。 請聯繫系統管理員。 如果您是系統管理員,請點擊此處瞭解有關此錯誤的更多信息。

我做了什麼:
以上鍊接信息。
在IIS管理器中啓用32位應用程序。在64
啓用32位應用程序IIS
CSCRIPT%SYSTEMDRIVE%\的Inetpub \ adminscripts \ adsutil.vbs設置SVC/AppPools/Enable32bitAppOnWin64 1
使用以下選項來手動選擇.ACCDB(它是正確的方法?) %WINDIR %\ Syswow64資料\ odbcad32.exe的

回答

1

如果是Access 2003或更早的數據庫將具有擴展的.mdb,不是.ACCDB

使用Jet OLEDB驅動

PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & Server.Mappath("db/dbTest.mdb") 

JET是32位,因此您需要啓用32位應用程序

對於Access 2007以後,請按照您的示例使用ACE驅動程序。 ACE是64位,所以你不需要啓用32位應用程序,事實上你可能需要禁用它們 - IIS似乎是/或在這些情況下

+0

哦!但數據庫是在MS Accesss 2007 fomrat(.accdb)中。那麼供應商會是什麼? – msinfo 2014-10-31 06:53:26

+0

我假設你正在談論在舊版Access中創建的數據庫。請參閱http://office.microsoft.com/en-gb/access-help/convert-a-database-to-the-accdb-file-format-HA010341552.aspx。如果它具有accdb擴展名,則ACE是要使用的驅動程序。 ACE實際上是一個64位驅動程序,所以你應該禁用32位應用程序。此外,如果您不知道,JET驅動程序附帶Win 7 Pro,但您需要安裝ACE – John 2014-10-31 11:42:44

+0

或者,您可以使用舊的mdb格式保存數據庫副本 – John 2014-10-31 11:48:36

相關問題