ورود

View Full Version : چگونه با استفاده از queryمیتوان combobox



prog_2005
شنبه 26 شهریور 1384, 07:40 صبح
چگونه با استفاده از queryمیتوان محتوای یک فیلد از جدول را به combobox انتقال داد من خودم کد زیر را نوشتم و خطا می دهد که نمی توان مقدار nullرا به stringمنتقل کنم و یک بار هم بدون خطا اجرا شد.
در ضمن من می خوام وقتی کاربر کلمه را تایپ کرد فیلد هایی که این کلمه را دارند به combobox اضافه شود این کد را در کدام eventکمبوباکس بنویسم.
با تشکر

adotable1.open;
adoquery1.sql.Clear;
cod:='SELECT * FROM leter where titel like '+#39+'%'+edit4.text+'%'+#39;
adoQuery1.SQL.Add(cod);
ADOQuery1.Open;
cod:=ADOQuery1.FieldValues['titel'];
p1:='';
j:=1;
while cod<>p1 do begin
cod:=ADOQuery1.FieldValues['titel'];
ComboBox1.Items.Add(cod);
ADOQuery1.Next;
p1:=ADOQuery1.FieldValues['titel'];
j:=j+1;
end;

Naficy
شنبه 26 شهریور 1384, 10:35 صبح
یه کم این while ای که نوشتین برای من عجیبه... اگر می خواین همه Query رو بخونین از چنین چیزی استفاده کنین:


AdoQuery1.Open;
Combobox1.Items.Clear;
while not ADOQuery1.Eof do begin
Combobox1.items.add(AdoQuery1.FieldValues['titel']);
AdoQuery1.Next;
end;
AdoQuery1.Close;

ضمنا شاید بد نباشه از OnDropDown استفاده کنین. البته کلا به نظرم کاری که می خواین کار خیلی جالبی نیست.

MToloo
شنبه 26 شهریور 1384, 17:05 عصر
آره اون while ی که نوشتی عجیب غریبه. غیر از اون به جای
cod:=ADOQuery1.FieldValues['titel'];
از


code = VarToStr(AdoQuery1.FieldValues['titel']);

استفاده کن.
استفاده از VarToStr باعث میشه اگه مقداری Null هست به '' تبدیل بشه.
(تو پرانتز بد نیست این و هم بگم که titel اشتباهه. درستش title هست)

prog_2005
یک شنبه 27 شهریور 1384, 08:35 صبح
مشکلمو با DBLookupComboBox حل کردم البته با کمک آقای سرباز زاده در ضمن اون while هم عجیب غریب نیست جواب میده بازم از اینکه جواب دادید متشکرم.