سلام دوباره و ممنون از لطفی که دارید. ظاهرا که تا اینجای کار دوستان مشکل خاصی ندارند، امیدوارم که استفاده کرده باشین.
توی پست قبلی یادم رفت که در مورد between , in یه توضیح بدم که چطور میشه مقدار مورد جستجو رو از کاربر دریافت کنن.
اگر قرار باشه کاربر از edit استفاده کنه و مقادیر مورد نظر رو وارد کنه، در اکثر دستورات sql مقادیر متنی حتما باید بین "" قرار بگیره ("متغیر") ولی برای مقادیر عددی نیازی به " " نیست.
مثال برای between زمانی که در فیلد عددی جستجو میکنیم:
مثال برای in زمانی که در فیلد متنی (رشته) جستجو میکنیم:کد:
with adoquery1 do begin
close;
sql.clear;
sql.Add('select * from inventory where weight between '+Edit1.Text+' and '+Edit2.Text);
open;
end;
توجه داشته باشید که برعکس where که به تعریف پارامتر نیاز بود، اینجا نیازی به اینکار نیست و فقط کافیه متغیر رو بین دستورات به شکل صحیح جا بدیم.کد:
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from inventory where name in ("'+Edit1.Text+'","'+Edit2.Text+'","'+Edit3.Text+'","'+Edit4.Text+'")');
ADOQuery1.Open;
توجه: در دستور in فرقی نداره که مقدار عددی باشه یا رشته، حتما از پرانتز استفاده کنید.
تا اینجا اگر سوالی هست در خدمتم، وگرنه ادامه آموزشها...
پیروز باشید