SQL sorgulama TARIH alanını eksik sorguluyor.

Orion1

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

Ofis-2010-TR 32 Bit
Aşağıdaki kodlarla TARIH alnını sorguluyorum.Eğer trh1 >= TARIH alanından ve TARIH alanı =< trh2 den diye sorguluyorum ama >= trh1 den şekili ile çalışmıyor yani = (eşit durumunu algılamıyor sadece > (Büyük) durumunu algılıyor.Yazdığım kod aşağıdadır.
Kod:
Dim trh1 As Date, trh2 As Date
trh1 = Me.DateTimePicker1.Value
trh2 = Me.DateTimePicker2.Value
CMD = New OleDbCommand("SELECT SUM(GIDER) FROM BUTCE WHERE TARIH >= cdate('" + trh1 + "')and TARIH <= cdate('" + trh2 + "')", conn)
If IsDBNull(CMD.ExecuteScalar) Then GoTo atla2
gider = CMD.ExecuteScalar
atla2:
        sonuc = gelir - gider
        TextBox1.Text = Format(gelir, "#,##0.00")
        TextBox2.Text = Format(gider, "#,##0.00")
        TextBox3.Text = Format(sonuc, "#,##0.00")
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Evren bey,

1) trh1 ve trh2 değişkenleri string olarak tanımlayın ..
2) trh1'e, aa/gg/yyyy formatında tarihi yükleyin . trh2 için de aynısını yapın.
3) SQL sorgusunda tarih sorgusunu BEETWEN operatorü ile gerçekleştirin.

..
 

Rafet

Altın Üye
Katılım
24 Mart 2005
Mesajlar
230
Excel Vers. ve Dili
Ofice 2010 - Türkçe
Altın Üyelik Bitiş Tarihi
01-12-2025
evet tarih formatı string ve "yyyy-mm-dd" olmalı. SQL bu şekilde cevap veriyor. aa/gg/yyyy bu şekildede ceva verdiği bir cok sefer okudum ama hiç denemedim. Alışmışlık olsa gerek :( . Sonuç garanti :)...

Kod:
Dim trh1 As string, trh2 As string
trh1 = format(Me.DateTimePicker1.Value,"yyyy-mm-dd")
trh2 = format(Me.DateTimePicker2.Value,"yyyy-mm-dd")
CMD = New OleDbCommand("SELECT SUM(GIDER) FROM BUTCE WHERE TARIH BETWEEN '" & trh1 & "'  AND '" & trh2 & "' ", conn)
If IsDBNull(CMD.ExecuteScalar) Then GoTo atla2
gider = CMD.ExecuteScalar
atla2:
        sonuc = gelir - gider
        TextBox1.Text = Format(gelir, "#,##0.00")
        TextBox2.Text = Format(gider, "#,##0.00")
        TextBox3.Text = Format(sonuc, "#,##0.00")
[/QUOTE]
 

Orion1

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

Ofis-2010-TR 32 Bit
Arakadaşlar iliginiz için teşekkür ederim.
Sorun çözüldü.Kodlar aşağıdaki gibi oldu.
İşin püf noktası tarih formatında imiş.:D
Not : kodlar VBNET 2005 kodlarıdır. :D
Kod:
Dim trh1 as date,trh2 as date
trh1 = Format(Me.DateTimePicker1.Value, "dd.MM.yyyy")
trh2 = Format(Me.DateTimePicker2.Value, "dd.MM.yyyy")
CMD = New OleDbCommand("SELECT SUM(GIDER) FROM BUTCE WHERE TARIH >= cdate('" + trh1 + "')and TARIH <= cdate('" + trh2 + "')", conn)
If IsDBNull(CMD.ExecuteScalar) Then GoTo atla2
gider = CMD.ExecuteScalar
 
Üst