تابع () DMAX در اکسس و نحوه کار با آن

تابع () DMAX  یکی از توابع دخلی در نرم افزار اکسس می باشد .

این تابع در زیر گروه توابعی تحت عنوان Aggregation Function  قرار دارند .

البته در گذشته ما در خصوص این نوع از توابع در این سایت مطلب تحت عنوان آشنایی با توابع Aggregation  مطلبی را قرار دادیم و در آنجا به تفصیل در خصوص این توابع صحبت کردیم .

توابعی که در این گروه قرار می گیرند همگی با حرف D  شروع می شوند .

کلمه D  اشاره به Domain Aggregation  دارد .

حالا فارغ از اینکه این عبارت ها و اصطلاحات به چه معنا و مفهومی میباشد ما امروز می خواهیم در خصوص تابع Dmax  بطور اختصاصی صحبت نماییم .

اینکه این تابع از چه آرگومانهایی تشکیل شده ؟

و اینکه نحوه استفاده از آن را با یک مثال کاربردی بطور کامل تشریح کنیم .

پس با ما همراه باشید .

آشنایی با آرگومانهای تابع () DMAX

به تصویر زیر نگاه کنید .

 

تابع () DMAX

 

این تصویر نمای کلی مربوط به تابع Dmax  به همراه آرگومانهای آن را برای ما به نمایش می گذارد .

اول اجازه بدهید که با آرگومانهای این تابع آشنا شویم .

آرگومان اول Expr  است .

Expr   مخفف Expression  است .

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

آرگومان دوم نام جدول یا کوئری است که  فیلد مورد نظر ما که همان آرگومان اول  است در داخل آن قرار دارد .

قسمت سوم هم که Criteria  می باشد .

Criteria   شرطی است که ما برای تابع در نظر می گیریم .

اینجا یک نکته مهم وجود دارد .

ما در این تابع ۳ آرگومان داریم اما فقط آرگومان آخر ما که همان Criteria   باشد در داخل  [    ]    قرار گرفته است .

این به این معنی است که وجود آرگومان Criteria   در ساختار این تابع کاملا اختیاری است .

یعنی با بودن شرط در ساختار تابع ، این تابع آن را در نظر خواهد گرفت و با توجه به شرط داده شده به تابع خروجی مورد نظر را به ما می دهد . 

اما اگر شرطی هم به تابع ندهیم تابع با استفاده از دو آرگومان اول خود به ما خروجی خواهد داد . 

پس چه در این تابع و چه در  سایر توابع در نرم افزار اکسس به خاطر داشته باشید هر کدام از آرگومانهای تابع درون یک قلاب یا همان [    ] وجودشان برای ادامه کار آن تابع ضروری و حیاتی نیست و اکسس هم به شما ایرادی نمی گیرد . 

اما سایر آرگومانهایی که  بدون قلاب هستند را حتما باید برای تابع تعریف کنید تا آن تابع بتواند کار خود را انجام دهد .

خوب  تا به اینجا قسمت تئوری ماجرا بود .

اجازه بدهید همه آنچه را که تا به اینجا گفتیم را در قالب یک پروژه کاملا اجرایی دنبال کنیم تا بهتر با زیر و بم کار با این تابع آشنا شویم .

استفاده از تابع () DMAX   در یک پروژه عملی

خوب در این قسمت می خواهیم بصورت عملی با کاربرد این تابع در محیط اکسس آشنا شویم .

برای شروع کار به این تصویر زیر نگاه کنید .

تابع () DMAX

ما در این تصویر یک جدول داریم مربوط به  لیست چند عنوان کتاب. 

تصویر زیر هم همان جدول را در  نمای طراحی به ما نمایش می دهد .

 

تابع () DMAX

 

یک فرم هم از این جدول تهیه می کنیم.

 

تابع () DMAX

تا به اینجای کار که چیز  خاص و جدیدی نیست .

اما کاری که می خواهیم انجام بدهیم چیست ؟

کاری که می خواهیم بکنیم در جهت رفع یک مشکل است .

مشکلی که خود من هم همیشه با آن مواجه بودم .

مشکل این بود که وقتی که فرم خود را باز می کردم تا اطلاعات مورد نظر برای کتاب جدید را وارد کنم نمی دانستم که آخرین کد کتابی که در جدول وجود دارد چه کدی است .

به همین خاطر مجبور می شدم که به سراغ جدول خودم بروم آن را باز کنم و بعد از کلی جستجو آخرین کد کتاب را پیدا کنم و در ادامه کد جدید را برای کتاب جدید ایجاد کنم  .

کار مورد نظر این است که وقتی ما  مشخصات مربوط به یک کتاب جدید را از طریق فرم درج می کنیم بلافاصله برنامه  به ما آخرین شماره کتاب موجود در جدول را به ما نمایش بدهد . 

و البته برای این کار نیازی به باز کردن جدول مربوطه هم نداشته باشیم .

این کار چه جوری انجام می دهیم .

خیلی ساده با استفاده از تابع Dmax .

و اما چگونه ؟

یافتن بالاترین مقدار در یک فیلد از جدول با استفاده از تابع Dmax .

اول که یک تکس باکس به بالای فرم خودمون اضافه می کنیم .

اسم این تکس باکس رو هم  txt-1  می گذاریم .

حالا یک راست به سراغ دکمه ای که بر روی فرم مشاهده می کنید می رویم .

 در داخل  رویداد On Click  این دکمه می خواهیم کد نویسی کنیم .

هدف این است که بیشترین کد کتابی که در حال حاضر در داخل جدول ما وجود دارد را پیدا کنیم .

خوب برای این کار  خیلی ساده می توانیم از تابع D max  استفاده کنیم .

اما قبل از اینکه از خود  تابع استفاده کنیم یک متغیر تعریف می کنیم .

این متــــغیـــــر قرار است که هر عددی را که تابع D max  از جدول استخراج کرد را در خود ذخیره کند .

من این متغیر را به اسم myval  نام گذاری کرده ام .

 ما در تابع فوق  از اکسس خواسته ایم که بالاترین عدد مربوط به فیلد bookcode  را ز جدول tblbook  استخراج کند .

خوب این تابع کار خود را انجام می دهد و یالاترین عدد مربوط به کد کتاب ها را از جدول استخراج و در متغیر myval  ذخیره می کند .

حالا ما باید این مقدار را به کاربر نمایش دهیم .

برای این ار راهکارهای مختلفی در اختیار ما قرار داده شده است .

مثلا می توانیم برای نمایش این مقدار از یک مسیج باکس استفاده کنیم .

یا اینکه این مقدار را در داخب یک تکس باکس به کاربر نمایش دهیم .

خوب من راه دوم را انتخاب کرده ام .

برای این کار  در ادامه همان کدها این قطعه کد را اضافه می کنم .

خوب با این کار آخرین شماره مربوط به کد کتابی که در این جدول ثبت شده به کاربر نمایش داده می شود .

و از این طریق به راحتی متوجه می شویم که آخرین کد کتاب موجود در جدول چه عددی است .

اما بیایید باز هم مساله را کمی چالشی تر کنیم .

دوباره به جدول لیست کتابها یک نگاهی بیاندازید .

ما در این جدول لیستی داریم تحت عنوان موضوع کتاب و هر کدام از کتابها را بر مبنای موضوع آنها طبقه بندی کرده ایم .

حال می خواهیم کتابهای  هر موضوع خاص را بصورت مجزا شماره گذاری کنیم .

مثلا می خواهیم کتابهای با موضوع علمی همه از شماره ۱۰ شروع و در نهایت به شماره ۲۰ ختم شوند . 

یا کتابهای داستانی از شماره ۱ شروع و در نهایت به شماره ۱۰ ختم شوند . 

حالا یک کتاب جدید با موضوع علمی را می خواهیم وارد جدول خود کنیم .

خوب  ما در اینجا می خواهیم بدانیم که آخرین شماره کتابی که با موضوع علمی در جدول ما ثبت شده است چه شماره  ای است .

اگر بخواهیم از تابع Dmax  در حالت قبل استفاده کنیم ما بالاترین شماره موجود در  جدول را داریم .

که این آخرین شماره  با توجه به جدول ما  طبعا متعلق به کتابهای فلسفی خواهد بود .

اما برای پیدا کردن آخرین شماره کتاب با توجه به موضوعات کتابها ما می توانیم به سراغ بخش شرطی  تابع خود برویم .

استفاده از  شرط در تابع Dmax

در جدول ما نام فیلدی که موضوعات کتابها را در آن وارد می کنیم تحت عنوان Type  نام گذاری شده است .

بر روی فرم ما هم یک کمبو باکس وجود دارد که نام آن را cbotype  در نظر گرفته ایم و موضوعات کتابها را می توانیم از طریق آن انتخاب کنیم. 

ما به زبان انسانی به نرم افزار می گوییم  که :

” به موضوع انتخاب شده در  cbotype  بر روی فرم  توجه کن .

با توجه  به این موضوع بالاترین کد کتابی را که در جدول برای این موضوع درج شده است را برای من پیدا و آن را  در داخل یک  متغیر ذخیره کن .”

حالا همین کارها را به زبان برناه نویسی ترجمه و در اختیار برنامه قرار می دهیم .

ترجمه صحبت های فوق بصورت کدهای قابل فهم برای کامپثوتر به صورت زیر خواهد بود .

و در آخر هم که می توانیم بگوییم که با این بالاترین کد مربوط به هر موضوع چه کند و آن را چگونه به کاربر نمایش بدهد .

مثلا من می خواهیم این الترین عدد مر بوط به هر موضوع از کتابها را بصورت یک مسیج باکس به اطلاع کاربر برسانم .

پس از کد زیر استفاده می کنم .

 

 

 

خروجی و نتیجه نهایی کار هم شبیه تصویر زیر خواهد بود .

 

تابع () DMAX

 

() DMAX

پس در این مطلب به خوبی توانستیم به نحوه کار با تابع () DMAX در محیط اکسس آشنا شویم و با نحوه کاربرد این تابع در محیط اکسس با استفاده از مثالهایی که بررسی کردیم آشنا شدیم .

اگر که این مطلب برای شما مفید بود و یا سوالی در خصوص کار با این تابع دارید می توانید در قسمت نظرات در پایین همین مطلب نظر و یا سوال  خود را درج کنید ..

تابع () DMAX

آموزش اکسس بازدید : 1,154 views 20 نوامبر, 2019 ۰