اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

قم بوضع مربع نص(Text Box) بنموذج ادخال اليبانات وليكن اسمةtxttime وقم بوضع السطر التالي لحدث بعد التحديث للسجل ...

txttime = Time
وقم بوضع الكود التالي لحدث الحالي لنموذج ادخال البيانات ...
Dim p As Date

p = Time

If Hour(p) - Hour(txttime) > 24 Then

   Me.AllowEdits = False

Else

   Me.AllowEdits = True

End If

  • 6 months later...
قام بنشر

السلام عليكم ورحمة الله وبركاته

لقد قرأت موضوع : منع التعديل بعد 24 ساعة الموجود في خلاصة دروس الأكسيس وعند التطبيق ظهرت لي رسالة الخطأ التالية:

تعذر العثور على الماكرو dim p as date... هذا الماكرو غير موجود ، أو أ، هذا الماكرو جديد ولم يتم حفظه..

فما السبب ؟ مع العلم أكسيس 2002 هو ما أطبق عليه وآمل مزيد من التوضيح وجزاكم الله خيرا

قام بنشر

أخي worker ..

1- أضف حقل من نوع تاريخ إلى الجدول وليكن اسمه WriteDate

2- ضع في خاصية القيمة الافتراضية لهذا الحقل القيمة now

3- في نموذج البرنامج ضع هذه الشفرة :

Private Sub Form_Current()
    If DateDiff("d", [WriteDate], Now()) >= 3 Then
        Me.AllowEdits = False
        Me.AllowDeletions = False
    Else
        Me.AllowEdits = True
        Me.AllowDeletions = True
    End If
End Sub

قام بنشر

لقد سعدت جدا بردك قبل أن أقوم بتجربته ولا أملك إلا أن أدعو لك من أعماق قلبي فجزاك الله خيرا أخي مهند عبادي

قام بنشر (معدل)

لقد قمت بتجربة الكود الخاص بالأخ المشكور مهند عبادي ووصلت للهدف ولله الحمد وجزاك الله خيرا يا مهند وكذلك باقى الإخوة الذين حاولوا مساعدتي

تم تعديل بواسطه worker
قام بنشر

أخي Worker ..

أحمد الله أنك وصلت لمبتغاك ..

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

ولو كنت مكانك لقمت بشيء آخر ... وهو إضافة حقل آخر للجدول من النوع نعم/لا يشير إلى إمكانية التعديل في السجل وليكن اسمه FldAllowEdit بقيمة افتراضية True ،

وعند كل بدء تشغيل للبرنامج أقوم بتشغيل استعلام من شأنه وضع قيمة False لكل السجلات التي مضى على إنشائها 3 أيام فأكثر ..

ثم أضع هذا الحدث في النموذج :

Private Sub Form_Current()
   If [FldAllowEdit] Then
       Me.AllowEdits = False
       Me.AllowDeletions = False
   Else
       Me.AllowEdits = True
       Me.AllowDeletions = True
   End If
End Sub

قام بنشر

جزاك الله خيرا أخي مهند ولكن أعتقد أنه من الممكن أيضا باستخدام الطريقة الأخيرة أن يغير المستخدم تاريخ الجهاز فيستطيع التعديل والحذف فما العمل؟ لعل من الطرق التي لاحظتها في برامج ميكروسوفت الأصلية أنها تعطي حق استخدام النسخة قبل التسجيل عدد 30 مرة ولا تعتمد على التاريخ لإيقاف البرنامج غير المسجل - فهل ممكن أن نعطي المستخدم فرصة للتعديل مثلا عدد مرتين فقط لكل سجل - وشكرا جزيلا على استمرار التواصل معي أخي مهند

قام بنشر

أخي worker

في الأسلوب الثاني مجرد أن يمضي 3 أيام يتم قفل السجلات ..

إلا إذا قام المستخدم بتغيير تاريخ الجهاز قبل تشغيل البرنامج في اليوم الرابع وهذا احتمال ضعيف

أو أنك ستحتاج إلى قاعدة أخرى لحماية السجلات ( مثلاً بعد 5 مرات تشغيل البرنامج ) ..

  • 17 years later...
قام بنشر (معدل)

سلام عليكم 

ظهور رسالة( ايقاف كافة وحدات الماكرو ) بعد وضع الكود الخاص بالحماية .. وعند إلغاء الرسالة يمكن التعديل في الأذن والغاء الحماية .. عذرا هناك خطأ في رفع الصور 

تم تعديل بواسطه صابر بصير سليمان

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information