2011-07-06 9 views
2

Access 97形式からAccess 2007形式(.mdbから)にインポートされたMicrosoft Accessデータベースを修正しようとしています。 .accdb)。インポートが成功し、私のマシンからデータベースを完全に機能させることができました。私の同僚のマシンからも完全に機能しています。しかし、私たちの組織の一部である別のビルに連れて行けば、データベースを稼働させることはできません。この問題の一部は、中央データベースを保持するWebサーバーへの接続を開くことにあります(このAccessデータベースのコピーは同じコードで構成されていますが、異なるデータが入力され、この中央データベースにアップロードされます)。ここにコードがあります。 1.追加されたすべての必要な参照(例、MicrosoftのXML。) 2.ファイルのパーミッションと 3.登録のActiveX 4コントロールフォルダの編集: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 

物事は、我々はこの問題を解決しようとしてきました。変更可能なすべてのオプションが、作業用と非稼動用の両方のマシンで一致することを確認しました

これは私のコードやデザインではありません。私はちょうどそれを修正する必要があります。 助けていただければ幸いです。

答えて

3

私の同僚が答えを見つけました。これらの変数はMSXML4のオブジェクトであり、およびWindows 7は明らかに

MSXML 4.と互換性がありませんどのMSXML 6.0、との株式は、チェックに何かする前にパッケージをインストールしていることを確認しています。あなたが遅延バインディングを使用する場合は、あなただけのCreateObject( "MSXML2を使用することができます

Dim xmldom As New MSXML2.DOMDocument6.0 

代わりの

Dim xmldom As New MSXML2.DOMDocument40 
+3

:あなたはでMSXML 4またはMSXML 6に変数を変更をインストールすることができ

のいずれか。 XMLHTTP ")、インストールされている特定のバージョンについて心配する必要はありません。 –

関連する問題