ورود

View Full Version : کوئری گرفتن در اکسس با چند شرط Where نامعین



AbbasVB
سه شنبه 11 آبان 1395, 19:33 عصر
با سلام دوستان
من می خوام از طرف برنامه چند مقدار که ممکنه خالی باشه یا داری مقدار به اکسس بفرستم
و اگه اون مقدار خالی نبود با شرط Where برام فیلتر کنه این کوئری رو داخل خود اکسس چه طوری بنویسم؟

mazoolagh
پنج شنبه 13 آبان 1395, 10:39 صبح
منظورتون از برنامه windows app هست دیگه؟ مثلا با vb.net؟

یک راه اینه که یک لیست استرینگ تعریف و هر شرط رو بعنوان یکی از آیتم های لیست بهش اضافه کنین.
در پایان هم لیست رو به آرایه تبدیل و آرایه رو با عبارت " and " تبدیل به یک استرینگ کنین: join
و این استرینگ رو کلا بعنوان شرط where به کار ببرین.

AbbasVB
پنج شنبه 13 آبان 1395, 11:08 صبح
سلام
بله از C# استفاده می کنم
همین کار رو کرده بودم
ولی می خواستم در صورت امکان از خود اکسس استفاده کنم
به هر حال ممنون

mazoolagh
شنبه 15 آبان 1395, 08:04 صبح
در واقع شما میتونین در اکسس کوئری بنویسین که پارامترهاش بنوعی شبیه سازی حالت optional باشه ولی بنظر خودم یکی اینکه نگهداری برنامه یک مقداری سختتر هست و دیگه اینکه اینجور نیست که لزوما در اپلیکیشن کد کمتری نیاز باشه.
غیر از این داستان پرفورمنس هم هست که البته نمیتونم در این مورد نظر بدم.

PARAMETERS P1 LONG , P2 SHORT , ... ;
SELECT * FROM TblName
WHERE (Fld1>P1 OR P1 IS NULL) AND (Fld2=P2 OR P2 IS NULL) AND (...)