Accesden bakıye sorgusu

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- 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

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
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,875
Excel Vers. ve Dili
OFFİCE 2010- 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
4,225
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,875
Excel Vers. ve Dili
OFFİCE 2010- 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

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
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,875
Excel Vers. ve Dili
OFFİCE 2010- 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

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
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
4,225
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

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Ü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,875
Excel Vers. ve Dili
OFFİCE 2010- 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
Katılım
19 Ağustos 2004
Mesajlar
3,519
Excel Vers. ve Dili
Ofis 365 TR 64 Windows 11 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,
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Örnekte ufak bir eksiklik kaldı Haluk Bey. Cari kodun her değişiminde Bakiye sütunun '0' dan başlaması gerekiyor.
.....
....
..
Üstad; tablonun aşağıdaki resimdeki gibi mi olması gerekiyordu?


Capture.PNG


.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,225
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

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
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,875
Excel Vers. ve Dili
OFFİCE 2010- 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

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,268
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
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,875
Excel Vers. ve Dili
OFFİCE 2010- 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