table1.filter ile hem no hemde tarhe göre arama olurmu?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

table1.filter ile hem no hemde tarhe göre arama olurmu?

Mesaj gönderen AliErdem »

table3.Filter:='TC_KMLK='+quotedstr(edit1.Text);
table3.Filtered:=true;

bu benim kimlik numarasına göre aramam bunun altına şöyle bişi ekledim

table3.Filter:='TC_KMLK='+quotedstr(edit1.Text);
Table3.filter:='GET_TAR=' // ayrıca bu tarih alanı boş olanları bulmak istiyorum
table3.Filtered:=true;


teşekkürler şimdiden
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Kod: Tümünü seç

Table1.Filter:='GET_TAR='+QuotedStr(DateToStr(DateTimePicker1.Date))+' and TC_KMLK='+QuotedStr(Edit1.Text);
Tarihi boş olanları bulmak için;

Kod: Tümünü seç

Table1.Filter:='GET_TAR='+QuotedStr('')+' and TC_KMLK='+QuotedStr(Edit1.Text);
Kolay gelsin
Ottoman

Mesaj gönderen Ottoman »

Slm.Boş Tarih alanları bu Kodlada bulabilirsin!

Kod: Tümünü seç

 Table1.Filtered:=false;
 Table1.Filter:='GET_TAR is not null';
 Table1.Filtered:=true;
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

Mesaj gönderen AliErdem »

galiba databaseimde GET_TAR ı Date tipte oluşturduğum için table1.filter satırında şöyle bi hata geliyo



is not a valid date '
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Kodlarımı açıklayayım

Kod: Tümünü seç

Table3.First;//ilk kayıda git
While Table3.eof=False Do//Tablonun sonu gelene kadar tekrarla
Begin
  if (Table3TC_KMLK.AsString=edit1.text) And (Table3GET_TAR.AsString='')
    Then Memo1.lines.Add(Table3TC_KMLK.AsString);
//Eğer Kimlik no edit1'deki değerse ve tarih boşsa, kimlik numarasını Memo'ya at.
  Table3.Next;//sonraki kayıt
end;
Senin tam işine yarayacak kod;

Kod: Tümünü seç

var
  dur:boolean;
begin
  Table3.First;
  dur:=False;
  if table3.eof Then dur:=True;//Tablo boşsa
  While (dur=False) Do
  begin
    if (Table3TC_KMLK.AsString=edit1.text) And (Table3GET_TAR.AsString='') Then dur:=True;//Kayıt bulunduysa ve tarih boşsa aramayı durdur
    if dur=False Then Table1.Next;//durmayacaksan ilerle :)
    if Table3.Eof=True Then//Son kayıda gelindiyse
    begin
      ShowMessage('Kayıt Bulunamadı');//hata ver
      dur:=True;//gitme :)
    end;
  end;
end;
bu kodlar sayesinde eğer girilen no tabloda varsa; o kayıtta duracak, yani edit, delete vs işlemleri yapabileceksin; yoksa hata verecek.
Tablo boşsa hiç bi şey yapmayacak.
Kendin filtrele diyerek Table.Filter'ı kullanmadan if ve while ile filtreleme yapmanı tavsiye etmiştim.
En son ulu coder tarafından 28 Nis 2006 09:03 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

Mesaj gönderen AliErdem »

begin
Table3.First;
While Table1.eof=False Do
BEgin
if (Table3TC_KMLK.AsString=edit1.text) And (Table3GET_TAR.AsString='') Then
BEGIN
table3.Filter:='TC_KMLK='+quotedstr(edit1.Text);
table3.Filtered:=true;
böyle bişi denedim ama

program hiç çalışmıyor boyle yapınca galiba anlamadım senin dediğini ulu coder arkadaşım
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

Cevap yazacağıma EDİT yapmışım nasıl olduysa :oops:
Cevabın yukarda arkadaşım
Ottoman

Mesaj gönderen Ottoman »

Boş Alanlarıdamı Listelemek istiyorsun?
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

Mesaj gönderen AliErdem »

evet ottoman tc kimlik nosuna göre get_tar boş olan kayıtlar
Kullanıcı avatarı
AliErdem
Üye
Mesajlar: 157
Kayıt: 16 Nis 2006 02:57

Mesaj gönderen AliErdem »

Resim


ulu coder dediğin gibi yatım table ları active=true yapıp çalışrınca bu hatayı gösteriyor
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

AliErdem yazdı:ulu coder dediğin gibi yatım table ları active=true yapıp çalışrınca bu hatayı gösteriyor
Ya iyide benim verdiğim kodlar program içinde kullanılacak, tasarım halinde table'ı aktifleştirdiğinde hata vermemesi lazım :?:
Kodları silip aktifleştirmeyi dene bi. Yine hata verecek ve bu kodlardan kaynaklanmadığı ispatlanacak :roll:
En son ulu coder tarafından 29 Nis 2006 12:26 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Ottoman

Mesaj gönderen Ottoman »

Daha önce verdiğim kod hem TC_Kimlik No'suna göre verir(Filitreler) hem de Tarih Sütunundaki boş alanları listeler.
Bu kod işini görmesi lazım.

Kod: Tümünü seç

 Table1.FilterOptions:=[FoCaseInsensitive];//harf duyarlılığı yok
 Table1.Filter:='GET_TAR is not null';//İndexli alan
 Table1.Filtered:=true;
Cevapla