• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü ADO rs.GetRows yöntemi

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

ERDAL

Gold Üye
Katılım
3 Nis 2021
Mesajlar
293
Çözümler
1
Aldığı beğeni
51
Excel V
Office 2013 TR
Gold Bitiş
21 Mart 2027
Konu Sahibi
ADO ile kurum bilgilerini güncelliyorum. Fakat çok yavaş çalışıyor. Bu verileri daha hızlı çekmek için ne yapılabilir. rs.GetRows yöntemini uygulamaya çalıştım ama yapamadım.
Bu konuda uzman hocalarımızın yardımlarını bekliyorum.

Yardımlarınız için şimdiden teşekkür ederim.

Verileri çektiğim kod;
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Kodda getrows kullanmamışsınız.
Örneğin bir diziye arr=rs.getrows(transposede kullanılabilinir) şeklinde alıp do until yapmaktan kurtulursunuz.Yada dediğim gibi diziye alıp verileride dictinonarye alıpta daha hızlanabilinir.
Ama herzamanki gibi dosya ekleme alışkanlığı olmadığı için hayali işlerle uğraşıyoruz.
Dosya eklerseniz yarın akşama bakarım tabii başka üstadlarda ilgilenir.

Artık dosya ekleyin kelimesini bize tekrar ettirmeyin abey(genel olarak)
 
Konu Sahibi
Hocam, örnek dosyaları ekledim
Gerçek veriler en az 30 bin satır
 
Konu Sahibi
Kodda getrows kullanmamışsınız.
Örneğin bir diziye arr=rs.getrows(transposede kullanılabilinir) şeklinde alıp do until yapmaktan kurtulursunuz.Yada dediğim gibi diziye alıp verileride dictinonarye alıpta daha hızlanabilinir.
Ama herzamanki gibi dosya ekleme alışkanlığı olmadığı için hayali işlerle uğraşıyoruz.
Dosya eklerseniz yarın akşama bakarım tabii başka üstadlarda ilgilenir.

Artık dosya ekleyin kelimesini bize tekrar ettirmeyin abey(genel olarak)
Hocam, dosyaları her sorumda eklemişimdir. Bu soruda unutmuşum.
 
Sayın Erdal çok daha hızlı kod yazımı gelecektir.
Benimkisi girizgah olsun.
Öğrenci Sayıları (Hedef) dosyasında listele butonuna tıklayın.
Ben yol değişkenini kendime uyarladım.
Siz de kendi dosyanıza uyarlayın.
Dener misiniz.
Kolay gelsin.
 
Konu Sahibi
Hocam, teşekkür ederim,
Gerçek dosya üzerinde denedim. Fakat olmayan kurumları da ekliyor. Ayrıca İlçe bilgilerini Tipi ve İlçe başlığına olmak üzere ikisinede getiriyor.
Yapmak istediğim; Eğer Kurum Kodu her iki dosya dada eşit ise belirtilen verilerin ilgili Kurum Kodunun karşısına getirmek.
 
Sayın Erdal
O zaman sizin sql sorgu cümlesinde
başvurduğunuz sütunlarda bir sıkıntı var.
Ben sizin sql sorgu tümcesini aynen kullandım.
Benim yaptığım
veri = Application.Transpose(rs.GetRows(rs.RecordCount)) ile
bu verileri diziye almak oldu.

Sonra da Öğrenci_Sayıları sayfasıyla karşılaştırmak.
O da basit bir kurgu. Sayfadaki kurum kodu veri dizisinde varsa
diğer şıkları al. Sayfada epeyce tekrarlı bilgi vardı ama
bunu örnek dosya diye sıkıntı olarak görmedim.
Mesela 8 tane 1235 kurum kodu var.
Zaten Kurum Kodu ve Tipi sütunlarını da silme koduna almamışsınız.
Ben de dokunmadım. Ya ben soruyu tam anlayamadım yada siz net ifade edemediniz.
 
Konu Sahibi
Hocam, tekrarlı veriler var, çünkü kurumun ne kadar sınıf/ şubesi varsa korum kodu ve adı o kadar tekrar ediyor. Bu raporun aslı böyle.
 
aşağıdaki kodu dener misiniz?
kodda dosya adı/ adresi, sayfa ve alan adları eklediğiniz dosyaya göreydi
kendi çalışmanıza uyarlamanız gerek
mesela kendi çalışmamda kaynak dosya hedef dosya ile aynı dizinde olduğundan kaynak dosya yolu
xKaynakDosya = ThisWorkbook.Path & "\Kayanak_Dosya.xlsx" şeklinde tanımlanmıştır
siz o adresi
yol = "C:\Users\ErdalOZDEMIR\Desktop\Kayanak_Dosya.xlsx" olarak düzenleyebilirsiniz yada kaynak dosya adı/adresi neyse ona göre
HTML:
SQL:
İçeriği görebilmek için Giriş yap ya da Üye ol.
sağolsun Refaz hocam belirttikten sonra fark ettim group by'ı eklemeyi unutmuşum. kodu ona göre yeniden düzenledim
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Son düzenleme:
Not : mobilden incelerken silmeyi unuttuğum gereksiz kodları görüp onları sildim. Dilerim kazara gerekli yerleri de silmemişimdir.
Not2 :koddaki vbnewline komutları aslında gereksiz, onları sorgunun ekran çıktısı daha anlaşılabilir olsun diye eklemiştim.
 
Son düzenleme:
aşağıdaki kodu dener misiniz?
kodda dosya adı/ adresi, sayfa ve alan adları eklediğiniz dosyaya göreydi
kendi çalışmanıza uyarlamanız gerek
mesela kendi çalışmamda kaynak dosya hedef dosya ile aynı dizinde olduğundan kaynak dosya yolu
xKaynakDosya = ThisWorkbook.Path & "\Kayanak_Dosya.xlsx" şeklinde tanımlanmıştır
siz o adresi
yol = "C:\Users\ErdalOZDEMIR\Desktop\Kayanak_Dosya.xlsx" olarak düzenleyebilirsiniz yada kaynak dosya adı/adresi neyse ona göre
HTML:
SQL:
İçeriği görebilmek için Giriş yap ya da Üye ol.
halily hocam excelde left joini böyle kullanmak başa belaydı bu yüzden hatırlarsanız beraberinde first kullanmıştık bir konuda bana yardım etmiştiniz :)
Benimde ilk aklıma sizinki gibi kullanmak gelmişti ama fazla sql bilmediğim için kapalı ve açık dosyada beraber aynı sorguda kullanmayı unutmuştum kodu görünce hatırladım :)
 
Konu Sahibi
Hocam, tekrarlı veriler var, çünkü kurumun ne kadar sınıf/ şubesi varsa korum kodu ve adı o kadar tekrar ediyor. Bu raporun aslı böyle.
Alternatif dictionary kullanıldı.
Kodları kopyala yapıştır yapınca belki Tr harfleri düzenlemeniz gerekecek.

HTML:
C#:
İçeriği görebilmek için Giriş yap ya da Üye ol.
Rafez Hocam, teşekkür ederim. Elinize emeğinize sağlık.
Tam istediğim gibi olmuş. Hızıda çok iyi.
Halil Hocam ve diğer yardımcı olmaya çalışan tüm arakadaşlara çok teşekkür ederim.

Rafez Hocam, Kapalı dosyadan ADO ile veri alırken her defasında dosyayı açıp sayfa adlarını değiştirmek zorundayım.
bu konuda ne yapabilirim.

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da Üye ol.
 
Konuyu Access de açtığınızı sonradan fark ettim. Eğer her iki dosyadaki tablolarınızı Access'e aktarabilirseniz, hiç kod yazmadan tabloyu güncelleye bilir, Excel olarak dışa aktarabilirsiniz.
 
Kapalı dosyadan ADO ile veri alırken her defasında dosyayı açıp sayfa adlarını değiştirmek zorundayım.
bu konuda ne yapabilirim.
Rica ederim.
Bunun için yeni konu açmanız gerek çünkü anlamadım.
Doğru anladıysam kapalı exceli hiç açmadan Ado ile sayfa adları alınıyor bunu uygularız.
Yada kapalı dosyadaki excelin sayfa adını exceli açmadan değiştirmek istiyorsanız bilmiyorum hiç uğraşmadım.
Kolay gelsin.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst