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

نمایش و عدم نمایش ساب فرم و تغییر دادن اندازه فرمها توسط کدنویسی در قالب اکسس

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

سلام خدمت آفیس بازای عزیز،حتما با مطلبی که در دوره مقدماتی خدمتتون ارائه به این موضوع اشراف نسبی دارید.

حتما با کلمه   ” فرم ” و ” ساب فرم ” در اکسس آشنا هستید و مثال شایعی که داره و تو آموزش مقدماتی هم به اشاره کردیم میتونه همون نام استانها و شهرستانها باشه . حالا فرض کنید که ما فرمی داریم که نام استانها توی اون قرار گرفته و توی اون فرم یک ساب فرم داریم که نام شهرستانها رو تو خودش نگهداری میکنه . حالا اگه ما بخوایم چک باکسی داشته باشیم که اگر فعال شد نام شهرستانها نمایان بشه و اگه غیر فعال شد نام شهرستانها ( ساب فرم ) مخفی بشه چکار باید بکنیم .

خب فرض می کنیم که دیتا بیس رو داریم کارهایی که باید انجام بدیم به ترتیب زیر هست :

  1. یک چک باکس یا Option Button توی فرم اصلیمون قرار می دیم
  2. چک باکس رو انتخاب میکنیم و به رویداد After Update اون تو محیط کد نویسی میریم
  3. با فرض اینکه نام چک باکس ما Opt1 و نام فرم اصلی ما Form1 و ساب فرم ما Form1_s است کد زیر را تایپ می کنیم .

نکته اگر کد را کپی کردید حتما باید از نامهای موجود در دیتابیس خود استفاده نمائید.

Private Sub Opt1_AfterUpdate()
If Me.Opt1 = True Then
Form_ّForm1.ّForm1_S.Visible = True
Else
Form_ّForm1.ّForm1_S.Visible = False
End If
End Sub

در توضیح کد بالا برای نمایش ساب فرم و مخفی نمودن آن :

اگر تیک چک باکس Opt1 خورده بود

سابفرم موجود در Form1 رو که به نام Form1_s می باشد نمایش بده .

در غیر اینصورت

سابفرم موجود در Form1 رو که به نام Form1_s می باشد مخفی کن.

به همین راحتی حالا به جای ساب فرم می تواند هر تغییر دیگری با فعال و غیر فعال شدن چک باکس در فرم صورت بگیرد . به تصویر زیر دقت کنید ( البته نام آبجکتها متفاوت است)

 

ساب فرم در اکسس و تغییر اندازه فرم
نمایش و عدم نمایش ساب فرم در اکسس

 

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

 

Private Sub Opt1_AfterUpdate()
If Me.Opt1 = True Then
Form_ّForm1.ّForm1_S.Visible = True
DoCmd.MoveSize , , , 8000
Else
Form_ّForm1.ّForm1_S.Visible = False
DoCmd.MoveSize , , , 2000
End If
End Sub

در واقع ما دو خط کد اضافه کردیم که در زمان نمایش ساب فرم ارتفاع فرم رو افزایش میده و در زمان مخفی بودن ساب فرم ارتفاع فرم اصلی رو کم میکنه. البته این کد برای تغییر اندازه زمانی کاربرد داره که خاصیت Popup روی Yes تنظیم شده باشه.

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

16 دیدگاه دربارهٔ «نمایش و عدم نمایش ساب فرم و تغییر دادن اندازه فرمها توسط کدنویسی در قالب اکسس»

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

  2. با سلام
    در مثال فرم و ساب فرم بالا، اگر بخواهیم با کلیک بر روی چک باکس بجای مخفی شدن ساب فرم ، تعدادی از ستون های ساب فرم مخفی و یا آشکار شوند چه کار باید بکنیم؟
    ممنون از راهنمایی و پاسختان.

  3. با سلام
    یک فرم دارم که شامل یک “ساب فرم” با چند ستون است.
    میخواهم با زدن یک دکمه ستونهای 1 و 2 در “ساب فرم” هیدن شود.
    لطفاً راهنمایی کنید.

  4. با سلام و خسته نباشید،

    توی اکسس یک فرم دارم برای آزاذ کرد ایتم به اسم ReleaseItemSelection
    توی این فرم در قسمت بالا یک listbox وجود دارد که اطلاعات مربوط به HoldItemTable رو نشون میده
    در قسمت پایین یک ساب فرم قرار داره به اسم ItemSelectForRelease
    نیاز به کدی دارم که با کلیک کردن یک دگمه به اسم Select بتوانم ایتم انتخاب شده از لیست باکس رو توی ساب فرم فقط ببینم.

    ممنون میشم اگر راهنمایی بفرمایید
    آریا
    arya507ca@gmail.com
    (در ضمن اعداد توی ایمیل من بصورت انگلیسی است)

  5. با سلام ضمن تشکر فراوان
    کلاً کد نویسی در فرمهای دارای ویزارد (فرمهایی که دارای ساب فرم هستند) برام امکان پذیر نیست .لطفاً راهنمایی بفرمایید.

      1. سلام و عرض ارادت .کلاً در فرمهایی که دارای ساب فرم هستند ، کد نوشته شده برای کنترلها اجرا نمیشه و خطای زیر رو بهم میده:
        This error occurs when an event has failed to run because Microsoft Office Access cannot evaluate the location of the logic for the event. For example, if the OnOpen property of a form is set to =[Field], this error occurs because Access expects a macro or event name to run when the event is fired.
        ممنون از راهنمایی شما.

  6. سلام وقتی این کار بکینم از اول نمایش میده ساب فرم رو میخوام که تا تیک زده نشه فعال نشه
    برای اینکه من دوتا ساب فرم گذاشتم چکار باید بگنم

  7. من یک فرم دارم که دارای یک ساب فرم است و داخل ساب فرم مقادیری از یک ریپورت است که می خواهم اون مقدار در یک تکست ضرب یا تقسیم بشه اما نمیشه؟
    لطفا راهنمایی نمایید باتشکر
    توروخدا یک جواب بده لطفا

    1. نادر بحری

      سلام
      دیتابیس باید بررسی بشه
      از طریق تیکت پیگیری کنید اگر زمان کمی لازم داشته باشه رایگان انجام میشه و در غیر اینصورت برآورد هزینه انجام میشه

  8. اگه ما 10 نوع محصول داشتیم که هر کدومم 7 یا 8 تا زیر شاخه مخصوص به خودشو داشت و بخوایم گزینشی باشه که محصول a رو انتخاب کردیم 7 زیر شاخه مخصوص خودشو بیاره باید چیکار کنیم (در محیط فرم نباشه)

پیمایش به بالا