ایجاد ارتباط بین دو کمبو باکس در اکسس

ایجاد ارتباط بین دو کمبو باکس در اکسس

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

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

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

 

مطلب مرتبط : مفهوم اشیاء در اکسس و برنامه نویسی VBA

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

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

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

 

 

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

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

پس با هم این مراحل را دنبال می کنیم : 

  • در اولین گام ما نیاز به ایجاد یک جدول برای ذخیره نام تمامی استانها داریم در زیر می توانید تصویری از نمای طراحی این جدول را مشاهده نمایید . نام این جدول را نیز  Tbl-ostan  در نظر بگیرید . 

 

ایجاد ارتباط بین دو کمبو باکس در اکسس

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

 

ایجاد ارتباط بین دو کمبو باکس در اکسس

 

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

 

ایجاد ارتباط بین دو کمبو باکس در اکسس

 

در این جدول کد مربوط به هر شهرستان  به نام PK-shahrestan بعنوان کلید اولیه این جدول انتخاب شده است .

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

در فیلد مربوط به shahrestan -name  نیز می توانید نام شهرستان ها را درج نمایید .

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

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

ایجاد ارتباط بین دو کمبو باکس در اکسس

 

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

 

پس از طراحی و تکمیل اطلاعات هر  مربوط به هر دو جدول باید این جداول را به یکدیگر مرتبط نماییم برای این منظور از سربرگ DATABASE  TOOLS و از داشبورد relationships   گزینه relationships  را انتخاب نمایید . 

 

ارتباط بین دو کمبو باکس

 

برای برقراری ارتباط بین دوجدول کافی است کلید موس را  در حالی که بر روی فیلد pk-ostan  موجود در جدول Tbl-ostan نگه داشته اید آن را به سمت فیلد pk-ostan موجود در جدول tbl-shahrestan بکشید به محض رها کردن موس پنجره Edit Relation  برای شما باز می شود در این پنجره فقط سه تیک مربوط به چک باکس های موجود را بزنید و در انتها گزینه Creat را انتخاب نمایید . 

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

ایجاد ارتباط بین دو کمبو باکس در اکسس

 

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

 

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

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

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

 

 

ارتباط بین دو کمبو باکس

  • حال باید تغییراتی را در تنظیمات مربوط به این دو کمبو باکس ایجاد نماییم . برای این منظور فرم خود را در نمای طراحی باز نمایید . 

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

ایجاد ارتباط بین دو کمبو باکس در اکسس

 

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

 

ایجاد ارتباط بین دو کمبو باکس در اکسس

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

 

ایجاد ارتباط بین دو کمبو باکس در اکسس

 

تنظیمات موجود در سربرگ Data  مربوط به این کمبو را نیز مطابق تصویر زیر انجام دهید . 

ارتباط کمبوها

 

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

ایجاد ارتباط بین دو کمبو باکس در اکسس

 اکنون برای حصول نتیجه نهایی فقط یک مرحله مانده است و آن هم این است که مجددا کمبوی مربوط به نام استانها را انتخاب نمایید در سربرگ Enent  از پنجره propertysheet در رویداد مربوط به Befor update  قطعه کد زیر را درج نمایید .

 

(Private Sub Combo13_BeforeUpdate(Cancel As Intege

Me.Combo15.Requery

End Sub

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

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

آموزش اکسس2016 بازدید : 93 views ۲۸ مهر, ۱۳۹۷ ۰