الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الاطلاع على التغييرات التي تتم على البيانات ،

مغلق
بدأه عبدالمانع في 18 أبريل 2005 · 7 رد · 796 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لمحبي الاطلاع على التغييرات التي تتم على بياناتهم وهم غير موجودين يمكنهم الاطلاع عليها

في جدول الملاحظات هذة طريقة يتم من خلالها إضافة وتعديل وتسجيل التعديل وتسجيل اي

شي يحصل في البيانات حتى لو قام بتغير الاسم وكتب نفس الاسم مرة أخرى يتم الاشعار بذلك ،

كل شي حتى مسح البيانات يطلع لك كمان من الذي سو هذا ،،، يعني من الان فصاعد ما حد يقدر

يعدل او يضيف الا بعد تفكير لانة يتم تسجيل البيانات آلياً ، واي شي يصير يعلمك بة ،،،

أتمنى ان توصل الفكرة بالطريقة الصحيحة ،،،

الطريقة نعمل التالي :-

في الوحدة النمطية العامة جديد نضع الكود هذا :-

كود :

اقتباس
Option Explicit

Public Function Audit_Trail()

On Error GoTo Err_Audit_Trail

    Dim MyForm As Form

    Dim ctl As Control

    Dim sUser As String

    Set MyForm = Screen.ActiveForm

    sUser = CurrentUser

    If MyForm.NewRecord = True Then

        MyForm!AuditTrail = MyForm!tbAuditTrail & "إضافة سجل جديد " & Now & " من قبل " & sUser & ";"

        Exit Function

    End If

    MyForm!AuditTrail = MyForm!tbAuditTrail & vbCrLf & vbLf & "تم التغير على السجل " & Now & "  من قبل " & sUser & ";"

    For Each ctl In MyForm.Controls

    Select Case ctl.ControlType

    Case acTextBox, acComboBox, acListBox, acOptionGroup, acCheckBox

        If ctl.Name = "tbAuditTrail" Then GoTo TryNextControl

            If ctl.Value <> ctl.OldValue Then

                MyForm!AuditTrail = MyForm!tbAuditTrail & vbCrLf & ctl.Name & ": تغيير من: " & ctl.OldValue & ", الى: " & ctl.Value

            ElseIf IsNull(ctl.OldValue) And Len(ctl.Value) > 0 Or ctl.OldValue = "" And Len(ctl.Value) > 0 Then

                MyForm!AuditTrail = MyForm!tbAuditTrail & vbCrLf & ctl.Name & ": كان ملغي في السابق, القيمه الجديدة هي : " & ctl.Value

            ElseIf IsNull(ctl.Value) And Len(ctl.OldValue) > 0 Or ctl.Value = "" And Len(ctl.OldValue) > 0 Then

                MyForm!AuditTrail = MyForm!tbAuditTrail & vbCrLf & ctl.Name & ": تغيير من: " & ctl.OldValue & ", الى: فارغ"

            End If

    End Select

TryNextControl:

    Next ctl

Exit_Audit_Trail:

    Exit Function

Err_Audit_Trail:

    If Err.Number = 64535 Then

        Exit Function

    ElseIf Err.Number = 2475 Then

        Beep

        MsgBox "A form is required to be the active window!", vbCritical, "Invalid Active Window"

    Else

        Beep

        MsgBox Err.Number & " - " & Err.Description

    End If

    Resume Exit_Audit_Trail

End Function

ونضيف الاسم هذا في الجدول (AuditTrail) من نوع مذكرة

طبعا في الجدول المراد مراقبة التغيرات فية ،

والذي أسميناة (tbAuditTrail) ...

ونضع الكود في الوحدة النمطية الخاصة بالنموذج الكود التالي :-

قبل التحديث ’’’

كود :-

اقتباس
Call Audit_Trail

الكود هذا فقط قبل التحديث ’’’

وهذا والله ولي التوفيق ،،، وملف مرفق للتوضيح .

مع خالص التحيات ،،،

عبدالمانع

إضافة السجلات مع حفظ التعديلات.rar

تم تعديل هذه المشاركة بواسطة عبدالمانع في 22 أبريل 2005 في 20:36

إنما الأمم الأخلاق ما بقيت ××× فإن هم ذهبت أخلاقهم ذهبوا ...
#2

جهد كبير ورائع رغم اننى لم اجربة

ومشكور

مر الكلام زى الحسام يقطع ما كان ما يمر، أما المديح سهل ومريح يخدع لكين بيضر، والكلمة دين من غير إيدين بس الوفا ع الحر

#3

مشكور أخي / khatab

وموفق إن شاء الله ’’’

مع خالص التحيات ،،،

عبدالمانع

إنما الأمم الأخلاق ما بقيت ××× فإن هم ذهبت أخلاقهم ذهبوا ...
#4

بارك الله فيك وتسلم يمينك .

#5

شكراً لمرورك على موضوعنا ’’’’

أستاذي الكريم / فهد الدوسري

مع خالص التحيات ،،،

عبدالمانع

إنما الأمم الأخلاق ما بقيت ××× فإن هم ذهبت أخلاقهم ذهبوا ...
#7

مجهود طيب ..

وما ننكر هذا الأمر ..

مع إنني واجهت ولا زلت أواجه صعبة التطبيق .

صحيح أن الشرح وافي .. لكن فيه بعض الغموض .

مثلا في العبارد التالية اعتقد أنها الأمور تداخلت علي :

ونضع الكود في الوحدة النمطية الخاصة بالنموذج الكود التالي :-

وهنا نسمي مربع وليكن مذكرة ليتم حفظ البيانات بها بالاسم هذا (tbAuditTrail) .

إليكم ما قمت به :

فتحت قاعدة البيانات التي سوف أقوم بإجراء التجربة عليها .

اخترت كائن ( وحدات نمطية ) من إطار قاعدة البيانات .

اخترت جديد

وحيث وقف مؤشر الماوس قمت بلصق الكود الأول .

وحفظت الكود باسم DataChang

انتهت الخطوة الأولى .

الخطوة الثانية :

فتحت النموذج الذي سوف أقوم بالعمل عليه .

هنا قمت بتجربتين :

الأولى : في خصائص النموذج ذهبت إلى ( قبل التحديث ) واخترت ( إجراء حدث )

فتحت لي صفحة وضع الأكواد وحيث وقف مؤشر الماوس ألصقت الكود الثاني .

رجعت لأرى النتائج .. ووجدت رسالة خطأ..

يعني فيه خطأ .

التجربة الثانية : بعد إعادة قراءة الموضوع فهمت أنه مطلوب إنشاء مربع نص باسم مذكرة مثلا .

أنشأت مربع نص وفي خصائص المربع وقبل التحديث اخترت إجراء حدث .

وألصقت الكود الثاني .

والنتيجة رسالة الخطأ مرة أخرى .

بما أنه لايأس مع الحياة ..

فأنا لاأزال آمل أن أنجح ..

مع أن الأكواد وكيفية وضعها تكاد تحيل مخي إلى التقاعد قبل أوانه .

تحياتي للجميع عام

ولمن يدخل هذه المعلومة إلى مخي خاص .

أنتظر تصحيح الرؤية لدي ..

#8

تفضل أخي الكريم

شرح مختصر ،،،

اول حاجة تعمل الجدول وتضح فية البيانات التي تريدها مثلا :-

الجدول : -

الرقم : وليكن ترقيم تلقائي .

الاسم : مربع نص .

الهاتف: نص أو رقم .

الجوال: نص أو رقم .

وهنا !!

AuditTrail : وليكن مذكرة لكي يكون مساحتة كبيرة لان مربع النص فية محدودية الاحرف

او الارقام مثلا يبلغ العدد الاقصى من الاحرف التي يمكن إدخالها في حقل النص حد أقصى هو

(255) حرفا او رقما اما المذكرة فهي تأخذ بما فية الكفاية .

خلصنا من الجدول بعد ما حفظناه بأسم (tbAuditTrail) ...

النموذج :-

نقوم بإنشاء نموذج باستخدام المعالج ،

ونسمية باي أسم نريدة .

بعد تعبئة النموذج بالبيانات ، ننتقل الى الوحدة النمطية .

الوحدة النمطية :-

نذهب الى الوحدة النمطية لكي لا يتم الخطاء في النموذج .

ونقوم بإضافة جديد ونقوم بإضافة الكود الموجود في المشاركة الاول هوالكود الاول .

ثم نقوم بلصقة بالكامل طبعا الكود الاول ، ونحفظه بألاسم هذا (dAuditTrail) .

وهنا رجعنا للنموذج بعدما خلصنا من الوحدة النمطية ،،،

ونفتح النموذج في عرض التصميم ،

ونضع الكود هذا قبل التحديث ،

كود :-

اقتباس
Call Audit_Trail

الكود هذا فقط قبل التحديث

*(عفواً على عدم التوضيح أكثر في المشاركة الاولى !!!)

مع خالص التحيات ،،،

عبدالمانع

إنما الأمم الأخلاق ما بقيت ××× فإن هم ذهبت أخلاقهم ذهبوا ...

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…