در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

آموزش اکسس (Access) قسمت 4 : فیلترینگ و ایجاد ارتباط بین جدولها

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

فیلتر کردن جدولها :

فیلتر کردن بمنظور نمایش رکوردهائی از جدول که مقادیر خاصی دارند صورت میپذیرد و یا بالعکس بمنظور عدم نمایش رکوردهائی از جدول که مقادیر خاصی دارند، اعمال میگردد.روش اول برای انجام فیلتر، بدین صورت است که؛ ابتدا فیلد مورد نظرتان که میبایست حاوی مقدار خاصی باشد را انتخاب نمائید. سپس در گروه Sort & Filter گزینه Filter را انتخاب نمائید، مطابق تصویر زیر:

آموزش اکسس (Access) قسمت 4 : فیلترینگ و ایجاد ارتباط بین جدولها

سپس از منوی باز شده که حاوی کلیه اطلاعات موجود در این فیلد است، مقدار خاصی را که برای نمایش یا عدم نمایش مورد نظرتان است، انتخاب نمائید و سایر مقادیر را غیر فعال کنید، همانند تصویر زیر:

آموزش اکسس (Access) قسمت 4 : فیلترینگ و ایجاد ارتباط بین جدولها

نکته ای که اینجا نباید از آن غافل بود، این است که در این قسمت با استفاده از گزینه Text Filters میتوانید به تنظیمات بیشتری بشرح ذیل برای فیلتر کردن دسترسی داشته باشید:

آموزش اکسس (Access) قسمت 4 : فیلترینگ و ایجاد ارتباط بین جدولها

روش بعدی برای انجام فیلتر این است که مکان نمای خود را در سلول حاوی مقدار خاص از فیلد مورد نظرتان قرار دهید و سپس در گروه Sort & Filter از زبانه Home گزینه Selection را انتخاب نمائید، مطابق تصویر زیر:

آموزش اکسس (Access) قسمت 4 : فیلترینگ و ایجاد ارتباط بین جدولها

برای از بین بردن اثر فیلتر بر روی فیلد، میتوانید در گروه Sort & Filter از زبانه Home از گزینه Toggle Filter استفاده نمائید، و اگر دوباره این گزینه را انتخاب کنید، مجدداً فیلترینگ به جدول اعمال خواهد شد.

و امّا برقراری ارتباط بین جدولها در بانک اطلاعاتی:

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

برای تفهیم بیشتر موضوع، طبق مثال زیر عمل مینمائیم:

آموزش اکسس (Access) قسمت 4 : فیلترینگ و ایجاد ارتباط بین جدولها

3 جدول فوق شامل مشخصات دانش آموزی ، مشخصات دروس و نمرات میباشند. همانگونه که مشاهده مینمائید؛ جدول نمرات شامل شماره دانش آموزی و شماره درس و نمره مأخوذه در آن میباشد، اما نام دانش آموز و نام درس در آن قابل مشاهده نیست.

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

با توجّه به اینکه فیلد شماره دانش آموزی در جدول مشخصات دانش آموزان و فیلد شماره درس در جدول مشخصات دروس، مقادیر منحصر بفردی دارند، پس به عنوان کلید اصلی در این جداول انتخاب میشوند، اما این فیلدها در جدول نمرات شامل مقادیر تکراری¬اند و به عنوان فیلدهای مشترک شناخته مشوند.

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

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

نکته: جدولهائی را که میخواهیم با هم ارتباط دهیم، میبایست در یک دیتابیس باشند.

هم اکنون برای ایجاد ارتباط بین جدولهای بالا، یکی از جدولها را از میکنیم ، سپس از گروه Relationships در زبانه Database Tools گزینه Relationship را انتخاب میکنیم.(در Access 2013). پس از انجام این کار کادر Show Table نمایان میگردد و اگر ظاهر نشد، بر روی گزینه Show Table از گروه Relationships کلیک کنید.

آموزش اکسس (Access) قسمت 4 : فیلترینگ و ایجاد ارتباط بین جدولها

نام جداولی که مورد نظرتان است را انتخاب و گزینه Add را انتخاب کنید تا بصورت کادری کوچک مطابق تصویر زیر به صفحه اضافه گردند. و در آخر گزینه Close را انتخاب کنید.

آموزش اکسس (Access) قسمت 4 : فیلترینگ و ایجاد ارتباط بین جدولها

هم اکنون قبل از ایجاد ارتباط بین جداول، جدولهائی که قبلاً در این دیتابیس باز بوده اند را ببندید و فقط ویزارد مربوط به Relationships را باقی بگذارید تا در حین ایجاد ارتباط با پیغام خطا روبرو نشوید، پس از انجام این کار، کلید اصلی از جداول اصلی را با انتخاب و دراگ کردن بر روی فیلد مشترک در جدول فرعی بکشید، با انجام این کار کادر Edit Relationships بصورت زیر مشاهده میشود:

آموزش اکسس (Access) قسمت 4 : فیلترینگ و ایجاد ارتباط بین جدولها

این کادر نام فیلدهای شرکت کننده در ارتباط را نمایش میدهد و براي اينكه قوانين مربوط به جامعيت ارجاعي اجرا شوند گزینه Enforce Referentioal Integrity را انتخاب کنید. این قوانین شامل موارد زیر میباشد که در ایجاد ارتباطات توسط Access رعایت میگردد:

1- از ورود مقادير در فيلد كليد خارجی (در جدول فرعی) ممانعت صورت میپذیرد اگر این مقادیر در فیلد کلید اصلی (از جدول اصلي) وجود نداشته باشد.

2- به کاربر اجازه ویرایش مقادیر و یا حذف رکوردی از جدول اصلی که در جدول فرعی نیز استفاده شده است را نمیدهد.

همانگونه که توضیح داده شد با اعمال قوانین مربوط به جامعیت ارجاعی دچار مقداری محدودیت در حذف و بروزرسانی جداول مرتبط میشویم، ولی برای این منظور میتوانیم از قابلیتهای حذف و بروز رساني آبشاري فيلدها با استفاده از گزینه های Cascade Delete Related Fields و Cascade Update Related Fields برخوردار شویم.

با استفاده از قابلیتهای حذف و بروز رساني آبشاري فيلدها وقتی کلید اصلی در جدول اصلی تغییر پیدا میکند، مقدار فیلد مشترک در جدول فرعی نیز تغییر پیدا میکند، و هنگامی که رکورد فیلد اصلی در جدول اصلی حذف گردد، این مقدار نیز از فیلد مشترک در جدول فرعی حذف میگردد.

و در نهایت گزینه OK را انتخاب نمائید.

نویسنده : محمود کیاستی

منبع : جزیره مبانی کامپیوتر و مهارت های هفتگانه وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

#آموزش_Microsoft_Access #فیلترینگ #ایجاد_ارتباط_بین_جدولها
عنوان
1 آموزش اکسس (Access) قسمت 1 : آشنائی و مفاهیم مقدماتی رایگان
2 آموزش اکسس (Access) قسمت 2 : کار با Tables رایگان
3 آموزش اکسس (Access) قسمت 3 : فیلدها و رکوردها رایگان
4 آموزش اکسس (Access) قسمت 4 : فیلترینگ و ایجاد ارتباط بین جدولها رایگان
5 آموزش اکسس (Access) قسمت 5 : ایجاد پرس و جو (Query) رایگان
6 آموزش اکسس (Access) قسمت 6 : ایجاد فرم (Form) رایگان
7 آموزش اکسس (Access) قسمت 7 : ایجاد گزارش (Report) رایگان
8 آموزش اکسس (Access) قسمت 8 : روشهای دیگر در ایجاد گزارش (Report) رایگان
9 آموزش اکسس (Access) قسمت 9 : مراحل انجام یک پروژه بصورت کلی رایگان
زمان و قیمت کل 0″ 0
6 نظر
محمد نصیری

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

saeed_smco

خیلی خوب بود اما سوال؟

وقتی تیک قوانین جامعیت رو میزنیم فارق از تیک های delete و Update با خطای

the database engine could not lock table '' because it is already in use by another person or process

مواجه میشویم .

چرا؟

محمود کیاستی

سلام، همانطور که در بالا توضیح داده شده است، برای جلوگیری از بروز این خطا، ابتدا در زمان ایجاد ارتباط بین جداول جایی که ویزارد Relationship باز است، سایر جدولهائی که قبلاً در این دیتابیس باز بوده اند را می بایست ببندید و فقط ویزارد مربوط به Relationships را باقی بگذارید و نهایتاً گزینه Enforce Referentioal Integrity را انتخاب کنید.

saeed_smco

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

momeni767

سلام

ممنون بابت توضیحات کامل و شفافتون.

یه سوال:

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

cascade update related fields

به چه دردی می خوره؟

آیا خود به خود آپدیت می شه یا ما باید بهش بگیم آپدیت شو. (مثل Query ها)

ممنون می شم اگه توضیح بدید.

محمود کیاستی

ضمن عرض سلام و خوش آمد گویی به شما دوست عزیز

همانطور که در بالا ذکر شد، قوانین جامعیت ارجاعی مانع از حذف اطلاعاتی از جدول اصلی که در جدول فرعی مورد استفاده قرار گرفته، میشود (خصوصاً حذف ناخواسته) و از ورود داده های غیر معتبر در جدول فرعی ممانعت به عمل می آورد اگر در جدول اصلی عیناً وجود نداشته باشد. حال با استفاده از گزینه های Cascade Delete Related Fields و Cascade Update Related Fields بدون در نظر گرفتن برخی از محدودیتهای قوانین جامعیت ارجاعی، قابلیت حذف و بروز رساني در داده های موجود در فیلدهای اصلی و مشترک به شما داده می شود. مثلاً اگر کد یا شماره دانش آموزی را از جدول اصلی حذف کنید، در جدول فرعی نیز به صورت خودکار اطلاعات مربوط حذف خواهد شد.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....