PDA

View Full Version : سوال: دریافت اطلاعات یکسان از دو فرم مختلف برای یک گزارش



Mehr@ban
یک شنبه 03 بهمن 1395, 13:11 عصر
سلام

قصد دارم در یک گزارش مشخص داده ها و اطلاعات رو از دو فرم واکشی کنم

بخوام واضحتر توضیح بدم این میشه:
یک فرم ثبت و نمایش اطلاعات اعضا رو داریم
یک فرم هم به عنوان فرم چاپ داریم

حالا قرار هست گزارش گیری رو بنا بر دو فیلد کد ملی و نام دوره آموزشی که در هر دو فرم موجود هست، انجام بدیم
کدی که من در بخش رکورد سورس گزارش نوشتم اینجوری هست:
144209
به عنوان مثال یکی از کدهای بالا رو توضیح میدم
Like "*" & [Forms]![Print Form]![Combo21]

اون Like "*" به این منظور گذاشتم که اگر اطلاعات از [Forms]![Print Form]![Combo21] واکشی نشد و موجود نبود، اطلاعات خود کوئری رو نمایش بده و دیگه خطا نده که گزارش از فلان فرم ارسال نشده!

امیدوارم که تونسته باشم منظورم رو رسونده باشم که چی میخوام

Mehr@ban
یک شنبه 03 بهمن 1395, 14:23 عصر
این رو هم اضافه کنم که من طبق آموزشی که در آدرس زیر هست این طرح رو انجام دادم!


http://www.datapigtechnologies.com/flashfiles/passparamtoreport.html

Mehr@ban
سه شنبه 05 بهمن 1395, 19:23 عصر
دوستان راه حلی به ذهنشون نرسید؟

mazoolagh
پنج شنبه 07 بهمن 1395, 09:51 صبح
فکر کنم میخواستین با استفاده از * در like بنحوی پارامتر optional رو شبیه سازی کنین.
در هر صورت لازم نیست طراحی کوئری رو پیچیده کنین.

شما کوئری رو بصورت پارامتریک استاندارد تعریف کنین:


like [code_meli]
like [code_dore]

حالا هر جا نیاز داشتین پارامترها رو به کوئری پاس کنین:

SUB REPORT_OPEN
DIM QD AS QUERYDEF
SET QD=CURRENTDB.QUERYDEFS("QueryName")
DIM FRM AS FORM
IF Student_Form THEN
SET FRM=FORMS("STU_FORM")
ELSE
SET FRM=FORMS("PRINT_FORM")
ENDIF
QD.PARAMETERS("code_meli")=FRM![CODE_MELI]
QD.PARAMETERS("code_dore")=FRM![CODE_DORE]
ME.RECORDSOURCE=CURRENTDB.QUERYDEFS("QueryName").OPENRECORDSET.NAME
END SUB

Mehr@ban
پنج شنبه 07 بهمن 1395, 11:50 صبح
فکر کنم میخواستین با استفاده از * در like بنحوی پارامتر optional رو شبیه سازی کنین.
در هر صورت لازم نیست طراحی کوئری رو پیچیده کنین.

شما کوئری رو بصورت پارامتریک استاندارد تعریف کنین:


like [code_meli]
like [code_dore]

حالا هر جا نیاز داشتین پارامترها رو به کوئری پاس کنین:

SUB REPORT_OPEN
DIM QD AS QUERYDEF
SET QD=CURRENTDB.QUERYDEFS("QueryName")
DIM FRM AS FORM
IF Student_Form THEN
SET FRM=FORMS("STU_FORM")
ELSE
SET FRM=FORMS("PRINT_FORM")
ENDIF
QD.PARAMETERS("code_meli")=FRM![CODE_MELI]
QD.PARAMETERS("code_dore")=FRM![CODE_DORE]
ME.RECORDSOURCE=CURRENTDB.QUERYDEFS("QueryName").OPENRECORDSET.NAME
END SUB


بسیار عالی
دست درد نکنه مومن

کدت عالی بود