Combobox'a veri çekme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Combobox'a veri çekme
Merhaba arkadaşlar daha önceden forumunuzu takip ediyordum ama uyelik bugne kısmet oldu.benim sorum combobox'a ogrenci tablosundaki bolum_no ile bolum tablosundaki bolumleri çekmek istiyorum.Bunu lookupcombobox ile yapabilirim ama oalyı daha iyi kavramak için boyle yapmak istiyorum.
Bu konuda bana yardımcı olursanız çok sevinirim.
Teşekkürler...
Bu konuda bana yardımcı olursanız çok sevinirim.
Teşekkürler...
Merhaba.
Bunun icin verileri veri tabanından alacaksan sutundaki bilgileri distinct metodu ile teke indir. (Tabi tekrarlanan kayıtlar varsa.) Daha sonra
ile querynin o alanını istediğin gibi kullanabilirsin...
Kolay gelsin
Bunun icin verileri veri tabanından alacaksan sutundaki bilgileri distinct metodu ile teke indir. (Tabi tekrarlanan kayıtlar varsa.) Daha sonra
Kod: Tümünü seç
combobox.items.add
Kolay gelsin
Kod: Tümünü seç
combobox1.items.clear;
while not table1.eof do
begin
combobox1.items.add(table1.fieldbyname('isim').asstring);
table1.next;
end;
saygılar.
Merhaba ,
Yanlış Anlamadıysam , öğrenci tablonda bolum_no adında bir alanın ve bolum isminde ki tablodada bolum_no ve bolum_adi adında alanların var burad yapmak istediğim öğrenci tablosundaki bolum_no bilgisinden yararlanarak ogrenci tablosunda kullanılmış bölüm isimlerini tespit edip combobox ta listelemek. bunu yapmak için aklıma gelen en basit yöntem INNER JOIN yöntemi bir örnek vereyim,
ogrenci
------------
ogrenci_adi
bolum_no
bolum
------------
bolum_no
bolum
şeklinde talbolar olsun bunları birleştirecek SQL kodu şu şekilde olmalı
sonra bunu bir döngüyle combobox ın içine atıyoruz
kolay gelsin.
Yanlış Anlamadıysam , öğrenci tablonda bolum_no adında bir alanın ve bolum isminde ki tablodada bolum_no ve bolum_adi adında alanların var burad yapmak istediğim öğrenci tablosundaki bolum_no bilgisinden yararlanarak ogrenci tablosunda kullanılmış bölüm isimlerini tespit edip combobox ta listelemek. bunu yapmak için aklıma gelen en basit yöntem INNER JOIN yöntemi bir örnek vereyim,
ogrenci
------------
ogrenci_adi
bolum_no
bolum
------------
bolum_no
bolum
şeklinde talbolar olsun bunları birleştirecek SQL kodu şu şekilde olmalı
Kod: Tümünü seç
SQlKodu:='select distinct ogrenci.bolum_no , bolum.bolum_adi from ogrenci INNER JOIN bolum ON ogrenci_bolum_no=bolum_bolum_no order by ogrenci_bolum_no ';
Kod: Tümünü seç
with Query1 do
begin
close;
sql.clear;
sql.add(SqlKomutu);
active:=true;
first;
while not eof do
begin
combobox1.items.add(FieldByName('bolum_adi').AsString);
next;
end;
end;
Volkan KAMADAN
www.polisoft.com.tr
www.polisoft.com.tr
kamadan benim dediğime yakın birşeyler demiş ama ben anladım galiba ne demek istediğinizi
bu sefer combobox tan seçip tablodan diğer değeri alacaksın
o zaman şöyle dersin
ile o kayıda konumlanıp değeri okuyacan bu kadar 
verde programı yazıp verelim sana. Arama yap yada
Saygılar iyi çalışmalar
bu sefer combobox tan seçip tablodan diğer değeri alacaksın
o zaman şöyle dersin
Kod: Tümünü seç
table1.locate('isim',combobox.items[i],[])

verde programı yazıp verelim sana. Arama yap yada

Saygılar iyi çalışmalar
Re: Combobox'a veri çekme
ben de benzer bir sorun yaşıyorum adoquery nesnesi ile sql sorgusu yapıp tablodaki verileri çektikten sonra bir alandaki tüm verilerei comboboxa atmak istiyorum. kod bloğum aşağıda. program çalışınca bu bölümde dönüyor sorguda bir hata yok gibi döngüden çıakarınca sadece ilk kaydı ekliyor
begin
dep_adoq.SQL.Clear;
dep_adoq.SQL.Add('select * from depo_tbl');
dep_adoq.Open;
dep_adoq.First;
while not (dep_adoq.Eof) do
begin
dep_combo.Items.Add(dep_adoq.fieldbyname('depo_ad').AsString);
end
end;
begin
dep_adoq.SQL.Clear;
dep_adoq.SQL.Add('select * from depo_tbl');
dep_adoq.Open;
dep_adoq.First;
while not (dep_adoq.Eof) do
begin
dep_combo.Items.Add(dep_adoq.fieldbyname('depo_ad').AsString);
end
end;
Re: Combobox'a veri çekme
Kendi kullandığım yöntemi paylaşayım , Belki Lazım olur
Olası Mükerrer kayıtların önüne geçmek için (tekrarlı kayıtlar) olası, sütundaki aynı değerleri combobox içine atarak sonradan kullanılmak üzere filtrelemek istiyorsanız bu bir fikir verebilir.
form üzerine 1 adet checkbox koyun (kullanmayabilirsinizde) , 1 adet combobox , 1 tane query bileşeni koyun , checkbox veya bir butona atayın
Olası Mükerrer kayıtların önüne geçmek için (tekrarlı kayıtlar) olası, sütundaki aynı değerleri combobox içine atarak sonradan kullanılmak üzere filtrelemek istiyorsanız bu bir fikir verebilir.
form üzerine 1 adet checkbox koyun (kullanmayabilirsinizde) , 1 adet combobox , 1 tane query bileşeni koyun , checkbox veya bir butona atayın
Kod: Tümünü seç
var
liste:TstringList;
BEGIN
if checkbox1.Checked =True then begin
with dm.UniQuery1 do
begin
liste:=tstringlist.create;
liste.Clear;
combobox1.items.Clear;
First;
while not Eof do
begin
if combobox1.Items.IndexOf( FieldValues['BIRIMLER'] ) = -1 then
ComboBox1.Items.Add(FieldValues['BIRIMLER']);
Next;
// Combobox1.Text:= liste.Text;
end;
end;
END;
dm.UniQuery1.First;
LISTE.FREE;
END;
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
Re: Combobox'a veri çekme
Merhaba,harezmi yazdı: 03 May 2019 09:39 ben de benzer bir sorun yaşıyorum adoquery nesnesi ile sql sorgusu yapıp tablodaki verileri çektikten sonra bir alandaki tüm verilerei comboboxa atmak istiyorum. kod bloğum aşağıda. program çalışınca bu bölümde dönüyor sorguda bir hata yok gibi döngüden çıakarınca sadece ilk kaydı ekliyor
begin
dep_adoq.SQL.Clear;
dep_adoq.SQL.Add('select * from depo_tbl');
dep_adoq.Open;
dep_adoq.First;
while not (dep_adoq.Eof) do
begin
dep_combo.Items.Add(dep_adoq.fieldbyname('depo_ad').AsString);
end
end;
Kod örneklerinizi CODE bloğu içinde paylaşmanızda fayda var.
Gönderdiğiniz kod ile ilgili iki tane sorun var.
1- Query içindeki kayıtlarda dolaşmıyorsunuz.
2- ComboBox bileşeninin içini işleme başlamadan önce temizlemiyorsunuz.
Aşağıdaki kodu deneyebilir misiniz?
Kod: Tümünü seç
begin
dep_adoq.SQL.Text := 'select * from depo_tbl'; // dep_adoq.SQL.Clear olmadan bu şekilde kullanılabilir. Eski SQL bilgisi yine silinmiş olacaktır
dep_adoq.Open;
dep_adoq.First;
dep_combo.Items.Clear; // Yukarıdaki madde [2]
while not (dep_adoq.Eof) do
begin
dep_combo.Items.Add(dep_adoq.fieldbyname('depo_ad').AsString);
dep_adoq.Next; // Yukarıdaki madde [1]
end;
end;