PDA

View Full Version : چطور میشه یه کوری با چند شرط OR گرفت ؟



Lord_Voldemort
یک شنبه 20 شهریور 1384, 11:01 صبح
سلام
من میخوام یه Quarry بگیرم با چند شرط و شرطهام بایدOr باشن . من شرط اول رو تو And و بقعیه رو بصورت نزولی تو خطهای پایین (or) منویسم
ولی کوری ORها رو در نظر نمیگیره یا اونجوری که من مخوام در نظر نمیگیره !؟
میشه بگید چطور میشه این Quarry رو گرفت ؟( چون من حالتهای مختلف امتحان کردم و نشد )

mohammadgij
یک شنبه 20 شهریور 1384, 16:43 عصر
شما میخوای که شرط اول And بشه با تمام شروط Or
یعنی(x=1) and (y=1 or y=2 or y=3)
اینجوری می خوای؟ اگه اینجور میخوای باید شرطی که میخوای And بشه رو در تمام خانه های پایین که داری مقدار Or رو وارد می کنی تکرار کنی
گرفتی؟

Lord_Voldemort
دوشنبه 21 شهریور 1384, 03:08 صبح
اولی رو گرفتم
ببین من یه فرم دارم که چندتا Combo برای دادن گزارش داره
مثلا کشور . استان و شهر میخوام اگه کاربر یکی یا دوتا از این فیلد رو پر کرد برحسب همون فیلدها بهش گزارش داده بشه ولی وقتی Or میکنم با اون چیزی که من میخوام جور در نمی یاد
ممنون که جواب میدید ;)

شاپرک
دوشنبه 21 شهریور 1384, 08:12 صبح
view> SQLview > و بعد هر جور که می خوای شرط بذار بعد که بیای تو design خودش درست میکنه . امتحان کن

6raya1043
سه شنبه 22 شهریور 1384, 11:18 صبح
این مشکل من هم است
دقیقا نمونه فایل ارسالی ایشان را من دارم یک تکس باکس دارم که رکوردسورسش کئوری است که در قسمت اند و اور آن همینها رانوشتم
اما فقط فیلد اول که اند است را جستجو میکند و فیلدهای اور را انجام نمی دهد

Lord_Voldemort
سه شنبه 22 شهریور 1384, 13:42 عصر
مرسی از جوابتون ولی متاسفانه هیچ کدوم تا حالا جواب ندادن ! فکر میکنم که سئوال من کاملا مشخصه اگه مکمنه یه مثال با توجه به سئوال بزنید

شاپرک
سه شنبه 22 شهریور 1384, 15:51 عصر
روشی که من گفتم امتحان کردید !
100% جواب میده .خودم قبلا این مشکل رو داشتم

alikarimi
سه شنبه 22 شهریور 1384, 17:12 عصر
انجام این کار در قسمت design گاهی پیچیده میشه. اما روش به این صورته:
میخوایم age برابر با 20 باشه و محل سکونت iran یا canada باشه:
location age
20 canada
20 iran

ولی وقتی تعداد اینها زیاد بشه باید بری تو قسمت sql view
در اونجا میتونی where clause رو به دلخواه درست کنی:

where age= 20
and
(location='canada' or location='iran')
اینها رو تو چند خط نوشتم چون این ادیتور خرابشون میکرد.

Lord_Voldemort
شنبه 26 شهریور 1384, 13:16 عصر
سلام
متاسفانه هیچ کدوم از راهها جواب نداد . من همه رو تو sql view, Or کردم تا زمانی که شما یکی از فیلد ها رو به تنهایی وارد میکنید جواب میده اما زمانی که 2 تا فیلد و با هم وارد میکنید فیلد دوم در نظر گرفته نمیشه مثلا تو فایلی که فرستادم وقتی کشورو وارد میکنید جواب میده ولی وقتی استان وارد می کنید در نظر گرفته نمیشه .خودتون فایل رو ببینید و جواب بدین :چشمک:
WHERE (((Table1.contry)=Forms!Form1!kesh) or ((Table1.Osetan)=Forms!Form1!os) Or ((Table1.Sity)=Forms!Form1!sity))
اگر این کار امکان پذیر نباشه باید واسه همچین چیزی 8 کوری ساخت :متعجب:
ضمنا یاد تون باشه که من شاید نخوام همیشه همه فیلدها رو پر کنم .گاهی 1 گاهی 2 تا... :افسرده:
حتما فایل ببنید دقیقا مشخص میشه که چی میخوام :بوس:

alikarimi
یک شنبه 27 شهریور 1384, 14:16 عصر
من مشکلی در عملکرد این فایل ندیدم.
کشور رو گذاشتم ایران و استان رو کالیفرنیا و جواب درست داد.
یعنی رکوردهایی که کشورشون ایرانه یا استانشون کالیفرنیاس رو برگردوند.

Lord_Voldemort
یک شنبه 27 شهریور 1384, 20:47 عصر
ولی چیزی که من میخوام این نیست!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! :گیج:
من حالتی رو میخوام اگر وارد کردم کشور ایران واستان ، تهران فقط شهرههای کشور ایران استان تهران نشون بده نه اینکه شهر استانای دیگه رو به خاطر اینکه کشورشون ایران بوده نشون بده !!!!!!!!
شاید بگید And کن. بله And مشکل من حل میکنه به شرطی که همه فیلدها رو پر کنم و من مخوام اگر یکی یا دوتا و یا همه فیلدها رو پر کنم همه And در نظر بگیره ولی مشکل اینکه اگر من یکی از این فیلدها رو پر نکنم بهم گزارش داده نمیشه و من این حالتی رو میخوام که نیاز منو بر آورده میکنه والا واسه یه همچین چیزی 8 تا کوری مجزا میخواد و اگر Access قدرت تولید این حالت رو , تو یه کوری نداشته باشه واقعآ واسش متاسفم و واقعآ مسخره س.
چون این یه نمونه خیلی کوچیک و وای به روزی که این 3 فیلد بشه 10 تا اونوقت چی ؟؟؟!!!

mohammadgij
دوشنبه 28 شهریور 1384, 10:24 صبح
من تو Query نتونستم اما یه نگاه به فایل بکن. اون فرم جدیده


راستی تا یادم نرفته. دوستان چرا اصرار دارن که Access رو و یا هر برنامه دیگه ای رو کم توان نشون بدن؟
آقا من و شما بلد نیستیم مشکلمون رو حل کنیم که دلیل نمیشه اکسس وای به حالشه!!!!!!!!!!!!!
خداییش من توی Query بلد نبودم متغییر Parametric از طریق دستور Open Query بدم وگرنه مشکل شما حل بود
qurShart رو اجرا کن بعد جایی که از شما شرط میخواد مثلا بنویس Contry=iran ببین قشنگ برات میاره یا چند تا شرط رو با ذکر نام فیلد بنویس

mRizvandi
دوشنبه 28 شهریور 1384, 12:02 عصر
سلام

من تازه این تاپیک رو دیدم و فکر می کنم این جواب شما باشه:
SELECT *
FROM MyTable
WHERE (MyField1 = 'Value1') OR (MyField1 = 'Value1' AND MyField2 = 'Value2')
با این کوری شما یا کشورها رو پیدا می کنید یا کشورها و شهرها که اگر شهری رو وارد نکرده باشید مشکلی نخواهد داشت.

alikarimi
دوشنبه 28 شهریور 1384, 12:56 عصر
از iif استفاده کن:
iif
)
isnull
)
kesh
(
;true;
kesh = con
(
تو چند خط نوشتم چون قاطی میشد.

6raya1043
دوشنبه 28 شهریور 1384, 13:01 عصر
دقت کنید عملکرد اشتباه است

Lord_Voldemort
دوشنبه 28 شهریور 1384, 19:42 عصر
سلام
محمد جان حق با شماس ولی اکر دقت کنی من گفتم اگر...
از همه کسایی که جواب ددان ممنون
اون فایل من گرفتم ولی درست جواب نمیداد یعنی اصلآ شرطها رو در نظر نمیگرفت نمیدونم شاید عیب از دستگاه من باشه ولی من چندتا نکته از کوری هاش یاد گرفتم که برام خیلی جالب بود و یه سئوال برام پیش اومد که چطور فرم رو به حالت تبولار (Tabular) در ورده بودید
اون دستور اقای ریزوندی هم یه فیلد باید همیشه(کشور) وارد بشه
آقا علی در مورد این iif بیشتر توضیح بده چون من که چیزی نفهمیدم
بازم ممنون از همگی
بای

sarami
چهارشنبه 30 شهریور 1384, 04:07 صبح
فکر میکنم فایل نمونه مشکلتونو حل کن

mohammadgij
چهارشنبه 30 شهریور 1384, 13:29 عصر
دستت درد نکنه. خوب بود. من یه سوال دارم sarami جون. می گم میشه مثل Stored Procedure های Sql توی Access هم پارامتر های ورودی رو به Query ها به صورت پارامتریک داد؟
یه نگاهی به فایل من بنداز که گذاشتم بالا. Query درست کردم اگه خودشو اجرا کنی خب میتونی دستورت رو بدی اما اگه بخوای از توی فرم با دستور Open Query کار کنی چه طور باید پارامتر رو پاس داد؟

Lord_Voldemort
چهارشنبه 30 شهریور 1384, 18:49 عصر
ای ول
این همون چیزی بود که من می خواستم :بوس:
مهدی جان من زمین خوردتم از همین فردا میرم ثبت نام میکنم و از همین الا نم شروع کردم به نوشتن :گیج:
ولی یه جاهایی آدم گیر میکنه اعصابش خط خطی میشه و فکر میکنه که برنامه تو اون مورد بیشتر از این قابلیت نداره . اما انصافآ من هر روزی که با Access بیشتر آشنا میشم فکم بیشتر کش میاد
بازم ممنونم از همگی


p.s . اکسس ایرد داره منم باید اطلاعاتمو بیشتر کنم *100 :بامزه: :گیج: :بوس:

myinbox221
چهارشنبه 15 تیر 1390, 21:25 عصر
سلام دوستان
چطور میشه از شر پیغامهای موقع اجرای کوئری خلاص شد ؟
آیا اصلا" امکانش هست ؟ خیلی اعصاب خردکنه .

hasanr
چهارشنبه 15 تیر 1390, 22:23 عصر
قبل و بعد از کد اجرای کوئری یک خط اضافه کنید

Application.SetOption "confirm action queries", False
docmd.OpenQuery "query1"
Application.SetOption "confirm action queries", True

aromega65
پنج شنبه 24 آذر 1390, 21:36 عصر
سلام با یه خط کوتاه قبل از اجرای دستور کوئری پیغام ها حذف می شن:

DoCmd.SetWarnings False

همین