2011-07-06 76 views
2

我試圖修復從Access 97格式導入到Access 2007格式(.mdb到.ACCDB)。導入很成功,我可以使我的機器充分發揮數據庫的功能。它也可以從我的同事的機器中完全運作。但是,當被帶到屬於我們組織的另一棟建築物時,我們無法運行數據庫。我們知道問題的一部分是打開與保存中央數據庫的Web服務器的連接(這個Access數據庫有幾個副本由相同的代碼組成,但不同的數據被輸入到這些數據庫並上傳到這個中央數據庫)。這是代碼。Microsoft Access 2007和2010:「運行時錯誤'429':ActiveX組件無法創建對象'

Public Function updateSqlServer(TransType As String, SqlCommand As Variant) As Boolean 


    Dim xmldom As New MSXML2.DOMDocument40 
    Dim xmlhttp As New MSXML2.ServerXMLHTTP40 

    Const SoapServer = "http://www.example.com/webservice.asp" 

    'setup the XMLHTTP object and POST envelope to SoapServer 
    toResolve = 5 * 1000 
    toConnect = 5 * 1000 
    toSend = 15 * 1000 
    toReceive = 15 * 1000 

    xmlhttp.setTimeouts toResolve, toConnect, toSend, toReceive 
    xmlhttp.Open "POST", SoapServer, False 'YIELDS Run-Time Error 429 on this line: xmlhttp.Open 
    xmlhttp.setRequestHeader "Man", POST & " " & SoapServer & " HTTP/1.1" 
    xmlhttp.setRequestHeader "MessageType", "CALL" 
    xmlhttp.setRequestHeader "Content-Type", "text/xml" 

    xmlhttp.send (SoapEnvelope) 

    'synchronous wait for response; HTTP status other than 200 (OK) is an error 
    If xmlhttp.Status = 200 Then 
     Set xmldom = xmlhttp.responseXML 'get response into XML DOM document 
     Debug.Print (xmldom.xml)   'write soap response to screen 
     updateSqlServer = True 
    Else 
     'handle error 
     Debug.Print ("Didn't Work") 
     Debug.Print ("status=" & xmlhttp.Status) 'write soap return code 
     Debug.Print ("" & xmlhttp.statusText) 'write status text 
     updateSqlServer = False 
    End If 

    Set xmlhttp = Nothing 
    Set xmldom = Nothing 


End Function 

東西我們都試圖解決這個問題: 1.增加了所有必需的引用(出微軟XML) 2.編輯該文件的權限和 3.註冊ActiveX控件 4的文件夾。確保所有可以改變的選項都適用於工作和非工作機器

這是舊的,不是我的代碼或設計。我只需要解決它。 任何幫助將不勝感激。

回答

3

我的一位同事想出了答案。這些變量的MSXML4對象,以及Windows 7自帶的股票有MSXML 6.0,這顯然不是與MSXML 4.

兼容務必檢查任何事情之前安裝軟件包

您可以安裝MSXML 4或改變變量MSXML 6:中

Dim xmldom As New MSXML2.DOMDocument6.0 

代替

Dim xmldom As New MSXML2.DOMDocument40 
+3

如果使用後期綁定,您可以只使用CreateObject(「MSXML2。 XMLHTTP「),然後你不必擔心安裝的特定版本。 –

相關問題