Komutları birleştirme

22/12/2010, 09:30

silka

Hayırlı günler saygıdeğer hocalarım.
Üzerinde çalıştığım bir program var ve butonlarla şifreli bir web sayfasından veri alıyorum. Yalnız bunu yapmak için 4 butona sırasıyla tıklama yapmam gerekiyor. Bunun nedeni de web sayfasındaki linklerin açılma süreleri. Mesela 1.ye tıklayıp hemen 2.tıklarsam bazen hata veriyor. çünkü linki açmamış oluyor. Acaba bu olayı tek butona veya azamiye indirme imkanımız ve aralarına süre olayı koyma durumumuz olabilirmi? Komutlar sırasıyla aşağıdadır.
1.
Private Sub Komut84_Click()
WebBrowser1.Navigate2 "https://kps.nvi.gov.tr/Mernis.KPS.Web.UI/QueryResidanceAddressFromIdentificationNumber.aspx"
End Sub
2.
Private Sub Komut83_Click()
WebBrowser1.Document.All("inputList_ctl01_input0").Value = Me.TC
WebBrowser1.Document.All("ctlList").Click
End Sub
3.
Private Sub Komut87_Click()
WebBrowser1.Document.getElementById("Grid_ctl02_Imagebutton1").Click
End Sub
4.
Private Sub Komut96_Click()
On Error GoTo Err_Komut96_Click
Me.MAH.Value = WebBrowser1.Document.All("ctlAddressInformation_ctlMahalle").innerText
Me.SOKAK.Value = WebBrowser1.Document.All("ctlAddressInformation_ctlCsbm").innerText
Me.DIS.Value = WebBrowser1.Document.All("ctlAddressInformation_ctlDisKapiNo").innerText
Me.IC.Value = WebBrowser1.Document.All("ctlAddressInformation_ctlIcKapiNo").innerText
Me.ADRES.Value = Me.MAH.Value & " " & Me.SOKAK.Value & " " & "N:" & Me.DIS.Value & "/" & Me.IC.Value
If Me.ADRES.Value = Me.ADRES2 Then
MsgBox "Adres Bilgileri Günceldir."
Else
MsgBox Me.ADRES.Value
If MsgBox("Adres Bilgilerinde Farklılıklar vardır. Güncelleme yapmak istiyormusunuz.", vbYesNo + vbQuestion) = vbYes Then
Me.ADRES2 = Me.ADRES
Exit_Komut96_Click:
Exit Sub

Err_Komut96_Click:
MsgBox "Kişinin Resmi Adresi İlçeniz Sınırlarında değildir."
Resume Exit_Komut96_Click
End If
End If
End Sub
Web sayfası sizlerde açmaz çünkü sadece ip üzerinden açıyor.
22/12/2010, 11:22

mehmetdemiral

Bu sıralarda her örnekte bekleme ihtiyacı oluşuyor nedense
Bir fonksiyon yazın ve kodların arasına yerleştirin.
Kod:
Public Sub Bekle(süre As Double)
Dim baslama
baslama = Timer
Do While Timer < baslama + süre
    DoEvents
Loop
End Sub

artık kodlarınız arasında bekle(2) gibi süre vererek beklemeleri sağlayabilirsiniz. Örneğin:

Kod:
Private Sub Komut84_Click()
WebBrowser1.Navigate2 "https://kps.nvi.gov.tr/Mernis.KPS.Web.UI/QueryResidanceAddressFromIdentificationNumber.aspx"
End Sub

bekle(4)

Private Sub Komut83_Click()
WebBrowser1.Document.All("inputList_ctl01_input0").Value = Me.TC
WebBrowser1.Document.All("ctlList").Click
End Sub

bekle(5)

Private Sub Komut87_Click()
WebBrowser1.Document.getElementById("Grid_ctl02_Imagebutton1").Click
End Sub

gibi... Gerçi her sub satırı kodları otomatik olarak bölümleyecek ve tek bir sub altında olmayacaktır ama pratikte nasıl uygulanır denemedim -çünkü örnek vermemişsiniz- ama yazdıklarım bir fikir verir umarım.

Bu arada belirteyim ki daha önce buna benzer bir çalışmayı daha farklı bir şekilde yapmıştım. Webden gelen veriyi bir metin kutusuna gönderdim ve o metin kutusunun sıfır ya da null özelliği kalmadığından bu durumu kullanarak if...then ile diğer eylemi başlattım. Sanıyorum tc kimlik doğrulama ile ilgili bir örnekti. Aile hekimliği sayfasını kullanmıştım. "Eskisi çalışmaz" diye arayabilirsiniz.
Kolay gelsin.
22/12/2010, 15:34

silka

sağolun hocam bu bekle komutu işimi çözdü ellerinize sağlık.