استفاده از دو زیرفرم در یک فرم
با سلام خدمت دوستان و اساتید محترم
یک فرم دارم که دو زیرفرم در آن قرار دارد
هر دو زیرفرم شامل یک لیست می باشند که در ستون "کد" با هم مشترکند
میخواهم با کلیک بر روی هر ردیف در ساب فرم اول، ردیفهای مشترک در "کد" در ساب فرم دوم نمایش داده شوند.
با تشکر فراوان از پاسختان
نقل قول: استفاده از دو زیرفرم در یک فرم
نقل قول: استفاده از دو زیرفرم در یک فرم
سلام
سعی کنید علاوه بر توضیحات واضح و شفاف، نمونه ای هم ارسال کنید تا مشکل یا سوالتون رو بتونید بهتر برسونید و البته بهتر و سریعتر هم راهنمایی بشید
1 ضمیمه
نقل قول: استفاده از دو زیرفرم در یک فرم
نمونه و توضیحات خدمتتان ارسال گردید.
تشکر
نقل قول: استفاده از دو زیرفرم در یک فرم
بین فیلدهای "کد" در هر دو جدول ارتباط برقرار است
یا چشم نمیبیند یا راه نمیداند
هر کاو به وجود خود دارد ز تو پروایی
1 ضمیمه
نقل قول: استفاده از دو زیرفرم در یک فرم
سلام
فرم Title_tbl رو بررسی کنید
صرفا با استفاده از بخش ویزارد درست شده و کدنویسی دستی نداشته
معنا و منظور از شعر رو هم متوجه نشدم :لبخند:
نقل قول: استفاده از دو زیرفرم در یک فرم
نقل قول: استفاده از دو زیرفرم در یک فرم
ممنون از زحمتی که کشیدید ولی به سوالم جواب سوالم نبود
نقل قول: استفاده از دو زیرفرم در یک فرم
نقل قول:
نوشته شده توسط
m3343kh
ممنون از زحمتی که کشیدید ولی به سوالم جواب سوالم نبود
نمونه ای بود تا به عنوان الگو بتونید ازش استفاده کنید
بهرحال سعی میکنم نمونه ای که ارسال کردین رو اصلاح کنم
نقل قول: استفاده از دو زیرفرم در یک فرم
چیزی شبیه ارتباط بین یک کومبوباکس و ساب فرم، در یک فرم.
منتهی به جای "کمبوباکس" یک "ساب فرم" قرار دارد.
نقل قول: استفاده از دو زیرفرم در یک فرم
نقل قول: استفاده از دو زیرفرم در یک فرم
خواسته شما با master/detail معمولی متفاوت هست و باید از رخداد form current استفاده کنین.
به این صورت که در رخداد form current فرم master، با توجه به کلیدی که رابطه بر اساس اون تعریف شده، recordsource فرم detail رو تعیین میکنید:
parent!SubForm_Deatil.form.recordsource="SELECT * FROM MasterTable WHERE KeyField=" & me.KeyField
نکاتی هم هست که باید بهش دقت کنین:
1- در فرم master و قبل از اینکه recordsource فرم detail رو set کنین، اول باید مطمئن بشین فرم detail حتما load شده باشه.
2- recordsource فرم detail رو نباید مستقیم به table/query منسوب کنین، باید خالی باشه تا با کد تعیین بشه.
3- باید کدهای مناسب برای کنترل مقادیر وقتی که در فرم Master رکورد جدید میسازین بنویسین (در نمونه پیوست این کدها نیست!)
4- همینجور در فرم Master باید کد مناسب برای ست کردن default value فیلد کلید (که رابطه بر اساس اون تعریف شده) در فرم detail دیده بشه (این کدها هم در نمونه پیوست نیست)
نقل قول: استفاده از دو زیرفرم در یک فرم
در نمونه پیوست فرم Master ما categories نام داره،
اول یک متغیر تعریف میکنیم که برای چک کردن load شدن فرم details (به نام products) از اون استفاده میکنیم:
Private Sub Form_Load()
TempVars.Add "Products_IsLoaded", False
End Sub
حالا میتونیم کد مناسب رو بنویسیم:
Private Sub Form_Current()
If Not TempVars("Products_IsLoaded") Or IsNull(Me.CategoryID) Then Exit Sub
Parent!Subform_Products.Form.RecordSource = "SELECT * FROM Products WHERE CategoryID=" & Me.CategoryID
End Sub
نقل قول: استفاده از دو زیرفرم در یک فرم
در رخداد form load فرم details (همون products) ، متغیری رو که تعریف کرده بودیم به نشانه Load شدن فرم مقدار دهی میکنیم
و همینجور recordsource اولیه رو ست میکنیم:
Private Sub Form_Load()
TempVars("Products_IsLoaded") = True
Me.RecordSource = "SELECT * FROM Products WHERE CategoryID=" & Me.Parent!SubForm_Categories!CategoryID
End Sub
نقل قول: استفاده از دو زیرفرم در یک فرم
و فراموش نمیکنیم که هنگام بستن فرم اصلی (به اسم main) ، متغیری رو که تعریف کرده بودیم پاک کنیم:
Private Sub Form_Close()
TempVars.Remove ("Products_IsLoaded")
End Sub
1 ضمیمه
نقل قول: استفاده از دو زیرفرم در یک فرم
1 ضمیمه
نقل قول: استفاده از دو زیرفرم در یک فرم
نقل قول: استفاده از دو زیرفرم در یک فرم
بسیار سپاس گذارم دوست عزیز
تشکر فراوان
متشکرم