Bakiye sorgusu sorunu

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
759
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Merhaba arkadaşlar;

Dış veri al ile sql veritabanına bağlanıp orada oluşturduğum sorguyu excele aktarmak istiyorum.Ama sql sorgusunu tamamlayamadım.

SELECT MAHSUP.HESAP, MAHSUP.BORC,MAHSUP.ALACAK, (BORC-ALACAK) AS 'BAKİYE'
FROM ETA_STOKGIRIS_2007.dbo.MAHSUP MAHSUP
WHERE (MAHSUP.HESAP='320.01.001')

YUKARIDAKİ SORGUDA 320.01.001 NOLU HESABIN BORÇ VE ALACAK SÜTUNLARINI ÇEKİYORUM.BAKİYE SÜTUNUNU OLUŞTURAMIYORUM.

HESAP BORÇ ALACAK BAKİYE
320.01.001 10 0 10
320.01.001 45 0 55
320.01.001 0 40 15


YUKARIDAKİ GİBİ BAKİYESİNİ 15 GÖRMEK İÇİN NASIL BİR SORGU OLUŞTURMALIYIM.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sanırım aldığınız verileri döngüye girerek alacaktan borcu çıkararak elde etmelisiniz.:cool:
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
759
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Arkadaşlar;

Eğer sql sorgusunu oluşturamazsam işin bakiye kısmını veriyi excele aktardıktan sonra makro olarak yapmak istiyorum.



Sub Makro8()

Range("J17").Select
ActiveCell.FormulaR1C1 = "BAKİYE"
Range("J18").Select
ActiveCell.FormulaR1C1 = "=RC[-2]+RC[-1]"
Range("J19").Select
ActiveCell.FormulaR1C1 = "=R[-1]C+RC[-2]-RC[-1]"
Range("J19").Select
Selection.AutoFill Destination:=Range("J19:J21")
Range("J19:J21").Select
End Sub

Yukarıdaki kod bunun için yeterli değil.Eksik olan kısmı J18 sütununda başlayan hareket J21 de bitiyor.Ama bu hareketlerin sayısı fazla olabilir.J45'te bitebilir mesela.I sütununda alacak var.Onun gittiği satır kadar J sütunuda gitmeli. Bunun için "Range("J19:J21").Select" bu kod yerine ne yazmalıyım.

Arkadaşlar yardımlarınızı bekliyorum.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Veriyi excele atılmış gibi kabul edin.Sütun başlıklarının başladığı yeri yazın.
Bir tane örnek excel dosyası ekleyin.Ben size vba kodunu yazayım.
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
759
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Evren Bey;

Yani nasıl bir sorgu yazmalıyım ?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Emin değilim ama aşağıdaki gibi yapın bakalım olacakmı
Kod:
SELECT MAHSUP.HESAP, MAHSUP.BORC,MAHSUP.ALACAK,MAHSUP.BAKİYE (BORC-ALACAK) AS 'BAKİYE'
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyanız ektedir.:cool:
Kod:
Sub bakiye()
Dim bakiye As Double, sat As Long, i As Long
Sheets("Sayfa1").Select
bakiye = 0
sat = Cells(65536, "A").End(xlUp).Row
For i = 2 To sat
    bakiye = bakiye + (Cells(i, "B").Value - Cells(i, "C").Value)
    Cells(i, "D").Value = bakiye
Next
MsgBox "İşlem tamam"
End Sub
 

Ekli dosyalar

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
759
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Evren Bey;

Teşekkür ederim.Elinize sağlık.

Yazdığınız kodu inceledim.Ana mantığını anladım.Ama bir kaç yerde tıkandım.Bu seferde sizden bir şey öğrenmek istiyorum.Tabi anlatmak isterseniz ?

1-sat=Cells(65536,"A").End(xlUp).Row

Bu satırda sat isminde bir değişkeni tanımlıyoruz.65536 satır gidecek ve başlangıç yeri A satırı olacak.A'nın önünde ve arkasındaki tırnaklar neyi ifade eder.Birde,"End(xlUp).Row" burada ne demek istiyoruz ?

2-For i=2 To sat

Bu satırda i ismindeki bir değişkene değer atıyoruz.Buradaki "To" kavramı nedir ?
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,248
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Evren Bey;

Teşekkür ederim.Elinize sağlık.

Yazdığınız kodu inceledim.Ana mantığını anladım.Ama bir kaç yerde tıkandım.Bu seferde sizden bir şey öğrenmek istiyorum.Tabi anlatmak isterseniz ?

1-sat=Cells(65536,"A").End(xlUp).Row

Bu satırda sat isminde bir değişkeni tanımlıyoruz.65536 satır gidecek ve başlangıç yeri A satırı olacak.A'nın önünde ve arkasındaki tırnaklar neyi ifade eder.Birde,"End(xlUp).Row" burada ne demek istiyoruz ?

2-For i=2 To sat

Bu satırda i ismindeki bir değişkene değer atıyoruz.Buradaki "To" kavramı nedir ?
1) bu kod satırı A sütunnda en son dolu satırı buluyor."A" string bir değişmezdir.A sütunudur."A" yerine 1 de yazabilirdik.
2)2 den sat kadar dön diyor.
Yani sat değişkeni içersindeki rakam kadar dön.:cool:
 

cavanoos

Altın Üye
Katılım
17 Aralık 2008
Mesajlar
759
Excel Vers. ve Dili
Microsoft 365
Altın Üyelik Bitiş Tarihi
11-01-2026
Evren Bey;

İlginize çok teşekkür ederim.Çok faydalı oldu benim için.Yarın cuma günü sizin içinde dua edicem.
 
Üst