Automação do Internet Explorer com eventos de entrada do VBA

Estou tentando usar a automação do Microsoft Access 2003 para controlar o Internet Explorer 9 para concluir um formulário usando dados do banco de dados.

A entrada dispara um evento no navegador que valida os dados e torna visível o botão salvar. Se eu usar sendkeys, o evento é acionado; no entanto, eu encontrei sendkeys para ser muito confiável. Se eu alterar o valor do elemento e, em seguida, usar .fireevent ("onchange"), nada acontece - nem mesmo um erro.

Minha pergunta é: como faço para disparar o evento? Ou, como posso descobrir o que o javascript está executando. Existe um tipo de depuração do addin para o IE, que me dirá qual evento é disparado? Em caso afirmativo, posso apenas executar o script sozinho?

Meu código está abaixo.

<code>    Set IE = CreateObject("internetexplorer.application")
IE.Visible = True
IE.Navigate "https://extranet.website.com/Planning/Edition/Periodic?language=en"

Do While IE.ReadyState <> 4 Or IE.Busy = True
    DoEvents
Loop


'log in
If IE.Document.Title = "website- access" Then
    IE.Document.getElementById("login_uid").Value = "username"
    IE.Document.getElementById("login_pwd").Value = "password"
    IE.Document.all("ButSubmit").Click
    Do While IE.ReadyState <> 4 Or IE.Busy = True
        DoEvents
    Loop
End If

Do While Not RstAvailability.EOF
    StartDate = RstAvailability!AvailDate
    IE.Document.getElementById("periodStart").Value = Format(StartDate, "dd mmm yy")
    IE.Document.getElementById("periodEnd").Value = Format(StartDate, "dd mmm yy")
    Set LinkCollection = IE.Document.GetElementsByTagName("A")
    For Each link In LinkCollection
        If link.innertext = "Add" Then
            link.Click
            Exit For
        End If
    Next
    Do While IE.ReadyState <> 4 Or IE.Busy = True
        DoEvents
    Loop


    Set objRows = IE.Document.GetElementsByTagName("tr")
    If RstAvailability!RoomType = "DTW" Then
        n = 0
        While n < objRows.Length
            If Trim(objRows(n).Cells(0).innertext) = "Single Room" Then
                For i = 1 To 7
                    'objRows(n).FireEvent ("onchange")
                    'objRows(n).Cells(i).GetElementsByTagName("input")(0).Focus
                    'SendKeys Format(RstAvailability!roomcount - RstAvailability!RoomsSold, "0") & "{TAB}"
                    objRows(n).Cells(i).GetElementsByTagName("input")(0).Value = Format(RstAvailability!roomcount - RstAvailability!RoomsSold, "0")
                    objRows(n).Cells(i).GetElementsByTagName("input")(0).fireevent ("onchange")
                    Do While IE.ReadyState <> 4 Or IE.Busy = True
                        DoEvents
                    Loop
                 Next i
            End If
            n = n + 1
        Wend
    End If

    Set objButtons = IE.Document.getelementsbyname("savePlanning")
    objButtons(0).Click

    Do While IE.ReadyState <> 4 Or IE.Busy = True
        DoEvents
    Loop

    newtime = Now + TimeValue("0:00:10")
    Do While True
        If Now > newtime Then Exit Do
    Loop

    RstAvailability.MoveNext
Loop
</code>

O html dos campos de entrada são:

<code><tr class="first" roomId="30494" articleId="0" type="Availability" readonly="False">
</code>

<code><div>

  <span class="roomName">

    Single Room

  </span>



</div>
</code>

<code><span class="data">
</code>

<code><input id="Availabilities" name="Availabilities" type="text" value="" />
</code>

<code></span>
</code>

<code><span class="data">
</code>

<code><input id="Availabilities" name="Availabilities" type="text" value="" />
</code>

<code></span>
</code>

Obrigado!

questionAnswers(2)

yourAnswerToTheQuestion