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

نام تاپیک: DataMacro در جداول لینک شده

  1. #1
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    DataMacro در جداول لینک شده

    1- برای آموزش دیتامکرو تاپیک زیر رو ببینید:
    آموزش: آموزش DataMacro (barnamenevis.org)

    2- در سمت FrontEnd به Named Macro ها در سمت BackEnd دسترسی ندارین، بنابراین باید کارها رو در سمت FE انجام بدین.

    3- اگر در دیتامکروها از User Defined Functions استفاده کرده باشین، بعد از split کردن جدول باید اون توابع رو در سمت FE نگه دارین تا مکرو بهش دسترسی داشته باشه.
    توابعی که در BE باشند فقط در همونجا قابل دسترس هستن و چون بطور منطقی دسترسی مستقیم کاربر به BE بسته است، نیازی به اونها ندارید مگر زمانی که خودتون مستقیم با دیتا در BE سروکار داشته باشین.

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    نقل قول: DataMacro در جداول لینک شده

    در مثالی که آورده میشه یک جدول به شکل زیر داریم:
    0.PNG
    که فیلدهای Created , LastEdit , Row باید توسط دیتامکرو پر بشن.
    فیلد Row از نوع شمارنده است و باید با اضافه شدن هر رکورد جدید خودکار محاسبه بشه و در صورت حذف هر رکورد تمامی Rowهای بعد از اون باید خودکار اصلاح بشن.
    فیلد Created زمان insert رکورد با تاریخ و ساعت فعلی پر میشه.
    فیلد LastEdit زمان ویرایش فیلد Comments رو نشون میده.

  3. #3
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    نقل قول: DataMacro در جداول لینک شده

    قبل از هر چیز یک تابع برای محاسبه خودکار Row مینویسیم:
    Public Function MaxRow() As Long
    MaxRow = Nz(DMax("Row", "Comments"), 0)
    End Function

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    Before Change Data Macro

    سورس مکرو Before Change
    1.PNG

  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    After Delete Data Macro

    سورس مکرو After Delete
    2.PNG

  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    طراحی فرم در FrontEnd

    طراحی فرم:
    3.PNG

  7. #7
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    طراحی فرم در FrontEnd

    چون همه عملیات در Backend انجام میشه کدهای فرم جمع و جور و کم است:
    Option Compare Database
    Option Explicit

    Private Sub NewComment_AfterUpdate()
    If Trim(Nz(Me.NewComment, "")) = "" Then Exit Sub
    Echo False
    With Me.Recordset
    .AddNew
    !Comment = Me.NewComment
    .Update
    End With
    Me.NewComment = ""
    Echo True
    End Sub

    Private Sub Btn_Create_Click()
    Dim i, MaxRow As Integer
    MaxRow = Nz(DMax("Row", "Comments"), 0)
    Echo False
    With Me.Recordset
    For i = 1 To 10
    .AddNew
    !Comment = "Comment " & (i + MaxRow)
    .Update
    Next
    End With
    Echo True
    End Sub

    Private Sub Btn_Clear_Click()
    Echo False
    Me.Recordset.MoveLast
    DoCmd.RunSQL "DELETE FROM Comments"
    Me.Requery
    Echo True
    End Sub

  8. #8
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    مکرو حذف رکورد در فرم

    این مکرو فقط با هدف آموزش اجرای یک تابع در مکرو استفاده شده و تماما با کد VBA قابل جایگزینی است:
    4.PNG

  9. #9
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    توابع public سمت FrontEnd

    فراموش نمیکنیم که توابعی که توسط دیتامکرو نیاز است باید در سمت Frontend هم باشن:
    Option Compare Database
    Option Explicit

    Public Function MaxRow() As Long
    MaxRow = Nz(DMax("Row", "Comments"), 0)
    End Function

    Public Function SetEcho(x As Boolean)
    Echo x
    End Function

  10. #10
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,030

    برنامه نمونه

    یادتون باشه باید جدول رو لینک کنین!
    فایل های ضمیمه فایل های ضمیمه

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

  1. آموزش: آموزش DataMacro
    نوشته شده توسط AbbasSediqi در بخش Access
    پاسخ: 6
    آخرین پست: پنج شنبه 05 بهمن 1396, 09:45 صبح

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

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