Accesden bakıye sorgusu

Katılım
6 Temmuz 2008
Mesajlar
1,834
Excel Vers. ve Dili
OFFİCE 2007- TÜRKÇE
Teşekkür ederim Haluk bey,
Aslında benim excel hücre döngüsü kullanmayışımın bir sebebi de aynı dosyayı VBNET üzerinde de çalıştırmamdan kaynaklı.
Kod:
 myBakiye = 0
    For iRow = 2 To NoA
        myBakiye = myBakiye + Range("F" & iRow) + Range("G" & iRow)
        Range("H" & iRow) = myBakiye
    Next
Excelde sorguyu sağlayıp VBNET'e taşıyorum. Neredeyse aynı mantıkta çalışıyor. Tabi aynı döngüyü VBNET datagridviewda da yapabilirim ama ten sorguda işi bitireyimistemiştim.

VBnet Daha önceki bir yazıda forumdan tavsiye edilmişti. Baya ilerledim doğrusu en azından kendi çapımda :)
Bence excelden sonra VBNET derim. Sonraki hedefim Dotnet :)
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
8,317
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
Ben gün içi hareketleri de listelemek istediğinizi düşünüyordum ama, sadece gün sonu itibariyle bakiyeleri listelemek yeterliyse o zaman döngüsüz bir şekilde SQL ile yapılabilir...



.
 
Katılım
6 Temmuz 2008
Mesajlar
1,834
Excel Vers. ve Dili
OFFİCE 2007- TÜRKÇE
Ben gün içi hareketleri de listelemek istediğinizi düşünüyordum ama, sadece gün sonu itibariyle bakiyeleri listelemek yeterliyse o zaman döngüsüz bir şekilde SQL ile yapılabilir...



.
Doğru evet her hareket için bakiye çalışacak.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
3,885
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Excelde sorguyu sağlayıp VBNET'e taşıyorum.
Bence projeleriniz için MS Access'in yerini alabilecek bir veritabanı seçimi yaparak onun üzerinde çalışın ve kendinizi geliştirin. Ücretsiz/kısıtlamasız olarak Firebird veya PostgreSql önerebileceğim popüler veritabanı sistemleridir.

Epeyce veritabanı inceleyen birisi olarak bir veritabanı sistemini öğrenmenin zahmetli bir yol olduğunu söyleyebilirim. Bir seçim yapın ve onun üzerine gidin.

Kolay gelsin...



.
 
Katılım
6 Temmuz 2008
Mesajlar
1,834
Excel Vers. ve Dili
OFFİCE 2007- TÜRKÇE
Bence projeleriniz için MS Access'in yerini alabilecek bir veritabanı seçimi yaparak onun üzerinde çalışın ve kendinizi geliştirin. Ücretsiz/kısıtlamasız olarak Firebird veya PostgreSql önerebileceğim popüler veritabanı sistemleridir.

Epeyce veritabanı inceleyen birisi olarak bir veritabanı sistemini öğrenmenin zahmetli bir yol olduğunu söyleyebilirim. Bir seçim yapın ve onun üzerine gidin.

Kolay gelsin...
Ücretsiz/kısıtlamasız olarak Firebird veya PostgreSql
burada aynı sql sorgusunu kullanabiliyormuyum?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
8,317
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
Teşekkür ederim Haluk bey,
Aslında benim excel hücre döngüsü kullanmayışımın bir sebebi de aynı dosyayı VBNET üzerinde de çalıştırmamdan kaynaklı.
....
...
Ekli dosyada, yürüyen bakiyeler Excel hücreleri yerine, daha önce oluşturulan "Recordset" nesnesinin ilgili alanları kullanılarak bir diziye aktarılıyor ve daha sonra sayfadaki tabloya ilave ediliyor.

Belki sizin için daha kullanışlı olabilir...

.
 

Ekli dosyalar

Katılım
6 Temmuz 2008
Mesajlar
1,834
Excel Vers. ve Dili
OFFİCE 2007- TÜRKÇE
Ekli dosyada, yürüyen bakiyeler Excel hücreleri yerine, daha önce oluşturulan "Recordset" nesnesinin ilgili alanları kullanılarak bir diziye aktarılıyor ve daha sonra sayfadaki tabloya ilave ediliyor.

Belki sizin için daha kullanışlı olabilir...

.
Teşekkürer Haluk bey,
Dosyayı linkte paylaşabilirmisiniz rica etsem
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
8,317
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
MDB'den okunarak bilgisayarın hafızasında oluşturulan bir Recordset nesnesindeki alanlara sonradan müdahale ederek veri ilave edilemiyor.... ama, yeni bir Recordset oluşturup, bu verileri onun içine doldurabilir ve bu sırada da bakiye hareketlerini işleyebiliriz.....

Ekli dosyada bu iş yapılmaktadır. Yani; yürüyen bakiyeler dahil olmak üzere tüm cari kod hareketleri tek bir Recordset nesnesine işlenmekte olup, tek seferde sayfaya yazılmaktadır.

Böyle bir şey, sanırım sizin üzerinde uğraştığınız VB.Net projesinde kullanmak için daha iyi olur gibi geliyor...

Dosya ektedir.




.
 

Ekli dosyalar

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
3,885
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Örnekte ufak bir eksiklik kaldı Haluk Bey. Cari kodun her değişiminde Bakiye sütunun '0' dan başlaması gerekiyor. Örnekte aynı tutarlar denk geldiği için cari kod değişiminde sıfırdan başlamış gibi görünüyor ama farklı tutarlar olsaydı Bakiye alanındaki hata hemen görünecekti.

Ayrıca sort işleminin yalnızca tarihi dikkate alması da bizi yanıltır, çünkü aynı tarihe birden fazla cari kod arka arkaya geleceği için liste karışacaktı. Örnek kapsamlı olmadığı için bu hata da oluşmadı. Şans işte... :)

Sıralama aşağıdaki gibi gelmeli:

SQL:
....
order by carkod, tarıh, kayıt_no
.


.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
8,317
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
Üstad, mesleğimiz olmadığı için bu ayrıntıyı bilmem mümkün değildi tabii .... Bilgi için teşekkürler.

.
 
Katılım
6 Temmuz 2008
Mesajlar
1,834
Excel Vers. ve Dili
OFFİCE 2007- TÜRKÇE
Üstad, mesleğimiz olmadığı için bu ayrıntıyı bilmem mümkün değildi tabii .... Bilgi için teşekkürler.

.
Onu farkedip ek bir kod yazmıştım.
Sıralamadan ziyade toplama işlemi "carkod"a göre yapılacağından döngü sırasındaki kayıtların alt üst eşit mi sorgusu yaptırıp devam ettirdim.
 

assenucler

Altın Üye
Altın Üye
Katılım
19 Ağustos 2004
Mesajlar
3,021
Excel Vers. ve Dili
Office 365 Bireysel 2019 TR x64- Windows 10 Home Single Language x64 TR
Sayın acar6783,


Günaydın. Rica etsem dosyanın son şeklini paylaşır mısınız?
Emeği geçen ve katkıda bulunan üstatlara teşekkürler,

Saygılar,
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
3,885
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Budur Haluk Bey. Aslında birden fazla cari aynı anda ekrana döküldüğü pek görülmez; ihtiyaçlar farklılık gösterebiliyor bazen.

.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
8,317
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
Anlıyorum Zeki Bey.... benim konum olmamasına rağmen, değişik cari kodların aynı tabloda listelenmesi bana da biraz tuhaf gelmişti (11 No'lu mesaj)

ama demek ki bazen ihtiyaç oluyormuş. Teşekkürler...

.
 
Katılım
6 Temmuz 2008
Mesajlar
1,834
Excel Vers. ve Dili
OFFİCE 2007- TÜRKÇE
Anlıyorum Zeki Bey.... benim konum olmamasına rağmen, değişik cari kodların aynı tabloda listelenmesi bana da biraz tuhaf gelmişti (11 No'lu mesaj)

ama demek ki bazen ihtiyaç oluyormuş. Teşekkürler...

.
Buradaki paylaştığım kısmi tablo olduğu için cariler az gelmişti. Fakrlılık olsun diye sadece bir tanesinin cari kodunu değiştirip yüklemiştim
Asıl hedefim tek sql sorguda işi bitirmekti ama mecburen tavsiyeniz ve desteğiniz üzre döngü içerisinde birşeyler yapmaya çalıştım. Ek olarak madem döngü var araya bir de boş satır ekleyip alttoplamlar aldırdım.



VbNet dosyamın örnek görüntüsü ektedir.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
8,317
Excel Vers. ve Dili
32 Bit 2010 - İngilizce
Onu farkedip ek bir kod yazmıştım.
Sıralamadan ziyade toplama işlemi "carkod"a göre yapılacağından döngü sırasındaki kayıtların alt üst eşit mi sorgusu yaptırıp devam ettirdim.
Aslında bahsettiğiniz türden bir yöntem bence çok uygun değil. Onun yerine, konunun başlarında @Zeki Gürsoy 'un 5 No'lu mesajında belirttiği gibi öncelikle bir "Cari Kod Listesi" oluşturduktan sonra, işlemleri yapmak programcılık açısından daha mantıklı.

Bu şekilde yaptığım revize dosya ekte verilmekte olup, ilk mesajınızda eklediğiniz veri tabanı üzerinde çalışan kodun görüntüsü aşağıdadır....

Not: "Alt toplam" yerine; Cari kodlar, tabloda "******" ile ayrılmakta olup, her cari kodun son satırındaki "Bakiye" yeterli olur diye düşündüm. Bununla birlikte, tablonun en sonunda "Toplam Borç, Alacak ve Bakiye" bilgileri verilmiştir. Ayrıca, sorgulanacak cari hareketler için tarih aralığı belirlenmesi sağlanmıştır.


Capture.PNG



.
 

Ekli dosyalar

Son düzenleme:
Katılım
6 Temmuz 2008
Mesajlar
1,834
Excel Vers. ve Dili
OFFİCE 2007- TÜRKÇE
Sql Server sistemlerde olan Over/Partition ifadesi tam olarak bu işi kendisi yapabiliyor. Excel tarafında bence iki recordset açarak ilki cari listesini, diğeri de hareketleri önceki mesajımda belirttiğim gibi hesaplasın. İç içe geçmiş sorgulardan daha kolay olacağını düşünüyorum.

.
Aslında benim cari listem var, Hareketler kısmında unvan yazmıyor dosyada. Unvanı carilisteden çekiyorum. Onun dışında cari listesine cari hareketleri nasıl eşleştireceğim çok anlamadım doğrusu.
Eşleştirdiğimde dahi yine bakiye konusu gündeme gelecek. Anlaşılan onu da tek sorguda yapmak imakansız gibi görünüyor.

Cari listesinde Mizan olarak halihazırda bakiyeyi alabiliyorum. Fakat işin içine tarih detaylı muavin girince tarih bazlı bakiye işi zora sokuyor.

İnanırmısınız rüya bile gördüm oluyordu ama rüyada gördüğümü uyguladım olmadı :))
 
Üst