Çözüldü SQL hızlı veri çekmek

Bu sorun verilen destek sayesinde çözüme ulaştırılmıştır.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

dogan.importexport

Yeni Üye
Kullanıcı Bilgileri
Katılım
9 Eyl 2021
Mesajlar
206
Çözümler
2
Aldığı beğeni
17
Excel Versiyonu
Office 365 TR
Konuyu Başlatan
Arkadaşlar excele sql den veri çekiyorum ama o kadar çok veri oldu ki artık çok yavaş çekmeye başladı. Tabi buda hızlansın diye yapılan iş daha da yavaş hal aldı. Hızlı aktarım yapmanın bir yolu yokmudur. Ben genel de tüm tablolarda aşağıdaki kodları kullanıyorum.

C++:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 
Çözüm
aşağıdaki dosyayı dener misiniz bende sorunsuz çalışıyor sadece
ServerName = "HALIL\SQLEXPRESS"
DatabaseName = "MikroDB_V16_FIRATOZEL" alanları sizdeki tanımlara göre değişmeli başka bir şey değişmeyecek
eğer bu da çalışmazsa aklıma başka bir şey gelmiyor
dediğim gibi sadece
ServerName ve DatabaseName değişecek başka bir şey değil

halily

Destek Ekibi
Kullanıcı Bilgileri
Katılım
29 Ağu 2021
Mesajlar
1,908
Çözümler
258
Aldığı beğeni
1,868
Excel Versiyonu
Office 2019 TR
dediğim gibi siz orijinal tablo adı ve alanlarıyla excel dosyanızı ekleyin, excele nasıl alması gerektiğini açıklayın biz de çalışmaya bir an önce başlayalım.
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,177
Çözümler
497
Aldığı beğeni
3,915
Excel Versiyonu
Office 2021 TR
Örnek olarak alttaki gibi redim yönetmiyle hızlanabilir.

CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,177
Çözümler
497
Aldığı beğeni
3,915
Excel Versiyonu
Office 2021 TR
Üstad sıralı gitmiyor. SQL de çok fazla kolon var. Aslında yavaşlatan olay bakiye ve B - A kısmını sayfa içinde yaptığım manuel formul yapıyor. Ve çok seri evrak girdiği için 25 000 SATIR veri var ise ben mecbur 27-28 000 formül yapmak zorunda kalıyorum. Çünki her seferinde formül ekleyemem. Bakiye ve B A olayını makrolu yapabilirseniz daha da hızlanır
Sheet21 de ve frmrcekstre formunda işlem yapıldı.
Diğerlerinide böyle yapabilirsiniz.

Alttaki gibi kod yazdım formülden kurtulmak için.

CSS:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 

Ekli dosyalar

  • SQL VERİ HIZLANDIRMA 1.7z
    1.3 MB · Gösterim: 4

dogan.importexport

Yeni Üye
Kullanıcı Bilgileri
Katılım
9 Eyl 2021
Mesajlar
206
Çözümler
2
Aldığı beğeni
17
Excel Versiyonu
Office 365 TR
Konuyu Başlatan

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,177
Çözümler
497
Aldığı beğeni
3,915
Excel Versiyonu
Office 2021 TR
Kendi dosyanıza sadece yazdığım forumdaki kodları ekleyin
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,177
Çözümler
497
Aldığı beğeni
3,915
Excel Versiyonu
Office 2021 TR
Birde veritabanı adı kodda var const ile olanda.global alanda olduğju için altçizgi(_) bunu boşluk olarak gösteriyor EĞER vt adı yazacksanız abey.
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Bu döngü neredeyse 40 SATIR arasından seçildi ama. sizin kodlarınızı koyarsam bu sefer diğerleride mecburen sayfaya gelecek bu sefer çok farklı düzenlemeler yapmış olacağım yanılıyormuyum. Kolonları seçtim çünki çok fazla olduğu için
Ne değişecek orasını pek anlayamadım. Copyfromrecordset de aynı şeyi yapmış olmayacak mı?
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,177
Çözümler
497
Aldığı beğeni
3,915
Excel Versiyonu
Office 2021 TR
Ne değişecek orasını pek anlayamadım. Copyfromrecordset de aynı şeyi yapmış olmayacak mı?
Abey bizde diyoruz ama 40 kolon oldoğu için uğraşmak istemiyor abey :)
Select *
Bununla tümünü aldırıyor copy ile yaparsa tümü alınır ama istenilen bu tümünden bazılarını almak.Bunun içinde ya dögü yada select içine [alan adları] yazıp copy ile çekmek benim bildiğim
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Abey bizde diyoruz ama 40 kolon oldoğu için uğraşmak istemiyor abey :)
Select *
Bununla tümünü aldırıyor copy ile yaparsa tümü alınır ama istenilen bu tümünden bazılarını almak.Bunun içinde ya dögü yada select içine [alan adları] yazıp copy ile çekmek benim bildiğim
Döngü içinde 40 SATIR kod yazmak mı? Select ile 40 tane alan adı yazmak mı daha pratik sizce?

Fikirlere saygı duyarım ama böyle bir yöntem ile sadece select sorgusuna alan adlarını yazmak dururken değişken tanımlamak değişkeni döngüye almak, döngü içinde SATIR SATIR her bir sütunun veri kopyalama kodunu yazmak çok daha zor geliyor bana. Copy + Paste bile yapsak yine de tek tek o kolon numaraları değişecek.

dogan.importexport
Sorgu yaptığınız sql veritabanı express mi yoksa lisanslı bir sürüm mü kullanıyorsunuz? Express ise bildiğim kadarıyla belli kısıtlamalar söz konusu. Lisanslı bir program kullanıyorsanız böyle bir şey olmaması gerek.
 

aeGNoR

Destek Ekibi
Kullanıcı Bilgileri
Katılım
10 Mar 2021
Mesajlar
772
Çözümler
98
Aldığı beğeni
867
Excel Versiyonu
Office 2021 TR
Üstad sıralı gitmiyor. SQL de çok fazla kolon var. Aslında yavaşlatan olay bakiye ve B - A kısmını sayfa içinde yaptığım manuel formul yapıyor. Ve çok seri evrak girdiği için 25 000 SATIR veri var ise ben mecbur 27-28 000 formül yapmak zorunda kalıyorum. Çünki her seferinde formül ekleyemem. Bakiye ve B A olayını makrolu yapabilirseniz daha da hızlanır
SQL deki kolon sıranız ile excel üzerindeki kolon sıranız aynı olmak zorunda değil.

Örnek olarak 5 alan adı olduğunu varsayalım
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
gibi bir örnekte seçiminize göre alacaklar kolonları recordset nesnesinin içine yani sırasıyla 5.alan, 3.alan, 4.alan, 1.alan şeklinde gelecektir.
Yine de her durumda Alan adlarını seçmek en mantıklısı. Sizi döngüden kurtaracak yöntem bu.

Ayrıca hangi mesajınızdı hatırlamıyorum, "excel tarafında sorun yok SQL de çok fazla veri olduğu için SQL üzerinden veriyi alırken çok yavaş alıyor" dediğinizi hatırlıyorum. Fakat bu mesajınızda 27.000-28.000 formül olduğundan bahsediyorsunuz.
Sayfanızda o kadar formül varken yavaşlama için başka sebep aramaya gerek yok. Yine de sizin takdiriniz tabi.

Bakiye hesaplatmak için örnek bir tablonuz var mı peki?
 

Refaz

Destek Ekibi
Kullanıcı Bilgileri
Katılım
11 Ağu 2021
Mesajlar
4,177
Çözümler
497
Aldığı beğeni
3,915
Excel Versiyonu
Office 2021 TR
Döngü içinde 40 SATIR kod yazmak mı? Select ile 40 tane alan adı yazmak mı daha pratik sizce?

Fikirlere saygı duyarım ama böyle bir yöntem ile sadece select sorgusuna alan adlarını yazmak dururken değişken tanımlamak değişkeni döngüye almak, döngü içinde SATIR SATIR her bir sütunun veri kopyalama kodunu yazmak çok daha zor geliyor bana. Copy + Paste bile yapsak yine de tek tek o kolon numaraları değişecek.

dogan.importexport
Sorgu yaptığınız sql veritabanı express mi yoksa lisanslı bir sürüm mü kullanıyorsunuz? Express ise bildiğim kadarıyla belli kısıtlamalar söz konusu. Lisanslı bir program kullanıyorsanız böyle bir şey olmaması gerek.
Konu koptu gitti zaten abey.Neyin ne olduğuda karıştı,biz kendi kendimize gelin güvey oluyoruz.Tek tek değişken eklemeyede gerek yok esasen döngü için.
Fieldsname gibi olaylarlada döngü yapılabilir EĞER sql server içinde kullanılabiliyorsa.
 

halily

Destek Ekibi
Kullanıcı Bilgileri
Katılım
29 Ağu 2021
Mesajlar
1,908
Çözümler
258
Aldığı beğeni
1,868
Excel Versiyonu
Office 2019 TR
aeGNoR hocam ben express kullanıyorum onda da istediğimiz sütunları çekip koşul ekleyip iif gibi fonksiyonları kullanabiliyoruz, yani o açıdan sıkıntı yok, yani en mantıklısı sizin belirttiğiniz gibi copyfromrecordset ama maalesef ekli dosyada neyin serverdan alınıp neyin alınmadığı, hangi işlemlerin neye göre yapıldığı belli değil
mesela sayfa26da B / A alanı, sayfa26 sunucudaki bir tablodan mı alınacak yoksa yerel excel dosyası mı belli değil.
 

dogan.importexport

Yeni Üye
Kullanıcı Bilgileri
Katılım
9 Eyl 2021
Mesajlar
206
Çözümler
2
Aldığı beğeni
17
Excel Versiyonu
Office 365 TR
Konuyu Başlatan
SQL deki kolon sıranız ile excel üzerindeki kolon sıranız aynı olmak zorunda değil.

Örnek olarak 5 alan adı olduğunu varsayalım
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
gibi bir örnekte seçiminize göre alacaklar kolonları recordset nesnesinin içine yani sırasıyla 5.alan, 3.alan, 4.alan, 1.alan şeklinde gelecektir.
Yine de her durumda Alan adlarını seçmek en mantıklısı. Sizi döngüden kurtaracak yöntem bu.

Ayrıca hangi mesajınızdı hatırlamıyorum, "excel tarafında sorun yok SQL de çok fazla veri olduğu için SQL üzerinden veriyi alırken çok yavaş alıyor" dediğinizi hatırlıyorum. Fakat bu mesajınızda 27.000-28.000 formül olduğundan bahsediyorsunuz.
Sayfanızda o kadar formül varken yavaşlama için başka sebep aramaya gerek yok. Yine de sizin takdiriniz tabi.

Bakiye hesaplatmak için örnek bir tablonuz var mı peki?
Üstad lisanslı SQL. Ayrıca alan adı yazmak daha mantıklı ilk etapta anlayamamıştım. ama sonradan fark ettim. Formül kısmını Refaz arkadaş çözdü şimdi biraz daha rahatladı. sıra sizin dediğinize geldi veri dediğim alanıda geçti şuan 37 binlerde ve bu her saat artıyor. Access den bağlanabilsem accesse çekecem veriyi daha seri olması için ama başa dönmüş olacağım karar veremedim. Ve access çok fazla bilmiyorum
 

halily

Destek Ekibi
Kullanıcı Bilgileri
Katılım
29 Ağu 2021
Mesajlar
1,908
Çözümler
258
Aldığı beğeni
1,868
Excel Versiyonu
Office 2019 TR
RCekstre sayfasına veri alma yordamı
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
userformdaki Listbox2 için veri alma fonksiyonu
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
UserForm_Initialize olayı
Kod:
Değerli Misafirimiz İçeriği Görebilmek İçin Üyemiz İseniz Giriş Yap'ın Ya da Üye Ol'un.
 

Ekli dosyalar

  • Proje Son_hy2.xlsm
    47.8 KB · Gösterim: 1
Son düzenleme:

halily

Destek Ekibi
Kullanıcı Bilgileri
Katılım
29 Ağu 2021
Mesajlar
1,908
Çözümler
258
Aldığı beğeni
1,868
Excel Versiyonu
Office 2019 TR
son hali bu dener misiniz?
bende trimde hata vermiyor
 

Ekli dosyalar

  • Proje Son_hy3.xlsm
    1.2 MB · Gösterim: 2

halily

Destek Ekibi
Kullanıcı Bilgileri
Katılım
29 Ağu 2021
Mesajlar
1,908
Çözümler
258
Aldığı beğeni
1,868
Excel Versiyonu
Office 2019 TR
bende koşul alanı olmadığından koşulsuz alırken sorun çıkmadı ama siz koşullu kullanıyorsanız belki hata ondan kaynaklanıyordur. isterseniz trim kısmını silin, sıralarken bazı değerlerin başında boşluk olduğundan veriler düzgün sıralanmıyordu o nedenle eklemiştim
FROM CHFO order by trim([msg_S_0134]) yerine FROM CHFO order by [msg_S_0134]
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Konuyu okuyanlar

Üst