combobaxa ait verileri dbgridde gösterme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
combobaxa ait verileri dbgridde gösterme
arkadaşlar slm comboboxa markalr giricem (items özelliği dışında çünkü çok marka var) ve bu markalardan birini seçip örneğin bmw yi seçtiğim zaman sadece bmwye ait markalrın dbgridde gözükmesi gerekiyo yardımcı olursanız çok sevinirim şimdiden teşekkürler
ben bir sorgu oluşturdum ama işlevini yapmıyor
form1.adoquery1.Close;
form1.adoquery1.SQL.Clear;
form1.adoquery1.SQL.Add('select * from urun3');
form1.adoquery1.SQL.Add(' where marka='+''''+combobox2.Text+'''');
form1.adoquery1.Open;
form1.adoquery1.First;
combobox2.Items.Clear;
while not form1.adoquery1.Eof do
begin
combobox2.Items.Add(form1.adoquery1.fieldbyname('alan adın').AsString);
form1.adoquery1.Next;
yardımlarınızı beliyorum
form1.adoquery1.Close;
form1.adoquery1.SQL.Clear;
form1.adoquery1.SQL.Add('select * from urun3');
form1.adoquery1.SQL.Add(' where marka='+''''+combobox2.Text+'''');
form1.adoquery1.Open;
form1.adoquery1.First;
combobox2.Items.Clear;
while not form1.adoquery1.Eof do
begin
combobox2.Items.Add(form1.adoquery1.fieldbyname('alan adın').AsString);
form1.adoquery1.Next;
yardımlarınızı beliyorum
Markayı comobobox1 den aldığını varsayıyorum.
combobox1 in onselect olayına
combobox1 in onselect olayına
Kod: Tümünü seç
form1.adoquery1.Close;
form1.adoquery1.SQL.Clear;
form1.adoquery1.SQL.Add('select * from urun3');
form1.adoquery1.SQL.Add('where marka='+QuotedStr(combobox1.Items[combobox1.itemindex]));
form1.adoquery1.Open;
//--
form1.adoquery1.First;
combobox2.Items.Clear;
while not form1.adoquery1.Eof do
begin
combobox2.Items.Add(form1.adoquery1.fieldbyname('alan adın').AsString);
form1.adoquery1.Next;
end;
- Combobox'un OnSelect olayına yazılacak kod @SeRoKi'nin müsadesiyle sadeleştirilmiş hali aşağıdaki şekildedir.
Kod: Tümünü seç
With Form1 do begin
AdoQuery1.Active := False;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add( 'select * from urun3' );
AdoQuery1.SQL.Add( 'where marka = ' + QuotedStr(ComboBox1.Text) );
AdoQuery1.Active := True;
end;
- Buraya kadar yapılanlar, içeriği sabit bilgilerle dolu olduğunu değerlendirdiğimiz ComboBox1 için, seçilen bir markaya göre DBGrid'deki listenin filtrelenmesi üzerine idi....
- Şimdi ComboBox içeriğiği mi doldurmaya çalışıyoruz yoksa aksi mi soruyu detaylandıralım.
- ComboBox1'in içeriği dolacaksa ikinci bir farklı sorgu ihtiyacı vardır. Bunu AdoQuery'ini OnAfterOpen olayına gerçekleştireceksiniz.
- Bu işlem aslında iki satır kod ile TDBLookUpComboBox ile çözülür ama kafa karışıklığı yaratmamak için öncelikle bildiğiniz yoldan çözüm üretelim.
- İlk olarak veritabanınız açıldığında ComboBox1 içeriği boşaltılıp yenileri doldurulsun... Böylece anlaşamadığımız ilk adım atılsın...
Kod: Tümünü seç
procedure TForm1.ADOQuery1AfterOpen(DataSet: TDataSet);
begin
// Burada Markalar ComboBox1'e collect ediliyor..
ComboBox1.Clear;
With TAdoQuery.Create(Nil) do begin
Connection := AdoQuery1.Connection;
SQL.Text := 'SELECT marka FROM urun3 GROUP BY marka ORDER BY marka';
Active := True;
While NOT EOF do begin
ComboBox1.Items.Add( FieldByName('marka').AsString );
Next;
end;
Active := False;
Free;
end;
end;
comboboxın on select olyına
With Form1 do begin
AdoQuery1.Active := False;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add( 'select * from urun3' );
AdoQuery1.SQL.Add( 'where marka = ' + QuotedStr(ComboBox1.Text) );
AdoQuery1.Active := True;
end;
bide adoquerynin after opene
ComboBox1.Clear;
With TAdoQuery.Create(Nil) do begin
Connection := AdoQuery1.Connection;
SQL.Text := 'SELECT marka FROM urun3 GROUP BY marka ORDER BY marka';
Active := True;
While NOT EOF do begin
ComboBox1.Items.Add( FieldByName('marka').AsString );
Next;
end;
Active := False;
Free;
end;
yazdım şimdiden teşekkürler
comboboxın text kısmında seçtiğim marka adı olucak
With Form1 do begin
AdoQuery1.Active := False;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add( 'select * from urun3' );
AdoQuery1.SQL.Add( 'where marka = ' + QuotedStr(ComboBox1.Text) );
AdoQuery1.Active := True;
end;
bide adoquerynin after opene
ComboBox1.Clear;
With TAdoQuery.Create(Nil) do begin
Connection := AdoQuery1.Connection;
SQL.Text := 'SELECT marka FROM urun3 GROUP BY marka ORDER BY marka';
Active := True;
While NOT EOF do begin
ComboBox1.Items.Add( FieldByName('marka').AsString );
Next;
end;
Active := False;
Free;
end;
yazdım şimdiden teşekkürler
comboboxın text kısmında seçtiğim marka adı olucak
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
After Open eventindeki kodların başına, comboboxtaki değeri bir değişkene atamak suretiyle gecici bir saklama kullanmak ve işlem bittikten sonra bu işlemin tersini yapmak kodlarına göre uygun çözüm gibi görünüyor ama benim asıl merak ettiğim konu olayın senaryosu.Tamamen kendin mi yazdın yoksa alıntı mı?Zira baya bi ilginç geldi bana