تابع Dcount و کاربرد آن در برنامه نویسی VBA در اکسس

امروز می خواهیم در خصوص تابع Dcount  در محیط برنامه نویسی VBA  در نرم افزار اکسس با هم صحبت کنیم .

اینکه این تابع چیست و چه کاربردی می تواند برای ما داشته باشد .

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

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

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

۱- معرفی عملکرد تابع Dcount

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

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

اجازه بدهید از همین ابتدای کار مساله را با ذکر یک مثال کاربردی بررسی کنیم .

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

تابع Dcount

ما در اینجا یک فرم داریم که اطلاعات مربوط به جدولی به نام  “tbl-books” را نمایش می دهد .

اگر که دقت کنید در قسمت پایین و سمت راست این فرم یک کادر وجود دارد که در داخل آن عدد ۱۵ درج شده است .

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

این عدد از کجا آمده است .

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

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

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

اما چگونه ؟

خیلی ساده با استفاده از تابع  ِ D count .

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

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

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

پیش از این بررسی کردیم : آشنایی کامل با توابع نوع Domain  در اکسس.

۲- معرفی پارامترهای تابع D Count

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

تابع Dcount

فکر می کنم تمام آن چیزی را که باید در خصوص این تابع بدانیم را در این تصویر می توانید مشاهده کنید .

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

اولین آرگومان که به نام expr  است همان آیتم مورد نظر است که ما می خواهیم آن را شمارش کنیم .

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

آرگومان یا پارامتر بعدی به نام domain  است .

این پارامتر  تعیین می کند که آیتم مورد نظر ما برای شمارش در کجا قرار دارد . در یک جدول یا یک کوئری ؟

در هر حال نام آن جدول یا کوئری را در اینجا وارد می کنیم .

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

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

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

۳- بررسی مثال های کاربردی در کار با تابع Dcount

 در اینجا با هم به بررسی حالت های مختلف  از نحوه استفاده از این تابع می پردازیم .

حالت اول :

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

نام  جدول حاوی نام کتابهای ما “tblbooks”  است

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

 در اینجا ما فیلد مربوط به کد کتابها را از جدول “tblbooks” مورد شمارش قرار می دهیم . 

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

مطمئنا برخی از افراد تازه کار از خود می پرسند که این تابع را در کجا باید بنویسم ؟

چه جوری مقادیری که توسط این تابع استخراج می شود را استفاده کنم ؟

برای پاسخ به این پرسش ها من فرم زیر را طراحی و ایجاد کرده ام .

 

تابع Dcount

 

این فرم حاوی چند تکس باکس است .

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

خوب برای این کار ابتدا وارد محیط برنامه نویسی VBA  می شوم .

شی فرم را انتخاب و   در رویداد  on Load  آن کد زیر را وارد می کنم .

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

تابع Dcount

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

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

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

فرض کنید که می خواهیم بدانیم چه  تعداد کتاب داریم  که در مهرماه چاپ شده اند . 

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

ما در این کد از برنامه خواسته ایم که  :

” بشمار تعداد شماره کتابهایی را که تاریخ چاپ آنها در مهر بوده است ” .

تابع Dcount

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

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

حالا شرط دیگری را با هم بررسی می کنیم .

این بار فرض کنید می خواهیم بدانیم چه تعداد کتاب داریم که قیمت آنها بالای ۵۰۰۰ تومان است .

خوب به زبان محاوره می خواهیم به برنامه بگوییم که :

” تعداد کتابهایی را که قیمت آنها بالاتر از ۵۰ هزار تومان است را برای ما بشمار ”

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

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

تابع Dcount

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

به زبان ساده باید از برنامه بخواهیم که :

” کتابهایی را شمارش کن که تاریخ فروش آنها را برایت مشخص می کنم”  .

در این حالت عبارت شرط ما بصورت زیر در خواهد آمد

همانطور که مشاهده می کنید وقتی عبارت شرط ما به حالت تاریخ باشد باید حتما تاریخ مورد نظر را در داخل  دو علامت #  # قرار دهیم

 

تابع Dcount

 

پس به عنوان یک قانون کلی در این تابع و البته دیگر توابع هم خانواده Domain Function که قبلا راجع به آنها صحبت کرده بودیم این سه مورد را مدنظر قرار دهید : 

۱- اگر شرط ما دارای عدد بود نیاز به استفاده از هیچ کاراکتر اضافه ای نداریم .

۲- اگر شرط ما دارای متن بود باید حتما متن را در داخل دو سینگل کوت قرار دهیم .

۳ – اگر شرط ما دارای تاریخ بود باید تاریخ مذکور را در داخل دو علامت  #   # قرار دهید .

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

اما اینجا یک اشکال دیگر هم پیش می آید .

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

یعنی ما تعیین کردیم که متابهایی که در مهر ماه چاپ شده اند شمرده شوند .

اما اگر کاربر بخواهد کتابهایی را که مثلا در آبان ماه چاپ شده اند بشمرد چه باید بکند ؟

یا  تعداد کتابهایی را که کمتر از ۵۰ هزار تومان قیمت دارند را بشمرد چه باید بکند ؟ 

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

اما اگر ما بخواهیم که عبارت های شرط را بر مبنای انتخاب کاربر مقدار دهی کنیم چه باید بکنیم ؟

چاره کار چیست ؟

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

استفاده از تابع DCount  بر مبنای شرط تعیین شده از سوی کاربر .

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

حالا فرض ککنید که من یک تکس باکس بر روی فرم خودم قرار داده و نام آن را هم txt criteria  گذاشته ام .

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

حال اگر این کاربر در تکس باکس متن “آبان ” را وارد کند یعنی می خواهید عنوان های چاپ شده در این ماه را شمارش کند .

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

یعنی اینطوری :

 یا برای شمارش کتابها بر اساس شرطی که کاربر برای قیمت آنها تعیین می کند اگر یک تکس باکس دیگر به نام txtcriteria2  داشته باشیم  کد ما به حالت زیر در می آید .

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

پس می بینید که در هر حالت ساختار کد ما تغییراتی می کند .

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

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

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

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

برای این روش ویدئویی آموزشی تهیه شده است که در قالب یک آموزش یک دقیقه ای تهیه و در پیج اینستاگرام مربوط به سایت قرار گرفته است .

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

تابع Dcount

 

آموزش اکسس بازدید : 163 views 26 ژانویه, 2020 ۰