روش ساخت اسپلیت فرم (ارتباط متناظر و دو طرفه فرم اصلی با ساب فرم) بطوردستی
با سلام
چطوری میشه یه اسپلیت فرم دستی ساخت که ارتباط متناظر و دو طرفه بین فرم اصلی و ساب فرم وجود داشته باشه با ویزارد دکمه ها و تکست باکسهای خارج از جدول ظاهر نمیشن و کلیه تنظمیات ظاهر نیز بهم میریزه
با تشکر
1 ضمیمه
نقل قول: روش ساخت اسپلیت فرم (ارتباط متناظر و دو طرفه فرم اصلی با ساب فرم) بطوردستی
یه نمونه گذاشتم فرم اصلی unbound و با شی recordset عملیات چهارگانه روش اعمال و subform بطورbound به همون جدول متصل میشه . رو هر رکورد در سابفرم بری متناظرش در فرم اصلی ظاهر و هر گونه تغییرات اعم از آپدیت ،حذف و... متناظرا رو همون رکورد سابفرم اعمال میشه
نقل قول: روش ساخت اسپلیت فرم (ارتباط متناظر و دو طرفه فرم اصلی با ساب فرم) بطوردستی
سلام و روز خوش
1- فرم اسپلیت فقط یک دیتاشیت از جدول شما کنار فرم اضافه میکنه و با فرم master-detail که با ساب فرم ساخته میشه فرق میکنه!
2- نیازی هم به کاری نداره - شما کافی هست همون فرم معمولی رو برای حالت single طراحی کنین،
ولی default view اون رو split form بذارین و محل دیتاشیت رو هم مشخص کنین، همین!
کلا ساختش نیازی به ویزارد نداره و ویزارد همون فرمی رو طراحی میکنه که در حالت single طراحی میکرد.
البته با توجه به سایز و layout فرم باید حواستون به جای دیتاشیت باشه.
3- نیاز به کدنویسی برای عملیات insert/update/delete برای فرم bound موضوعیتی نداره،
و برای فرم unbound هم split بودن یا نبودنش تفاوتی ایجاد نمیکنه.
2 ضمیمه
نقل قول: روش ساخت اسپلیت فرم (ارتباط متناظر و دو طرفه فرم اصلی با ساب فرم) بطوردستی
یک نمونه براتون درست کردم که موضوع رو بهتر نشون میده:
ضمیمه 156344
ضمیمه 156345
نقل قول: روش ساخت اسپلیت فرم (ارتباط متناظر و دو طرفه فرم اصلی با ساب فرم) بطوردستی
Option Compare Database
Option Explicit
Private Sub BTN_ADD_Click()
On Error GoTo Error_Handler
DoCmd.GoToRecord , "", acNewRec
Me.CategoryName.SetFocus
Exit Sub
Error_Handler:
MsgBox Error$
End Sub
Private Sub BTN_DELETE_Click()
On Error GoTo Error_Handler
If Form.NewRecord Then
Beep
Else
If MsgBox( _
Title:="Delete Record?", _
Buttons:=vbYesNo + vbExclamation + vbDefaultButton2, _
Prompt:=Me.CategoryName) = vbYes Then
DoCmd.RunCommand acCmdDeleteRecord
If Me.NewRecord Then
DoCmd.GoToRecord , "", acLast
End If
End If
End If
Exit Sub
Error_Handler:
MsgBox Error$
End Sub
Private Sub BTN_FIRST_Click()
DoCmd.GoToRecord , "", acFirst
End Sub
Private Sub BTN_PREVIOUS_Click()
If Me.CurrentRecord > 1 Then
DoCmd.GoToRecord , "", acPrevious
End If
End Sub
Private Sub BTN_NEXT_Click()
If Me.CurrentRecord <> Me.RecordsetClone.RecordCount Then
DoCmd.GoToRecord , "", acNext
End If
End Sub
Private Sub BTN_LAST_Click()
DoCmd.GoToRecord , "", acLast
End Sub
1 ضمیمه
نقل قول: روش ساخت اسپلیت فرم (ارتباط متناظر و دو طرفه فرم اصلی با ساب فرم) بطوردستی
نقل قول: روش ساخت اسپلیت فرم (ارتباط متناظر و دو طرفه فرم اصلی با ساب فرم) بطوردستی
بی نهایت سپاسگذارم از اینهمه بذل عنایت وقت وانرژی
نقل قول: روش ساخت اسپلیت فرم (ارتباط متناظر و دو طرفه فرم اصلی با ساب فرم) بطوردستی
استاد در این روش دیتاشیت محدودیت پوزشین و اندازه داره یعنی نمی تونیم دیتا شیت رو به اندازه دلخواه و در هر جا از فرم که خواستیم بذاریم
نقل قول: روش ساخت اسپلیت فرم (ارتباط متناظر و دو طرفه فرم اصلی با ساب فرم) بطوردستی
نقل قول:
نوشته شده توسط
moustafa
بی نهایت سپاسگذارم از اینهمه بذل عنایت وقت وانرژی
نظر لطف شماست.
نقل قول:
در این روش دیتاشیت محدودیت پوزشین و اندازه داره یعنی نمی تونیم دیتا شیت رو به اندازه دلخواه و در هر جا از فرم که خواستیم بذاریم
دیتاشیت کنار فرم شما dock میشه؛ حالا میتونه چپ/راست/بالا/پایین اون باشه - ولی مثل سابفرم بخشی از فرم شما نیست،
یک split bar هست که در مرز بین فرم شما دیتاشیت قرار داره
و این bar رو میتونین جابجا کنین - یا کلا نمایش ندین که کاربر نتونه تغییر بده layout رو.
اگر حتما باید درون خود فرم باشه،
الزاما نیازی به سابفرم نیست (بهتره که continuous باشه) - میتونین از لیست باکس هم استفاده کنین،
مگر این که از هر دو جا بخواین ادیت کنین (که این هم چیز ضروری نیست).
نقل قول: روش ساخت اسپلیت فرم (ارتباط متناظر و دو طرفه فرم اصلی با ساب فرم) بطوردستی
نقل قول:
نوشته شده توسط
mazoolagh
نظر لطف شماست.
دیتاشیت کنار فرم شما dock میشه؛ حالا میتونه چپ/راست/بالا/پایین اون باشه - ولی مثل سابفرم بخشی از فرم شما نیست،
یک split bar هست که در مرز بین فرم شما دیتاشیت قرار داره
و این bar رو میتونین جابجا کنین - یا کلا نمایش ندین که کاربر نتونه تغییر بده layout رو.
اگر حتما باید درون خود فرم باشه،
الزاما نیازی به سابفرم نیست (بهتره که continuous باشه) - میتونین از لیست باکس هم استفاده کنین،
مگر این که از هر دو جا بخواین ادیت کنین (که این هم چیز ضروری نیست).
split bar فقط در یک قسمت طولی یا عرضی کم وزیاد میشه و هر دو باهم نمیشه اونم در نمای نمایش نه دیزاین .همینطور از مزایای ساب فرم formatting اونه تا لیست باکس یکنواخت و محدود