• Foruma hoş geldin 👋 Ziyaretçi

    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 tamamen ücretsizdir.

Çözüldü Adosql ile veri çekme hücredeki bilgiye göre

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.

xmenx

Yeni Üye
Katılım
25 Eki 2022
Mesajlar
303
Aldığı beğeni
45
Excel V
Office 2016 TR
Merhaba üstadlar ilgili dosyanın içerisinde açıklama yaptım . Yardımcı olursanız çok sevinirim
 

Ekli dosyalar

xmenx;
Dosyanızda tüm sayfalarınızda çekilecek verilere ait bilgi bulamadım. Yani örneğinize göre hangi kayıtlar 2023 hangileri 2024 bunu manuel yapın nasıl yaptığınızı anlatın bizde öyle yapalaım
 
Hocam şöyle düşünebilirsiniz önce N2 hücresinde 2023 yazıyor ya o verileri alsın sonra N2 hücresini 2024 yazıp o şekilde çekmesi yeterli benim için verileri sqlden aldıgım için otomatik değişiyor Sube_Hareketleri_DepoBazlı sayafsındaki veriler
 
Merhaba sql sorgu yapmaya çalıştım fakat doğru getirmiyor. 2023-2024 stokkoduna göre diğer sayfadan eşleşenlerin NETCIKIŞINI toplayarak ilgili sütuna yazması yardımcı olursanız sevinirim
 

Ekli dosyalar

Buraya dikkat ettiniz mi?

Veriniz tam olması gerektiği gibi geliyor. Siz kurguyu yanlış yapıyorsunuz.

D sütununa copyfromrecordset yaptığınızda a sütununa bakıp ona göre bir veri getirmez. Belirttiğiniz hücreden itibaren listesindeki bütün veriyi aşağıya doğru kopyalar.
 

Ekli dosyalar

  • Adsız.jpg
    Adsız.jpg
    214 KB · Gösterim: 6
peki hocam benim istediğim 2023-2024 stokkoduna bakarak ona göre veri getirmesi
Hatanızı söylediğimde cevap da vermiş oldum aslında.

Yine de cevap isterseniz, Sorgu bu şekilde:
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.

Sayfaya aktarma kodlarında "Sheets("2023-2024").Range("D2").CopyFromRecordset RS" yerine aşağıdaki kodlar:

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.
 
Son düzenleme:
Kopyalama kodunda hata vardı üstteki mesajı düzenleyerek düzelttim. RS.MoveFirst kısmını ekledim.
 
Teşekkür ederim hocam benim anladıgım inner join kullanınca düşeyara gibi gelicek zannetmem . Hocam kodunuzu denedim yavaş çalışıyor hızlandırmak için başka ne yapılabilir acaba
 
Fazladan gittiği döngüler var. Sayfanın karşısına rakamı yazdıktan sonra GoTo 10: ile do loop döngüsünün içinden çıkabilirsiniz.
HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.
 
Çözüm
Teşekkür ederim hocam elinize sağlık
Daha güzel bir kullanım için; stok kodlarını 2023-2024 sayfasından değil farklı bir sayfadan referans alır, SELECT ile Kodu, Adı, vb. gibi gerekli bilgileri çektikten sonra 2023-2024 sayfasında Range("A2").CopyFromRecordset RS şeklinde kullanabilirsiniz.
 
Aradaki boşları da görmek gibi bir niyetiniz varsa o zaman işe yaramaz tabi.
 
Hocam bu şekildeki sql koduyla çok daha hızlı sonuc almaktayım . Sizin yöntemle bu yöntem aynımıdır acaba
strSQL = " Select IIF(IsNull(T1.R),0,T1.R),IIF(IsNull(T1.[ENVANTER]),0,T1.[ENVANTER]) " & _
" From [2023-2024$] As T2 " & _
" Left Join " & _
" ( " & _
" Select [STOKKODU],[ENVANTER], Sum([NETCIKIS]) As R From [Sube_Hareketleri_DepoBazlı$] Group By [STOKKODU] ,[ENVANTER] " & _
" ) As T1 " & _
" On T1.[STOKKODU]= T2.[STOKKODU]"

HTML:
Kod:
İçeriği görebilmek için Giriş yap ya da üye ol.
 
Hocam bu şekildeki sql koduyla çok daha hızlı sonuc almaktayım . Sizin yöntemle bu yöntem aynımıdır acaba
strSQL = " Select IIF(IsNull(T1.R),0,T1.R),IIF(IsNull(T1.[ENVANTER]),0,T1.[ENVANTER]) " & _
" From [2023-2024$] As T2 " & _
" Left Join " & _
" ( " & _
" Select [STOKKODU],[ENVANTER], Sum([NETCIKIS]) As R From [Sube_Hareketleri_DepoBazlı$] Group By [STOKKODU] ,[ENVANTER] " & _
" ) As T1 " & _
" On T1.[STOKKODU]= T2.[STOKKODU]"
bu sorgu aradaki satırların boş gelmesini sağlıyor ve dolayısıyla sizi sonradan döngü ile uğraşmaktan kurtarıyor. Bu sorgu ile daha hızlı yaparsınız elbette.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst