بازدید: ۴۴۴

استفاده از سابفرمها (subforms) برای نمایش ارتباط یک به چند (آموزش پیشرفته اکسس)

بازگشت به صفحه اصلی آموزش پیشرفته اکسس

 

در پستهای قبل نحوه ایجاد یک ارتباط یک به چند را بین یک جدول Customer و جدول Orders آموزش دادیم. مشاهده کردیم که اکسس چگونه سفارشات مختلف را از مشتریانی که به آنها تعلق دارند، از هم جدا می کند. اینکار بعلت ایجاد یک فیلد کلید اولیه در جدول tblCustomer و یک فیلد کلید خارجی نظیر آن در جدول tblOrder و سپس ایجاد یک ارتباط یک به چند بین این دو جدول امکان پذیر بود. اکنون می خواهیم با استفاده از یک سابفرم(Subform) این ارتباط یک به چند را نمایش دهیم.

برای این منظور کار را با ایجاد یک فرم اصلی برای جدول Customer(frmCustomet) آغاز می کنیم. در این فرم رکورد مشتری نمایش داده خواهد شد. سپس فرم جدیدی را برای Orders Table ایجاد می کنیم(frmOrders) که در نمای Datasheet نمایش داده خواهد شد. ازاین فرم بعنوان سابفرم (subform) نامبرده می شود که در درون فرم frmCustomer قرار دارد. این فرم فهرستی از سفارشات را برای هر مشتری نشان می دهد. نتیجه نهایی باید شبیه به شکل زیر به نظر برسد:

 

سابفرمها در اکسس

 

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

زیرفرم پایینی سفارشات داده شده توسط مشتری را نشان می دهد.

 

ایجاد فرم Orders

 

اولین گام، ایجاد فرم سفارشات است که از آن بعنوان سابفرم(Subform) نامبرده می شود. نام آن را frmOrders می گذاریم.

 

1-برگه Create را از نوار Access انتخاب کنید.

2-بر روی آیکون Form Design در Forms Group از همان نوار کلیک کنید.

 

سابفرمها در اکسس

 

یک صفحه Form Design خالی باز می شود.

3-با  کلیک بر روی مربعی که در گوشه سمت چپ بالای صفحه Form Design قرار دارد، کل فرم را انتخاب کنید. با انجام اینکار یک مربع سیاه کوچکتر در وسط ظاهر می شود.

 

سابفرمها در اکسس

 

4- بر روی آیکون  SHEET PROPERTIES در گروه Tools نوار DESIGN کلیک کنید.

5- برگه DATA  را از PROPERTIES SHEET انتخاب کنید.

6- خصوصیت RECORD SOURCE را بر روی tblorder  قرار دهید.

 

سابفرمها در اکسس

 

7- در گروه TOOLS از نوار DESIGN، بر روی Add Existing Fields کلیک کنید.

8- بر روی علامت +  که در کنار tblOrders قرار دارد، کلیک کنید تا فهرست فیلد برای آن جدول باز شود.

 

سابفرمها در اکسس

 

9- اکنون ItemOrdered، Date و Price را از فهرست فیلدها انتخاب کنید. برای این منظور کافی است بر روی هرکدام از آنها دبل کلیک کنید. حال باید تمامی آنها در صفحه طراحی Form Design ظاهر شوند:

 

سابفرمها در اکسس

 

10- اکنون می خواهیم تا خاصیت DEFAULTVIEW فرم را تغییر دهیم. فرم را با استفاده از سه مرحله بالا انتخاب کنید (البته اگر هنوز انتخاب نشده باشد).

11- حال صفحه Properties را باز کنید.

12- خصوصیت DefaultView در دو خط پایینتر از برگه FORMAT از صفحه Property قرار دارد. با کلیک کردن بر روی فیلد Defaultview  سپس کلیک بر روی فلش انتهای کادر و انتخاب گزینه Datasheet، خصوصیت آن را به DataSheet تغییر دهید.

 

سابفرمها در اکسس

 

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

اکنون می توانید فرم را ببندید و آن را تحت نام frmOrders ذخیره کنید.

 

ایجاد فرم اصلی مشتری

 

برای نمایش مشخصات مشتری می خواهیم یک فرم اصلی برای مشتری ایجاد کنیم. این فرم دارای سابفرم Orders نیز می باشد که در آن تمامی سفارشات را برای هر مشتری خاص نمایش می دهد. مراحل 1 تا 9 نحوه ایجاد فرم orders را نشان می دهد و مراحل 10 به بعد در مورد نحوه ایجاد کنترل سابفرم آموزش می دهند.

 

  1. برگه Create را از نوار ابزار اکسس انتخاب کنید.
  2. در قسمت Forms Group نوار ابزار اکسس بر روی آیکون Form Design کلیک کنید.
  3. با کلیک بر روی مربع کوچکی که در گوشه سمت چپ و بالای Form Design قرار دارد(جایی که خط کش افقی و عمودی یکدیگر را قطع می کنند)، کل فرم را انتخاب کنید. با انجام اینکار، یک مربع کوچکتر در وسط ظاهر می شود.
  4. بر روی آیکون Properties Sheet در گروه Tools نوار ابزار Design، کلیک کنید.
  5. برگه Data را در صفحه Properties انتخاب کنید.
  6. خصوصیت Record Source را بر روی tblCustomer تنظیم کنید.
  7. در گروه Tools نوار ابزار Design بر روی آیکون Add Existing Fields کلیک کنید.
  8. بر روی دکمه علامت بعلاوه (+) مربوط به tblCustomer از فهرست Field کلیک کنید تا فهرست فیلد برای آن جدول باز شود.
  9. با دبل کلیک کردن بر روی اسامی فیلدهای FirstName، Surname، Address1، City و PostCode که در فهرست فیلدها قرار دارند، این اسامی فیلدها را انتخاب کنید.
  10. اکنون می خواهیم یک سابفرم درست کنیم. اینکار را بصورت دستی انجام می دهیم. برای این منظور برروی آیکون Use Control Wizards که در گروه Controls از نوار ابزار Design قرار دارد، کلیک کنید تا غیرفعال شود. زمانی غیرفعال است که دیگر به رنگ نارنجی نباشد.

 

سابفرمها در اکسس

 

11- در گروه Controls از نوارابزار Design، بر روی آیکون Subform کلیک کنید.

 

سابفرمها در اکسس

آیکون Subform در انتهای سطر قرار دارد و به رنگ نارنجی highlight شده است.

 

12- اشاره گر ماوس به آیکون Add Subform تغییر می کند.

13- آیکون Add Subform را به مکانی در زیر فیلدهای متنی دیگر در Form Design ببرید و کلیک کنید. اینکار باعث ایجاد یک سابفرم خالی بر روی فرم اصلی شما می شود. اکنون باید شبیه به شکل زیر به نظر برسد:

 

سابفرمها در اکسس

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

 

14- در این مرحله می توانید اندازه سابفرم را تغییر دهید.

15- حال در مرحله بعد باید خصوصیات سابفرم را به گونه ای تنظیم کنید تا tblorders را بعنوان سابفرم اصلی نمایش دهد. اکنون ممکن است بخواهید تا اینجا در این مرحله تفاوت بین کنترل سابفرم و فرم مشخص شود.

16- در صفحه طراحی Form Design برروی کنترل سابفرم کلیک کنید تا انتخاب شود. بعد از انتخاب آن، خطوط اطراف آن به رنگ نارنجی می شوند.

17- در گروه Tools از نوار ابزار Design، بر روی آیکون Properties کلیک کنید. اینکار باعث نمایش صفحه Properties برای سابفرم ما می شود.

18- برگه Data را از صفحه Properties انتخاب کنید.

19- اکنون خصوصیت Source Object را برروی tblOrders تنظیم کنید. به نحوه پر شدن اکسس در خصوصیت Link Master Fields که در زیر ID قرار دارد و نیز خصوصیت Link Chid Fields در زیر CustomerId قرار دارد، نگاه کنید. فیلد اصلی (Master Field)، فیلد کلید اولیه(ID) از tblCustomer است و فیلد نوزاد (Child Field) فیلد کلید خارجی (CistomerId) در tblOrder است. در صورت نیاز می توانید آن را بصورت دستی وارد کنید.

اکنون کنترل سابفرم ما برای نمایش فهرستی از سفارشات مشتریان شکل گرفته است. در این مرحله ممکن است بخواهید فرم خود را قدری منظم  و مرتب کنید و برچسبهای مناسبی را برای فیلدها وارد کنید. بعد از انجام اینکار، فرم خود را تحت نام frmCustomer ذخیره کرده و آن را در نمای Form باز کنید تا نتیجه کار خود را مشاهده کنید. باید شبیه به شکل زیر به نظر برسد:

 

سابفرمها در اکسس

 

همانطور که در تصویر فوق مشاهده می کنید، یک مشتری به نام John Jones، سه تا سفارش دارد که در سابفرم Orders نمایش داده شده است. اگر به ترتیب به هرکدام از رکوردهای مشتری بروید، مجموعه متفاوتی از سفارشات را مشاهده خواهید کرد که مربوط به همان مشتری است. مشاهده می کنید که هر مشتری در فیلد frmCustomer دارای سفارشاتی است که قبلا وارد کرده ایم. برای این منظور کافی است که فقط نتایج خود را از فیلد frmCustomer با  تصویر داده های زیر که در دو جدول مختلف ذخیره شده اند، مقایسه کنید:

 

سابفرمها در اکسس

 

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

 

بازگشت به صفحه اصلی آموزش پیشرفته اکسس

طراحی سایت و سئو توسط ضابط