webden veri alırken değişken tablolar?
Tarih
28/08/2012 11:36
Konu Sahibi
kadirdursun
Yorumlar
3
Okunma
1442
Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 5
  • 4
  • 3
  • 2
  • 1

Derecelendirme: 0/5 - 0 oy



kadirdursun

Kullanici Avatari
Özel Üye
K.... D....
1.228
12/01/2009
86
İstanbul
Ofis 2010 32 Bit
01/12/2016,16:48
konunun öncesi aşağıdaki linkde var.

http://www.accesstr.net/konu-webden-bilgi-alma.html

sayın ozanakkaya bu konuda çok yardımcı olmuştunuz. sorum şu aşağıdaki kodda veri almaya çalıştığım sitede personelin bilgileri bulunmakta. sayfalarca veri var ve her sayfada 20 personel sıralanmakta. Her personel için ayrı ayrı tablolar yapılmış. 1. personelin tablo nosu 22; ikincisi 24.... şeklinde 2 atlamalı gidiyor. tek personel için aşağıdaki kod çalışıyor. her seferinde tablo nosunu değiştirip veri almak çok akıllıca değil, elle yazmak daha kolay gelir Img-grin aynı sayfada bulunan 20 personel içinde kodu çalıştırmam için nasıl bir döngü yapmalıyım?


Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Private Sub Komut128_Click()

 
 
 On Error Resume Next
 Dim IE As Object
 Dim HTML_Body As Object, HTML_Tables As Object, MyTable As Object
 Dim HTML_TableRows As Object
 Dim RetVal As Variant, X, a As Integer, SATIRSAYISI As Integer


 
 
 
 Set IE = Me.WebBrowser1
 Set HTML_Body = IE.Document.All
 Set HTML_Tables = HTML_Body.tags("Table")
 Set MyTable = HTML_Tables(22)
 Set HTML_TableRows = MyTable.GetElementsByTagName("tr")
 
If IE.Document.All.tags("table").Item(22).Rows(0).Cells(0).innerText <> RAPORADI.Caption Then
DoCmd.OpenForm "RAPOR_UYARI"
Else
 
 
 
 For Each MyRow In HTML_TableRows
 X = X + 1
 Next
 
 SATIRSAYISI = (X - 1) / 1 '(X - 10) / 2
 
 ReDim Sorgu(10, SATIRSAYISI - 1)
 
 X = 0
 For X = 0 To SATIRSAYISI - 1
 a = 0 + (1 * X)
 
 Sorgu(X, 0) = MyTable.Rows(a).Cells(1).innerText
 Sorgu(X, 1) = MyTable.Rows(a).Cells(1).innerText
 Sorgu(X, 2) = MyTable.Rows(a).Cells(1).innerText
 Sorgu(X, 3) = MyTable.Rows(a).Cells(1).innerText
 Sorgu(X, 4) = MyTable.Rows(a).Cells(1).innerText
 Sorgu(X, 5) = MyTable.Rows(a).Cells(1).innerText
 Sorgu(X, 6) = MyTable.Rows(a).Cells(1).innerText
 Sorgu(X, 7) = MyTable.Rows(a).Cells(1).innerText
 Sorgu(X, 8) = MyTable.Rows(a).Cells(1).innerText
 Sorgu(X, 9) = MyTable.Rows(a).Cells(1).innerText
 
 
 
 Next X
 
 strSQL = "SELECT * FROM PORTAL "
 Set rstkayit = New ADODB.Recordset
 rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
 
 X = 0
 
 For X = 0 To SATIRSAYISI - 1
 
 With rstkayit
 .Find "[SICIL]='" & Sorgu(1, X) & "'"
 If Not rstkayit.EOF Then
 'If MsgBox("" & Sorgu(0, X) & " . AY VERİSİ DAHA ÖNCEDEN KAYIT EDİLMİŞ.Metin Güncellensin mi?", 51, "Kaydediliyor....") = 6 Then
 
 .Fields("ADI") = Sorgu(0, X)
 .Fields("SICIL") = Sorgu(1, X)
 .Fields("UNVAN") = Sorgu(2, X)
 .Fields("GOREVISYERI") = Sorgu(3, X)
 .Fields("MAKAM") = Sorgu(4, X)
 .Fields("BASKANLIK") = Sorgu(5, X)
 .Fields("MUDURLUK") = Sorgu(6, X)
 .Fields("SEFLIK") = Sorgu(7, X)
 .Fields("ISYERI") = Sorgu(8, X)
 .Fields("DAHILI") = Sorgu(9, X)
 .Fields("MAIL") = Sorgu(10, X)
 
 
 .Update
 ' Else
 ' Exit Sub
 ' End If
 Else
 .AddNew
 .Fields("ADI") = Sorgu(0, X)
 .Fields("SICIL") = Sorgu(1, X)
 .Fields("UNVAN") = Sorgu(2, X)
 .Fields("GOREVISYERI") = Sorgu(3, X)
 .Fields("MAKAM") = Sorgu(4, X)
 .Fields("BASKANLIK") = Sorgu(5, X)
 .Fields("MUDURLUK") = Sorgu(6, X)
 .Fields("SEFLIK") = Sorgu(7, X)
 .Fields("ISYERI") = Sorgu(8, X)
 .Fields("DAHILI") = Sorgu(9, X)
 .Fields("MAIL") = Sorgu(10, X)
 
 
 .Update
 End If
 
 End With
 Next
 
 
 Set rstkayit = Nothing
 Me![PERSONEL_alt_formu].Requery
 
 GoTo SafeExit:
 'ErrHandler:
SafeExit:
 Set HTML_Body = Nothing
 Set HTML_Tables = Nothing
 Set MyTable = Nothing
 Set HTML_TableRows = Nothing
 Set HTML_TableDivisions = Nothing
 Set IE = Nothing



End If



End Sub


özür dilerim yanlış yere açmışım konuyu.
doğru yere tekrardan oluşturdum.
kusuruma bakmayın.
Hayat bu
ölsende yaşamaya mecbursun!
UNUTMA!!!


http://www.isciler-iski.com
http://www.universiteliisciler.com

(hafta sonu mesai olmadığından mesajlardaki çözümleri ancak hafta içi uygulayabiliyorum)
Cevapla


kadirdursun

Kullanici Avatari
Özel Üye
K.... D....
1.228
12/01/2009
86
İstanbul
Ofis 2010 32 Bit
01/12/2016,16:48
1. mesajdaki kodun 9. satırına y değişkeni ekledim.

Dim RetVal As Variant, X, a, Y As Integer, SATIRSAYISI As Integer

13 satırına da

For Y = 22 To 60 Step 2

kodunu ekledim ve
21 ve 24. satırlardaki 22 yerine y yazdım
birde en sona
126. satıra
next y yazdım.
sayfadaki 20 personelinde bilgisini alıyor fakat bu seferde extradan satırlar açıyor. bir sayfa için 1900-2200 arası satır açıyor bu satırların yanlızca 20 tanesi dolu. diğer sayfaya geçince yine aynı durum yani 2 sayfa veride nerdeyse 5000 satır açıyor. bunu nasıl engellerim?



Visual Basic Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Private Sub Komut128_Click()

 
 
            On Error Resume Next
                Dim IE As Object
                Dim HTML_Body As Object, HTML_Tables As Object, MyTable As Object
                Dim HTML_TableRows As Object
                Dim RetVal As Variant, X, a, Y As Integer, SATIRSAYISI As Integer


        
 For Y = 22 To 60 Step 2

 

                
                Set IE = Me.WebBrowser1
                Set HTML_Body = IE.Document.All
                Set HTML_Tables = HTML_Body.tags("Table")
                Set MyTable = HTML_Tables(Y)
                Set HTML_TableRows = MyTable.GetElementsByTagName("tr")
                
'If IE.Document.All.tags("table").Item(Y).Rows(0).Cells(0).innerText <> RAPORADI.Caption Then
'DoCmd.OpenForm "RAPOR_UYARI"
'Else
                        
                
                
                    For Each MyRow In HTML_TableRows
                        X = X + 1
                    Next
                    
                    SATIRSAYISI = (X - 1) / 1 '(X - 10) / 2
                    
                    ReDim Sorgu(10, SATIRSAYISI - 1)
                    
                    
                    X = 0
                    For X = 0 To SATIRSAYISI - 1
                        a = 0 + (1 * X)
                        
                            Sorgu(X, 0) = MyTable.Rows(a).Cells(1).innerText
                            Sorgu(X, 1) = MyTable.Rows(a).Cells(1).innerText
                            Sorgu(X, 2) = MyTable.Rows(a).Cells(1).innerText
                            Sorgu(X, 3) = MyTable.Rows(a).Cells(1).innerText
                            Sorgu(X, 4) = MyTable.Rows(a).Cells(1).innerText
                            Sorgu(X, 5) = MyTable.Rows(a).Cells(1).innerText
                            Sorgu(X, 6) = MyTable.Rows(a).Cells(1).innerText
                            Sorgu(X, 7) = MyTable.Rows(a).Cells(1).innerText
                            Sorgu(X, 8) = MyTable.Rows(a).Cells(1).innerText
                            Sorgu(X, 9) = MyTable.Rows(a).Cells(1).innerText
                       
                     
                     
                     Next X
                     
                     
                     
            strSQL = "SELECT * FROM PORTAL "
            Set rstkayit = New ADODB.Recordset
            rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            
             X = 0
                
                For X = 0 To SATIRSAYISI - 1
            
            With rstkayit
                        .Find "[SICIL]='" & Sorgu(1, X) & "'"
                If Not rstkayit.EOF Then
               'If MsgBox("" & Sorgu(0, X) & " . AY VERİSİ DAHA ÖNCEDEN KAYIT EDİLMİŞ.Metin Güncellensin mi?", 51, "Kaydediliyor....") = 6 Then
            
                                .Fields("ADI") = Sorgu(0, X)
                                .Fields("SICIL") = Sorgu(1, X)
                                .Fields("UNVAN") = Sorgu(2, X)
                                .Fields("GOREVISYERI") = Sorgu(3, X)
                                .Fields("MAKAM") = Sorgu(4, X)
                                .Fields("BASKANLIK") = Sorgu(5, X)
                                .Fields("MUDURLUK") = Sorgu(6, X)
                                .Fields("SEFLIK") = Sorgu(7, X)
                                .Fields("ISYERI") = Sorgu(8, X)
                                .Fields("DAHILI") = Sorgu(9, X)
                                .Fields("MAIL") = Sorgu(10, X)
                                                        
                        
                .Update
               ' Else
              ' Exit Sub
               ' End If
               Else
                .AddNew
                                .Fields("ADI") = Sorgu(0, X)
                                .Fields("SICIL") = Sorgu(1, X)
                                .Fields("UNVAN") = Sorgu(2, X)
                                .Fields("GOREVISYERI") = Sorgu(3, X)
                                .Fields("MAKAM") = Sorgu(4, X)
                                .Fields("BASKANLIK") = Sorgu(5, X)
                                .Fields("MUDURLUK") = Sorgu(6, X)
                                .Fields("SEFLIK") = Sorgu(7, X)
                                .Fields("ISYERI") = Sorgu(8, X)
                                .Fields("DAHILI") = Sorgu(9, X)
                                .Fields("MAIL") = Sorgu(10, X)
                       
            
                .Update
            End If
           
            End With
            Next
           
      
                Set rstkayit = Nothing
               Me![PERSONEL_alt_formu].Requery
                
                    GoTo SafeExit:
            'ErrHandler:
SafeExit:
                Set HTML_Body = Nothing
                Set HTML_Tables = Nothing
                Set MyTable = Nothing
                Set HTML_TableRows = Nothing
                Set HTML_TableDivisions = Nothing
                Set IE = Nothing

 
Next Y

'End If





End Sub

Hayat bu
ölsende yaşamaya mecbursun!
UNUTMA!!!


http://www.isciler-iski.com
http://www.universiteliisciler.com

(hafta sonu mesai olmadığından mesajlardaki çözümleri ancak hafta içi uygulayabiliyorum)
Cevapla


ozanakkaya
sledgeab
Kullanici Avatari
Kurucu
O.... A....
9.011
29/01/2008
Denizli
Memur
Ofis 2010 32 Bit
Bugün,04:55
sayfaya ait Html kodlarını eklerseniz yardımcı olmaya çalışırım.
Cevapla


ozanakkaya
sledgeab
Kullanici Avatari
Kurucu
O.... A....
9.011
29/01/2008
Denizli
Memur
Ofis 2010 32 Bit
Bugün,04:55
Bu problem ile ilgili örnek uygulamanızı ekleyiniz.
Cevapla







Konuyu Okuyanlar: 1 Ziyaretçi


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Tarih Son Yorum
  çapraz sorgudan rapora değişken sütün başlıkları mhmtogz 0 918 20/06/2014, 17:57 mhmtogz
  Visual Basic Access Veritabanında Alanlara Değişken Tanımlama --ZaGoR-- 0 1.757 11/04/2012, 15:53 --ZaGoR--
  Tablolar Arası Veri Çağırma cevocan 3 938 10/11/2011, 00:04 ozanakkaya
  Tablolar arasında ilişkiyi form'da gösteremiyorum iterlemez 0 988 02/06/2011, 13:43 iterlemez
  Oluşturduğum Veri Tabanında hata Yeni Veri girerken hata 2950 roman_35 10 1.842 05/03/2011, 05:29 ozanakkaya


Türkçe Çeviri: MCTR, Forum Yazılımı: MyBB, © 2002-2016 MyBB Group.
DMCA.com Protection Status
© Desing by XSTYLED| Develops by ozanakkaya