PDA

View Full Version : مبتدی: انتخاب بین کوئری ها



m3343kh
شنبه 02 اردیبهشت 1402, 14:45 عصر
با سلام خدمت دوستان و اساتید عزیز
عیدتان مبارک
جدول و فرمی طبق فایل پیوست دارم که میخواهم با انتخاب هر کدام از عناوین Frame نمایش حسابها، کوئری مربوط به آن روی زیر فرم subform اعمال شود.

منتظر یاری سبزتان هستم.

m3343kh
سه شنبه 05 اردیبهشت 1402, 22:28 عصر
سلام
کسی نظری، پیشنهادی نداره؟

mazoolagh
شنبه 16 اردیبهشت 1402, 09:10 صبح
سلام و روز خوش
این که بعد از 2 هفته حتی یک نفر هم برنامه پیوست رو دانلود نکرده شاید نشوندهنده این هست که اطلاعات تکمیلی لازم رو ندادین.
اگر چند اسکرین شات و توضیح کافی و روشن بگذارین شاید حتی نیاز به پیوست برنامه هم نباشه.

m3343kh
شنبه 16 اردیبهشت 1402, 22:28 عصر
سلام
حق با شماست

با تصویر توضیح میدهم شاید دوستی راه حلی داشته باشد.

154636
1- وقتی شبا را انتخاب میکنیم تنها فیلدهایی که در ستون Code عبارت IR را شامل هستند، نمایش داده شوند
2- وقتی غیره را انتخاب می کنیم تنها فیلدهایی که در ستون Code عبارت IR ندارند و نیز فاقد عدد هستند نمایش داده شوند
3- وقتی همه را انتخاب می کنیم همه فیلدها نمایش داده شوند.

شروط فوق در کوئری های درون فایل ساخته شده اند.
پیش فرض همه می باشد

سپاس از توجه تان

mazoolagh
یک شنبه 17 اردیبهشت 1402, 11:12 صبح
راه حل سریع بر اساس طراحی فعلی:

کافی هست در رویداد afterupdate مربوط به optiongroup بر اساس value انتخاب شده ،
recordsource سابفرم رو به کوئری متناظر منتسب کنین:
Private Sub Frame13_AfterUpdate()
Select Case Frame13
Case 1
Me.subform.Form.RecordSource = "sheba_qry"
Case 2
Me.subform.Form.RecordSource = "other_qry"
Case 3
Me.subform.Form.RecordSource = "all_qry"
End Select
End Sub

mazoolagh
یک شنبه 17 اردیبهشت 1402, 12:32 عصر
مواردی که میتونین در نظر بگیرین:

1- نیازی به سابفرم نیست!
2- نیازی به طراحی سه کوئری جداگانه هم نیست

m3343kh
یک شنبه 17 اردیبهشت 1402, 22:38 عصر
سلام
بسیار سپاسگزارم
پیروز و سر بلند باشید و دعای خیر ما بدرقه زندگیتان:تشویق:

بهمن1345
دوشنبه 16 مرداد 1402, 11:02 صبح
مواردی که میتونین در نظر بگیرین:

1- نیازی به سابفرم نیست!
2- نیازی به طراحی سه کوئری جداگانه هم نیست


سلام
اینکه فرمودید نیازی به سابفرم و سه کویری چداگانه نیست رو میشه توضیح بدید

mazoolagh
سه شنبه 17 مرداد 1402, 14:17 عصر
سلام
اینکه فرمودید نیازی به سابفرم و سه کویری چداگانه نیست رو میشه توضیح بدید

سلام و روز خوش

بطور خلاصه :
1- در نمونه پیوست شده در پرسش اولیه، از یک فرم unbound فقط بعنوان کانتینر بخش شرط جستجو استفاده شده و نتایج در یک سابفرم جدا نمایش داده میشه.
که میشه اون سابفرم رو کلا حذف و فرم رو bound کرد ، و همچنین بخش شرط جستجو رو هم به header این فرم برد.

2- سه کوئری جداگانه هم ساخته شده که با توجه به شرایط جستجو بعنوان رکوردسورس اون سابفرم استفاده بشه (پست شماره 5)
که این هم کلا نیاز نیست و مستقیما قابل اعمال هست.

اگر لازم هست اطلاع بدین که یک نمونه بر این اساس درست کنم تا بتونین مقایسه کنین.

بهمن1345
سه شنبه 17 مرداد 1402, 14:57 عصر
سلام و روز خوش

بطور خلاصه :
1- در نمونه پیوست شده در پرسش اولیه، از یک فرم unbound فقط بعنوان کانتینر بخش شرط جستجو استفاده شده و نتایج در یک سابفرم جدا نمایش داده میشه.
که میشه اون سابفرم رو کلا حذف و فرم رو bound کرد ، و همچنین بخش شرط جستجو رو هم به header این فرم برد.

2- سه کوئری جداگانه هم ساخته شده که با توجه به شرایط جستجو بعنوان رکوردسورس اون سابفرم استفاده بشه (پست شماره 5)
که این هم کلا نیاز نیست و مستقیما قابل اعمال هست.

اگر لازم هست اطلاع بدین که یک نمونه بر این اساس درست کنم تا بتونین مقایسه کنین.

سلام وقت بخیر
اگر نمونه بذارید خیلی ممنون میشم

mazoolagh
چهارشنبه 18 مرداد 1402, 12:39 عصر
سلام وقت بخیر
اگر نمونه بذارید خیلی ممنون میشم

سلام دوباره
1- فرم رو با نمونه اولیه پست 1 مقایسه کنین
2- کد رو با کد پست 5 مقایسه کنین - هر دو روش زیر درست هست:
Private Sub Frame13_AfterUpdate()
Select Case Frame13
Case 1
RecordSource = "SELECT * FROM Table1 WHERE [Code] Like 'IR*'"
Case 2
RecordSource = "SELECT * FROM Table1 WHERE [Code] Like '#*'"
Case 3
RecordSource = "SELECT * FROM Table1"
End Select
End Sub
Private Sub Frame13_AfterUpdate()
Select Case Frame13
Case 1
DoCmd.ApplyFilter , "[Code] Like 'IR*'"
Case 2
DoCmd.ApplyFilter , "[Code] Like '#*'"
Case 3
DoCmd.ShowAllRecords
End Select
End Sub

بهمن1345
چهارشنبه 18 مرداد 1402, 14:29 عصر
سلام دوباره
1- فرم رو با نمونه اولیه پست 1 مقایسه کنین
2- کد رو با کد پست 5 مقایسه کنین - هر دو روش زیر درست هست:
Private Sub Frame13_AfterUpdate()
Select Case Frame13
Case 1
RecordSource = "SELECT * FROM Table1 WHERE [Code] Like 'IR*'"
Case 2
RecordSource = "SELECT * FROM Table1 WHERE [Code] Like '#*'"
Case 3
RecordSource = "SELECT * FROM Table1"
End Select
End Sub
Private Sub Frame13_AfterUpdate()
Select Case Frame13
Case 1
DoCmd.ApplyFilter , "[Code] Like 'IR*'"
Case 2
DoCmd.ApplyFilter , "[Code] Like '#*'"
Case 3
DoCmd.ShowAllRecords
End Select
End Sub


سلام
سپاسگزارم