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ış
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ış
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.