iki tarih arası dbgridde listeleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ege290806
Üye
Mesajlar: 7
Kayıt: 16 Oca 2011 04:40

iki tarih arası dbgridde listeleme

Mesaj gönderen ege290806 »

Arkadaşlar öncelikle sorunumu söyleyim iki tane edit kullanıyorum butona tıklayarak birinci edite bugun tarihini ikincisine 10 gün sonrasının tarihini getitdiriyorum.
iki tarih arasını listeletiyorum başka bir buton ile dbgrid de gösteriyor fakat sorun şuki mesela tarih 10.02.2011 20.02.2011 listele dediğim zaman dbgridde 10 ve 20 sayıları arasını hepsini listeletiyor tam tarih arası listeletmiyor bana nasıl yardımcı olabilirsiniz. kodları yazıyorum.

-----------bugunun tarihini gösteren buton kodu-------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
Tarih : TDate;
begin
Tarih := Now;
Edit3.Text := DateToStr(Tarih);
end;

-----------bugunun tarihine 10 gün ekliyen buton kodu-----------------

procedure TForm1.Button2Click(Sender: TObject);
var
Tarih : TDate;
begin
Tarih := Now;
Edit2.Text := DateToStr(Tarih+10);
end;

--------------------dbgridde göstermesini istediğim butonun kodu----------

procedure TForm1.Button3Click(Sender: TObject);
begin
Query2.Filter := 'Aracsipobita >=' + '''' +Edit3.text+''''+
' AND Aracsipobita<=' + '''' +Edit2.text+'''' ;
Query2.Filtered := true

end;


göstermeyi yapıyor ama sadece baştaki 10 ve 20 tarihleri arasındaki bütün kayıtları gösteriyor tamamını algılamasını yapamadım forumu çok inceledim ama sorunuma bi çözüm bulamadım
zengin
Üye
Mesajlar: 233
Kayıt: 06 Ağu 2003 10:13

Re: iki tarih arası dbgridde listeleme

Mesaj gönderen zengin »

s.a

ustacıgım kendinize uygun bir şekilde düzenleyin

Kod: Tümünü seç

DataSet1.SelectSQL.Add('and tarih >='''+cxDateEdit1.Text+'''and tarih <='''+ cxDateEdit2.text+'''');
kolay gelsin
Zengin
ege290806
Üye
Mesajlar: 7
Kayıt: 16 Oca 2011 04:40

Re: iki tarih arası dbgridde listeleme

Mesaj gönderen ege290806 »

Query2.Close;
Query2.SQL.Add('and aracsipobita >='''+Edit3.Text+'''and aracsipobita <='''+ Edit2.text+'''');
Query2.Open;

bu şekilde düzeltip yazdım ama benim sorunumun aynısını yapıyor yani sadece baştaki iki rakama göre algılıyor.

birde şu şekilde yaptım

Query2.SQL.Add('and aracsipobita >='''+Edit3.Text+'''and aracsipobita <='''+ Edit2.text+'''');

bunu gridde göster dediğim butona yani

procedure TForm1.Button4Click(Sender: TObject);
begin
-------------- Query2.Filter := 'Arackabita >=' + ''''+ Edit3.text+''''+
--------------' AND Arackabita<=' + '''' + Edit2.text+'''' ;
--------------Query2.Filtered := true
end;


bunları kadırıpta yazdım bu seferde dbgridi kapatıyor yani hiç bir listeme gelmiyor ustam
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Re: iki tarih arası dbgridde listeleme

Mesaj gönderen bobasturk »

merhaba,

filtreleme yerine bilinen parametreli bir sql sorgu çekerek gridi bu sorgu query sine bağlasanız.

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
zengin
Üye
Mesajlar: 233
Kayıt: 06 Ağu 2003 10:13

Re: iki tarih arası dbgridde listeleme

Mesaj gönderen zengin »

s.a

Kod: Tümünü seç

IBDataSet1.Close;
     IBDataSet1.SelectSQL.Clear;
     IBDataSet1.SelectSQL.Add('select * from TOP_HAREKET WHERE TOP_KARTID =:TOP_KARTID');
     IBDataSet1.SelectSQL.Add('and tarih >='''+cxDateEdit1.Text+'''and tarih <='''+ cxDateEdit2.text+'''');
     IBDataSet1.SelectSQL.Add('ORDER BY TARIH ASC');
     IBDataSet1.Open;
birde bu şekil yazın
Zengin
ege290806
Üye
Mesajlar: 7
Kayıt: 16 Oca 2011 04:40

Re: iki tarih arası dbgridde listeleme

Mesaj gönderen ege290806 »

procedure TForm1.Button3Click(Sender: TObject);
begin

Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('select * from aractakip WHERE Aracsipobita =:Aracsipobita');
Query2.SQL.Add('and Aracsipobita >='''+Edit3.Text+'''and Aracsipobita <='''+ Edit2.text+'''');
Query2.SQL.Add('ORDER BY Aracsipobita ASC');
Query2.Open;
end;


tşkler arkadaşım kodları bu şekilde değiştirdim oldu istediğim listeleme
zengin
Üye
Mesajlar: 233
Kayıt: 06 Ağu 2003 10:13

Re: iki tarih arası dbgridde listeleme

Mesaj gönderen zengin »

s.a

Degerli arkadaşım önceki vermiş oldugum örnek master detail icindi fakat master detail kullanmıyorsanız
Bu şekilde kullanmanız daha saglıklı olur ?

Kod: Tümünü seç

Query2.Close;
Query2.SQL.Clear;
Query2.SQL.Add('select * from aractakip');
Query2.SQL.Add('WHERE Aracsipobita >='''+Edit3.Text+'''and Aracsipobita <='''+ Edit2.text+'''');
Query2.SQL.Add('ORDER BY Aracsipobita ASC');
Query2.Open;

end;
kolay gelsin
Zengin
cemrebilgisayar
Üye
Mesajlar: 52
Kayıt: 02 Nis 2007 04:52
İletişim:

Re: iki tarih arası dbgridde listeleme

Mesaj gönderen cemrebilgisayar »

edit3 ve edit2 yi text olarak kullanıyorsun. tarih olarak algılamıyor. onları tarih moduna çevirmen lazım. veya tarih companenti kullanman lazım
CEMRE BİLGİSAYAR YAZILIM
http://www.cemre.web.tr
Cevapla