نمایش نتایج 1 تا 8 از 8

نام تاپیک: نوشتن یک کد در رویداد لود همه فرمها در اکسس

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #6
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    سن
    58
    پست
    1,057

    نقل قول: نوشتن یک کد در رویداد لود همه فرمها در اکسس

    درود بر استاد mazoolagh عزیز !
    با اجازتون من در کد های شما تغییراتی ایجاد کردم که ماحصل اون در نمونه ضمیه قرار دادم
    اما توضیح در خصوص تغییرات :
    بجای ماژول

    PUBLIC FUNCTION GLOBAL_ONLOAD(FORMNAME AS STRING)
    DOCMD.GOTORECORD ACDATAFORM , FORMNAME , ACNEWREC
    END FUNCTION




    ماژول زیر رو بدون آرگومان ایجاد کردم

    Public Function NewRec()
    DoCmd.GoToRecord , , acNewRec
    End Function

    بعد در سابروتینی که فرم ها در حالت دیزاین بازمیشن و کد اجرای انتقال به رکورد جدید درج میشه من OnLoad فرم رو مساوی عبارت "=NewRec()" قرار دادم . با این کار در واقع بجای ایجاد سابروتین Private Sub Form_Load()
    مستقیماً در همون قسمت OnLoad ماژول =NewRec() درج و فراخوانی میشه .
    ضمناً با توجه به اینکه در اجرای اولیه از کد DOCMD.Close acForm, frm, acSaveYes که مربوط به بستن فرمها در حالت دیزاین میباشه ایراد گرفته میشد بنده برای بستن فرم ها از ماژول زیر استفاده کردم:

    Public Function CloseAllForms()
    Dim lngLoop As Long
    For lngLoop = (Forms.Count - 1) To 1 Step -1
    DoCmd.Close acForm, Forms(lngLoop).Name, acSaveYes
    Next lngLoop
    End Function



    وبالاخره درج همه کد بصورت یکجا :

    Public Function CloseAllForms()
    Dim lngLoop As Long
    For lngLoop = (Forms.Count - 1) To 1 Step -1
    DoCmd.Close acForm, Forms(lngLoop).Name, acSaveYes
    Next lngLoop

    End Function
    Public Function NewRec()
    DoCmd.GoToRecord , , acNewRec
    End Function

    Public Sub EventNewRec()
    On Error Resume Next
    Dim Frm_Name As String
    Dim frm As Form
    Dim obj As AccessObject, dbs As Object
    Set dbs = Application.CurrentProject
    For Each obj In dbs.AllForms
    If obj.Name <> "FMain" Then
    Frm_Name = obj.Name
    DoCmd.OpenForm Frm_Name, acDesign, , , , acHidden
    Set frm = Forms(obj.Name)
    frm.OnLoad = "=NewRec()"
    CloseAllForms
    ' DOCMD.Close acForm, frm, acSaveYes
    End If
    Next obj
    End Sub


    ناگفته پیداست که با یک بار اجرای کد ماژول EventNewRec در رخداد کلیک کمند باتن فرم اصلی کد انتقال به رکورد جدید برای همیشه در قسمت OnLoad همه فرم ها درج میشه بنابراین با اجرای اولیه ماژول فوق دیگه نیازی به اجرای اون در دفعات بعد نمیباشه و میشه اون رو حذف کرد.
    ارادتمند : بهرامی
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله eb_1345 : جمعه 27 آبان 1401 در 12:22 عصر

تاپیک های مشابه

  1. طراحی نسخه اندرویدی برنامه نوشته شده با اکسس
    نوشته شده توسط soroush_k12 در بخش Access
    پاسخ: 7
    آخرین پست: پنج شنبه 10 دی 1394, 10:18 صبح
  2. سوال: قابل ویرایش کردن این فایل اکسس
    نوشته شده توسط arminloty در بخش Access
    پاسخ: 3
    آخرین پست: پنج شنبه 21 اسفند 1393, 18:22 عصر
  3. حرفه ای: مشکل ویرایش عکس در پایگاه داده اکسس
    نوشته شده توسط mortezasar در بخش C#‎‎
    پاسخ: 0
    آخرین پست: جمعه 20 دی 1392, 17:00 عصر
  4. حرفه ای: مشکل ویرایش عکس در پایگاه داده اکسس
    نوشته شده توسط mortezasar در بخش Access
    پاسخ: 0
    آخرین پست: جمعه 20 دی 1392, 16:49 عصر
  5. ویرایش رکورد مورد نظر در اکسس
    نوشته شده توسط ali190 در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 2
    آخرین پست: جمعه 01 مرداد 1389, 17:34 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •