بازدید: ۵۴٢٨

استفاده از یک پیوند سابفرم(subform) برای باز کردن یک فرم برای یک رکورد خاص (آموزش پیشرفته اکسس)

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

فرض کنید شما به رکورد نمایش داده شده بر روی فرم نگاه می کنید. فرم مربوطه حاوی یک سابفرم(subform) است که تعدادی از رکوردهایی را نمایش می دهد که در نمای datasheet خلاصه شده اند. در این پست می خواهیم نحوه ایجاد یک فرم جدید در یک رکورد خاص را نشان دهیم که در هنگام کلیک بر روی یک لینک خاص روی سابفرم ایجاد می شود.

برای این منظور ما از فرم Customer order استفاده می کنیم. قسمت اصلی فرم، Customer Order را نمایش می دهد و  سابفرم نیز Order Details ذخیره شده در جدول junction را نمایش می دهد. هنگامی که کاربری بر روی لینک تولیدی در Order Deatils از سابفرم کلیک می کند، Product Form برای رکورد مربوط  به آن محصول خاص باز می شود.

 

سابفرم

شکل 1 : Orders فرم. کلیک بر روی لینک محصول در سابفرم Order Details باعث می شود تا فرم Product رکورد مورد نظر باز شود (شکل 2).

 

سابفرم

شکل 2: Products فرم رکورد مشخص شده را در سابفرم شکل بالا نمایش می دهد.

 

هنگامی که کاربر بر روی لینک مربوطه کلیک می کند، رویداد On_click کادرمتنی اجرا می شود و یک سابروتین کوچک از VBA را اجرا می کند. در زیر می توانید قسمتی از دستوری را که مربوط به باز کردن فرم Product در رکورد مربوطه می باشد مشاهده کنید:

 

Dim varWhereClause As String
varWhereClause = "ID = " & Me!productId
DoCmd.OpenForm "frmProducts", , , varWhereClause

 

این دستور با تعریف یک متغیر رشته ای آغاز می شود تا بدین طریق یک SQL Where Clause را نگه دارد. خط بعدی متغیر رشته ای را قرار می دهد. توجه داشته باشید که چگونه آخر رشته به فیلد ProductId فیلد سابفرم که بر روی آن کلیک شده است، مراجعه می کند. خط آخر، از دستور DoCmd OpenForm برای باز کردن Product Form استفاده می کند.

در زیر می توانید تمامی مراحل قرار دادن آنها در این مکان را مشاهده کنید:

  1. ایجاد یک فرم Customer Order به همراه سابفرم Order Details.
  2. ایجاد یک فرم Products.
  3. حال نیاز است تا به عقب باز گشته و سابفرم Order Deatils را ویرایش کنید.

 

سابفرم

 

4- بر روی فیلد ProductId کلیک کنید و سپس صفحه PROPERTIES را باز کنید.

5- در زیر برگه FORMAT، خصوصیت IS_HYPERLINK را بر روی YES قرار دهید. سپس خصوصیت DISPLAY_AS_HYPERLINK را بر روی SCEEN_ONLY قرار دهید. اینکار باعث می شود تا ظاهر فیلد ProductId به یک حالت فوق پیوند تغییر کند.

6- در زیر برگه EVENT صفحه PROPERTIES، بر روی خانه ON_CLICK کلیک کنید. سپس بر روی علامت سه نقطه که در سمت راست آن قرار دارد کلیک کنید تا کادر مکالمه CHOOSE BUILDER باز شود.

7- حال کافی است CODE BUILDER را از لیست مربوطه انتخاب کنید و بر روی OK کلیک کنید تا ویرایشگر VBA باز شود.

8- دستورات نوشته در زیر را در ویرایشگر VBA، بین خطوط Private Sub و Exit Sub کپی کرده و بچسبانید.

 

On Error GoTo myError
Dim varWhereClause As String
varWhereClause = "ID = " &  Me!productId
DoCmd.OpenForm "frmProducts", , , varWhereClause
leave:
Exit Sub
myError:
MsgBox Error$
Resume Next

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

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