डेटाबेस डेटा का उपयोग कर फ़ॉर्म को पूरा करने के लिए इंटरनेट एक्सप्लोरर 9 को नियंत्रित करने के लिए माइक्रोसॉफ्ट एक्सेस 2003 से ऑटोमेशन का उपयोग करने की कोशिश कर रहा हूं।वीबीए इनपुट इवेंट्स के साथ इंटरनेट एक्सप्लोरर ऑटोमेशन
इनपुट ब्राउज़र में एक ईवेंट को सक्रिय करता है जो डेटा को मान्य करता है और सहेजने वाला बटन दृश्यमान बनाता है। अगर मैं प्रेषक का उपयोग करता हूं तो ईवेंट ट्रिगर होता है; हालांकि, मुझे प्रेषक बहुत अविश्वसनीय पाए गए हैं। यदि मैं तत्व के मान को बदलता हूं और फिर .fireevent ("बदले") का उपयोग करता हूं, कुछ भी नहीं होता - यहां तक कि कोई त्रुटि भी नहीं।
मेरा सवाल है, मैं इस कार्यक्रम को कैसे फायर करूं। या, मैं कैसे पता लगा सकता हूं कि जावास्क्रिप्ट क्या चल रहा है। क्या आईई के लिए एक डीबग प्रकार का एडिन है जो मुझे बताएगा कि किस घटना को निकाल दिया गया है? यदि हां, तो क्या मैं सिर्फ स्क्रिप्ट चला सकता हूं?
मेरा कोड नीचे है।
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
इनपुट फ़ील्ड के HTML हैं:
<tr class="first" roomId="30494" articleId="0" type="Availability" readonly="False">
<div>
<span class="roomName">
Single Room
</span>
</div>
<span class="data">
<input id="Availabilities" name="Availabilities" type="text" value="" />
</span>
<span class="data">
<input id="Availabilities" name="Availabilities" type="text" value="" />
</span>
धन्यवाद!
चीयर्स कि मेरे लिए मददगार था – BlueTrin