私はこれで頭がいっぱいです。
私が取り組んでいるプロジェクトの一部では、HTML フォームとやり取りして、外部の Web ベースのツールで正しいページを表示する必要があります。このフォームが入力された変数を受け入れ、document.write を使用してオンザフライで生成されるようにすることができましたが、エラー 91 を発生させない方法で「送信」アクションをトリガーすることを確実に行うことができませんでした。 .
これまでのところ、単純な getelementbyid.click 呼び出しを使用してきました...これをトリガーするために試みたいくつかのことのリストを次に示します。
TestLoop:
Pause (1)
BrowserControl.document.getelementbyid("Submit").click
On Error Goto TestLoop
*(「エラー ループ」戦術は実際にはまったく機能しませんでした。)
Pause (3)
BrowserControl.document.getelementbyid("Submit").click
(実際にはこれが最もうまく機能しますが、PC によってハードウェア仕様が異なり、開いているアプリケーションが遅くなる可能性があるため、別のテスターでは機能していても、別のテスターでは機能していませんでした。遅すぎることをすでに心配している形に遅らせる.)
<script type="text/javascript">
window.onload = function(){
document.getElementById('Submit').click();;
}
</script>
(イライラすることに、生成された HTML に自動トリガーを埋め込むと、埋め込まれた Web ブラウザー コントロールの外部では機能しますが、内部では機能しません。)
Private Sub wb_NavigateComplete2(ByVal pDisp As Object, URL As Variant)
If Me.BrowserControl.Document.URL= "about:blank" Then
BrowserControl.document.getelementbyid("Submit").click
End If
End Sub
(なんらかの非常識な理由で、debug.print を使用して、実際に完了する前にナビゲーションが完了していると言っていることがわかったので、これはまったく機能しませんでした。)
私はいくつかを逃したかもしれません.私はこれをさまざまな角度から攻撃してきました. トリックは、私が管理者特権を持っていないこのシステムと対話するために HTML フォームを使用する必要があることです。そのため、情報の受信方法を変更することは実際にはオプションではありません。
私の最終的な考えは、「クリック」イベントの必要性をバイパスして、ストレート VB を使用して FORM 送信を模倣できるかどうかを確認することでしたが、Access 2007 フォームとの HTML FORM 相互作用に関連するものを検索することは非常に困難でした。:P
どんな援助でも大歓迎です!