Delphi Can

Orjinalini görmek için tıklayınız: Kayıt Bulundu Uyarısı
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Sayfalar: 1 2 3
Selamun aleykum Dostlarım,
Table : KAYIT_FORMU
Alan : D_TC

Dostlarım, Depremzede Kardeşlerimize Yardım yapabilmek için kıt bilgim ile Delphi de bir kayıt formu oluşturuyorum. bazı sıkıntılarım var yardımcı olursanız çok sevinirim. 

forma bir tane edit1 yerleştirdim. bu edit1 e yazılan TC Kimlik numarasını KAYIT_FORMU tablosunda bulunan D_TC alanında sorgulamak istiyorum . sorgulandığında eğer aynı TC varsa bana " Aynı TC Kimlik Numaralı Vatandaş Kayıtlı Bulunmaktadır. " diye uyarı verecek ve yine KAYIT_FORMU tablosunda bulunan SN alanındaki sıra numarasını Label1 e yazacak. 
eğer yoksa 
" Girdiğiniz TC Bulunamadı Yeni Kayıt Açmak istermisiniz? " diye soracak ve yazdığım TC yi DBEdit1 e aktaracak. 
Bu konuda yardımcı olur musunuz.
Selam
Öncelikle edit1 in onchange eventına aşağıdaki gibi bir kod yazacaksınız.

qrysorgu.sql.clear;
qrysorgu.sql.text := 'select * from tblkayitlar where D_TC='''+edit1.text+''''
qrysorgu.open;

if qrysorgu.recordcount >0 then
showmessage('Kayıt bulundu')
else
showmessage('Girdiğiniz TC Bulunamadı);
(01-03-2023, Saat: 10:42)shooterman Adlı Kullanıcıdan Alıntı: [ -> ]Selam
Öncelikle edit1 in onchange eventına aşağıdaki gibi bir kod yazacaksınız.

qrysorgu.sql.clear;
qrysorgu.sql.text := 'select * from tblkayitlar where D_TC='''+edit1.text+''''
qrysorgu.open;

if qrysorgu.recordcount >0 then
showmessage('Kayıt bulundu')
else
showmessage('Girdiğiniz TC Bulunamadı);

Hocam bu hatayı veriyor . sebebi nedir acaba
Merhaba,
Aşağıdaki şekilde deneyebilir misiniz?
Ayrıca kodu Onchange olayına yazarsanız her karakter girişinizde uyarı verecektir.

var
 Soru:integer;
begin
 if AdoQuery1.Active then AdoQuery1.Close;
 AdoQuery1.SQL.Clear;
 AdoQuery1.sql.text := 'select COUNT(D_TC) AS TOPLAM,SN from KAYIT_FORMU where D_TC=:pTC Group by ID SN';
 AdoQuery1.ParamByName('pTC').value:=edit1.text;
 AdoQuery1.open;

 if AdoQuery1.FieldByName('TOPLAM').Value >0 then
 Begin
   Showmessage('Aynı TC Kimlik Numaralı Vatandaş Kayıtlı Bulunmaktadır.');
   Label1.Caption:=AdoQuery1.FieldByName('SN').Asstring;
 End
 else
 Begin
   Soru:=Application.MessageBox('Girdiğiniz TC Bulunamadı Yeni Kayıt Açmak istermisiniz?','Dikkat!',MB_YESNO);
   if Soru=MB_OK then
   DBEdit1.Text:=Edit1.Text
   else DBEdit1.Clear;
 End;
end;
(01-03-2023, Saat: 11:21)ozcanm Adlı Kullanıcıdan Alıntı: [ -> ]Merhaba,
Aşağıdaki şekilde deneyebilir misiniz?
Ayrıca kodu Onchange olayına yazarsanız her karakter girişinizde uyarı verecektir.

var
 Soru:integer;
begin
 if AdoQuery1.Active then AdoQuery1.Close;
 AdoQuery1.SQL.Clear;
 AdoQuery1.sql.text := 'select COUNT(D_TC) AS TOPLAM,SN from KAYIT_FORMU where D_TC=:pTC Group by ID SN';
 AdoQuery1.ParamByName('pTC').value:=edit1.text;
 AdoQuery1.open;

 if AdoQuery1.FieldByName('TOPLAM').Value >0 then
 Begin
   Showmessage('Aynı TC Kimlik Numaralı Vatandaş Kayıtlı Bulunmaktadır.');
   Label1.Caption:=AdoQuery1.FieldByName('SN').Asstring;
 End
 else
 Begin
   Soru:=Application.MessageBox('Girdiğiniz TC Bulunamadı Yeni Kayıt Açmak istermisiniz?','Dikkat!',MB_YESNO);
   if Soru=MB_OK then
   DBEdit1.Text:=Edit1.Text
   else DBEdit1.Clear;
 End;
end;

Evet Haklısınız hocam, bu yüzden bitbtn ye ekledim. ama bu hatayı veriyor.
Parameters eksik kalmış  Undecided
Aşağıdaki şekilde tekrar deneyin.


var
Soru:integer;
begin
if AdoQuery1.Active then AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.sql.text := 'select COUNT(D_TC) AS TOPLAM,SN from KAYIT_FORMU where D_TC=:pTC Group by SN';
AdoQuery1.Parameters.ParamByName('pTC').value:=edit1.text;
AdoQuery1.open;

if AdoQuery1.FieldByName('TOPLAM').Value >0 then
Begin
  Showmessage('Aynı TC Kimlik Numaralı Vatandaş Kayıtlı Bulunmaktadır.');
  Label1.Caption:=AdoQuery1.FieldByName('SN').Asstring;
End
else
Begin
  Soru:=Application.MessageBox('Girdiğiniz TC Bulunamadı Yeni Kayıt Açmak istermisiniz?','Dikkat!',MB_YESNO);
  if Soru=MB_OK then
  DBEdit1.Text:=Edit1.Text
  else DBEdit1.Clear;
End;
end;
(01-03-2023, Saat: 11:42)ozcanm Adlı Kullanıcıdan Alıntı: [ -> ]Parameters eksik kalmış  Undecided
Aşağıdaki şekilde tekrar deneyin.


var
Soru:integer;
begin
if AdoQuery1.Active then AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.sql.text := 'select COUNT(D_TC) AS TOPLAM,SN from KAYIT_FORMU where D_TC=:pTC Group by ID SN';
AdoQuery1.Parameters.ParamByName('pTC').value:=edit1.text;
AdoQuery1.open;

if AdoQuery1.FieldByName('TOPLAM').Value >0 then
Begin
  Showmessage('Aynı TC Kimlik Numaralı Vatandaş Kayıtlı Bulunmaktadır.');
  Label1.Caption:=AdoQuery1.FieldByName('SN').Asstring;
End
else
Begin
  Soru:=Application.MessageBox('Girdiğiniz TC Bulunamadı Yeni Kayıt Açmak istermisiniz?','Dikkat!',MB_YESNO);
  if Soru=MB_OK then
  DBEdit1.Text:=Edit1.Text
  else DBEdit1.Clear;
End;
end;

hocam bu hatayı verdi şimdi
AdoQuery1.sql.text := 'select COUNT(D_TC) AS TOPLAM,SN from KAYIT_FORMU where D_TC=:pTC Group by SN ';

olarak değiştirin
(01-03-2023, Saat: 11:52)ozcanm Adlı Kullanıcıdan Alıntı: [ -> ]AdoQuery1.sql.text := 'select COUNT(D_TC) AS TOPLAM,SN from KAYIT_FORMU where D_TC=:pTC Group by SN ';

olarak değiştirin

d_adı ile ilgili bir kod yok niye bu hatayı şimdi verdi
AdoQuery1nesnesine çift tıkladığınızda açılan pencereyi kontrol edin.
Sayfalar: 1 2 3