Webden veri alma

1 2
24/08/2015, 17:01

idrisy

Sayın hocalarım; Ek teki dosyada web sayfasının belirli bir bölümü aldım ve oradaki verileri "aliste" formunda görebileceğiniz gibi verileri alabiliyorum ama "aliste1" formunda web sayfasının tamamını aldığımda hata veriyor. 
24/08/2015, 21:42

ozanakkaya

İlgili kodları aşağıdaki ile değiştiriniz.


    Dim IE As Object

   Dim HTML_Body As Object, HTML_Tables As Object, MyTable As Object
   Dim HTML_TableRows As Object
   Dim X, Y, Z As Integer
       
       Set IE = Me.WebBrowser1
       Set HTML_Body = IE.Document.All
       Set HTML_Tables = HTML_Body.tags("Table")
       Set MyTable = HTML_Tables(41)
       
       Set HTML_TableRows = MyTable.GetElementsByTagName("td")
       For Each MyRow In HTML_TableRows
         X = X + 1
       Next
       Z = (X - 8) / 8
       ReDim sorgu(8, Z - 1)
       
       X = 0
       For X = 0 To Z - 1
           Y = 1 + (1 * X)
           
           sorgu(0, X) = MyTable.Rows(Y).Cells(1).innerText
           sorgu(1, X) = MyTable.Rows(Y).Cells(2).innerText
           sorgu(2, X) = MyTable.Rows(Y).Cells(3).innerText
           sorgu(3, X) = MyTable.Rows(Y).Cells(4).innerText
           sorgu(4, X) = MyTable.Rows(Y).Cells(5).innerText
       
        Next X

   Dim rc As DAO.Recordset
   Set rc = CurrentDb.OpenRecordset("tliste1")
   
   X = 0
   
   For X = 0 To Z - 1
   
       rc.AddNew
           rc![tcno] = sorgu(0, X)
           rc![adi] = sorgu(1, X)
           rc![asyd] = sorgu(2, X)
           rc![okulno] = sorgu(3, X)
           rc![sinif] = Left(sorgu(4, X), InStr(1, sorgu(4, X), ".") - 1)
           rc![sube] = Left(Trim(Mid(sorgu(4, X), InStr(1, sorgu(4, X), "/") + 1)), 1)
           
       rc.Update
   Next X
   
   Set rc = Nothing
 
       GoTo SafeExit:
SafeExit:
   Set HTML_Body = Nothing
   Set HTML_Tables = Nothing
   Set MyTable = Nothing
   Set HTML_TableRows = Nothing
   Set HTML_TableDivisions = Nothing
   Set IE = Nothing
24/08/2015, 22:38

idrisy

Sayın ozanakkaya
Öncelikle ilginiz için teşekkür ederim. Kodları değiştirdim fakat çalışmadı. Örnek üzerinde yapmanız mümkün mü acaba?
24/08/2015, 23:32

ozanakkaya

2. mesajdaki kodu tekrar deneyiniz. Son mesajınız düzeltilmiştir. Mesajınızı alıntı içerisine yazmayınız.
25/08/2015, 11:50

idrisy

Sayın ozanakkaya; yardımların için teşekkür ederim. Veri aktarma işi çalışıyor. Alan ismini de alabilir miyiz acaba. Ayrıca aktarma bitince aktarma işleminin tamamlandığına dair mesajı nasıl verdirebiliriz?
25/08/2015, 12:23

atoz112

sayın idrisy,

bahsettiğiniz talebinize yönelik olarak;

Kod:
Next X

'... (kast edilen satır burasıdır)

Set rc = Nothing

satırları arasına

Kod:
Msgbox("aktarım tamamlanmıştır",vbInformation,"AKTARIM MESAJI"


gibi bir mesaj kod ifadesi yazabilirsiniz.bilginize.

iyi çalışmalar,saygılar.
1 2