Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Comboboxlarda il ve ilçe listeleme
#1
Merhabalar combobox1'de seçtiğim ilin, combobox2'de ilçelerinin listelenmesini istiyorum ama bir türlü yapamadım.


procedure TForm1.FormCreate(Sender: TObject);

begin
dbcombobox2.Clear;
adotable1.First;

repeat
 dbcombobox1.Items.Add(adotable1.FieldByName('sehir').AsString);
 adotable1.Next;
until (adotable1.EOF) ;

end;

mdb'den combobox1'e illeri atabiliyorum ama mastersource u adotable1 seçmeme rağmen combobox2 'de ilçeleri listeleyemedim. Yardımcı olur musunuz?
Cevapla
#2
Selam
Comboboxa şehir isimlerini atadıktan sonra yapman gereken sonraki süreç, ilçeler tablosundaki verileri okuyarak, comboboxtaki seçili olan şehir adına göre filtrelemek ve bunları ilçe combobox ına atamak olacaktır.
Örneğin :
select ilce_adi from tblilceler where sehir_adi='''+combobox1.text+'''' // bu şekilde combobox1 de seçili olan sehir adına göre ilçeleri filtrelemiş olursun.
Sonraki yapacağın işlem ise, filtrelenmiş olan querydeki ilçe adlarını döngü ile, ilçeler combobox ına insert etmek olacaktır.
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#3
(16-02-2023, Saat: 13:14)shooterman Adlı Kullanıcıdan Alıntı: Selam
Comboboxa şehir isimlerini atadıktan sonra yapman gereken sonraki süreç, ilçeler tablosundaki verileri okuyarak, comboboxtaki seçili olan şehir adına göre filtrelemek ve bunları ilçe combobox ına atamak olacaktır.
Örneğin :
select ilce_adi from tblilceler where sehir_adi='''+combobox1.text+'''' // bu şekilde combobox1 de seçili olan sehir adına göre ilçeleri filtrelemiş olursun.
Sonraki yapacağın işlem ise, filtrelenmiş olan querydeki ilçe adlarını döngü ile, ilçeler combobox ına insert etmek olacaktır.

nacizane tavsiyem, yanlış algılamayın; "select ilce_adi from tblilceler where sehir_adi='''+combobox1.text+''''"
(gerçi bu uygulamanın kullanıcı kitlesi ile alakalıdır ama) profesyonel açıdan bakarsak,
bu şekilde kullanmayın ve bu şekilde kullanılması tavsiyesini vermeyin, sql injection açığını doğuruyorsunuz,
kişisel verilerin çalınmasınada ayrı bir boyutu, filtresiz bindsiz kullanım tablo drop a kadar gider,

konuyu derinlemesine anlamanız açısından, ilk önce eski videodan başlamak üzere,
https://www.youtube.com/@mdisec/videos 
inceleyin yararlı olacaktır, selamlar.
Cevapla
#4
Combo1 in onclosepopup olayına, combo2 ye ilçe ataması yapan kodları yazmanı gerekmekte. Algorita yapısını böyle kurmanız gerekiyor.
// Bilgi paylaştıkça çoğalır.. 

Cevapla
#5
Teşekkür ediyorum cevaplar için. Şu şekilde düzenledim istediğim gibi oldu.

procedure TForm1.Button1Click(Sender: TObject);
begin



 ADOQuery1.SQL.Clear();
 ADOQuery1.SQL.Add('SELECT * FROM ilceler');
 ADOQuery1.SQL.Add('WHERE sehir_adi = sehirim');
 ADOQuery1.Parameters.ParamByName('sehirim').Value := dbcombobox1.text;
 ADOQuery1.Open;
 repeat
 dbcombobox3.Items.Add(adoquery1['ilce']);
 adoquery1.Next;
 until (adoquery1.EOF) ;

 dbcombobox2.Clear;



end;
Cevapla
#6
Bir tavsiyem olacak. Bu gibi tablodan kayıt okuma işlemlerinde repeat - until döngüsü kullanmayın, while - do döngüsü kullanın. Eğer tablo boş ise while döngüsü hiç çalışmayacak ama repeat döngüye bir kere gireceği için döngü komutları çalışacaktır. Bu da ek kontrol gerektirebilecektir ama while ile bunu baştan kontrol altına alarak döngü kurmak daha pratik olabilir.
ADOQuery1.Open;
while not adoquery1.EOF do
begin
  dbcombobox3.Items.Add(adoquery1['ilce']);
  adoquery1.Next;
end;
gibi...
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Photo il ilçe UniDBLookupComboBox1 mehmet07 4 1.336 22-05-2024, Saat: 15:00
Son Yorum: mehmet07
  Sadece Son Kayıtları Listeleme gonulali 4 1.764 09-05-2023, Saat: 17:01
Son Yorum: gonulali
  İziBiz eFatura Listeleme MuhammedYasir 11 5.653 30-03-2023, Saat: 11:19
Son Yorum: enigma
  Küsürlü alan listeleme Altıner 4 2.216 05-03-2023, Saat: 22:42
Son Yorum: delphiX14
  IP deki bir klasör içindeki dosyaları listeleme nasıl? sadikacar60 21 12.621 18-02-2022, Saat: 13:48
Son Yorum: cinarbil



Konuyu Okuyanlar: 1 Ziyaretçi