فراخوانی و مدیریت فرم ها در محیط VBA

نحوه فراخوانی و مدیریت فرم های اکسس از طریق کدهای VBA

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

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

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

به اینکه به خوبی بدانید که چگونه می توانید انواع فرم ها را ایجاد نموده و در کجا ها آنها را فراخوانی کنید

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

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

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

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

مفهوم نخست چیزی است که از آن تحت عنوان ” کلکسیون ”  نام می بریم .

منظور از کلکسیون (collection ) چیست ؟

 

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

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

کلکسیون در اکسس

تصویر فوق  بالا دو گونه مختلف از اشیا می باشد.

ما برای اینکه بهتر بتوانیم این اشیا و مورد بررسی قرار بدهیم  اشیایی که با یکدیگر ویژگی‌ها و اشتراکات خاصی دارند را گروه های مربوط به خود قرار می دهیم.

به هر کدام از این گروه ها در  اصطلاح یک مجموعه یا کلکسیون میگوییم.

عین همین کار نیز در محیط اکسس  مصداق دارد. 

فراخوانی و کار با مجموعه ها در اکسس

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

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

به عنوان مثال تمامی فرم های موجود در نرم افزار اکسس  تحت مجموعه‌ای به نام Forms طبقه بندی می شود

و یا تمامی گزارش های موجود در نرم افزار تحت مجموعه‌ای به نام Reports قرار می گیرند

کاری که ما میخواهیم صورت دهیم این است که از طریق محیط ویرایشگر کد های VBA خود  به این اشیا دسترسی پیدا بکنیم

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

معرفی شی مورد نظر به اکسس 

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

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

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

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

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

استفاده از اپرتورهای مناسب

پس ابتدا نام مجموعه مورد نظر خود را ذکر می کنیم .

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

لازم به ذکر است که بین نام مجموعه و اپراتور مد نظر نباید هیچ فاصله ای درج گردد .

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

واما برویم به سراغ اپراتورهای مورد نظر .

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

  • اپراتور   ” ! ” 

اولین اپراتور مورد نظر اپراتور   یا علامت  !  است . 

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

  • اپراتور نقطه ” . ” 

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

برای فهم بهتر موضوع به مثال های زیر دقت کنید . 

  1. ما فرمی در اکسس ایجاد نموده و نام آن را  frm_student  گذاشته ایم . 

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

برای این منظور داریم :

Forms ! frm_student

۲٫ اکنون می خواهیم  عنوان فرم خود را تغییر دهیم .

برای این منظور باید به خاصیت Caption  فرم خود دست پیدا نماییم .

Caption  خاصیتی است که خود اکسس آن را ایجاد نموده است پس داریم. 

 

“ثبت نام دانش آموزان “=Forms ! frm_student . caption

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

اما در عین حال می تواند حاوی چندین شی دیگر نیز باشد .

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

متن راهنما در تکس باکس اکسس

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

اما در عین حال می تواند خود شامل مجموعه ای از اشیاء باشد . 

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

اکنون سوال این است که ما چگونه می توانیم به اشیای موجود در این فرم دسترسی پیدا نماییم . 

برای این کار کافی است نام شی مورد نظر را که درون فرم ما قرار دارد را بدانیم . 

با فرض اینکه نام دکمه موجود در فرم ما cmd_register  باشد برای دستیابی به این دکمه از طریق VBA داریم : 

form2 ! cmd_register 

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

form2 ! cmd_register..backcolor=vbgreen 

در کد فوق ما خاصیت رنگ پس زمینه دکمه مورد نظر را به رنگ سبز تغییر می دهیم .

استفاده از عبارت Me  در آدرس دهی فرم 

یکی از عبارت های پرکاربرد برای اشاره به یک فرم عبارت Me   می باشد . 

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

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

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

به مثال های زیر دقت نمایید .

ما فرمی داریم به نام frm_student  که درون ان اشیای زیر را قرار داده ایم .

مدیریت فرم های اکسسعنوان فرمی که اکسس ایجاد نموده است “Form 7 ”  است .

ما می خواهیم با لود شدن و نمایش فرم به کاربر عنوان فرم ما به “مشخصات دانش آموز” تغییر پیدا کند . 

برای این منظور می توانیم از کد زیر بهره ببریم . 

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

آموزش اکسس2016 بازدید : 408 views ۲ فروردین, ۱۳۹۸ ۰