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

[ تمت الإجابة ] عدم تحرير السجل بعد مرور 8 ساعا

بدأه فيصل الحربي في 18 سبتمبر 2007 · 17 رد · 1,753 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

كل عام وأنتم بخير

بارك الله فيكم

لدي قاعدة بيانات على الشبكة ( الجداول في جهاز و الواجهات في أجهزة أخرى ) و المطلوب أن لا يتم تحرير السجل بعد مرور 8 ساعات من كتابة السجل

بمعنى

فلان أدخل سجلا الى قاعدة البيانات في تمام الساعة 14:00

فيمكنه التعديل على السجل حتى الساعة 22:00

بعد الساعة 22:00 لا يمكنه تعديل السجل

===

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#2

اخي الفاضل فيصل

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

وكل عام وانتم بخير وتقبل الله منا ومنكم صالح الأعمال

لعدم التعديل على السجلات بعد مضي اكثر من 8 ساعات على تحرير السجل يلزمنا عمل التالي

1. اضافة حقل جديد الى الجدول المطلوب وسوف نعطيه اسم مثلا EnterTime "وقت الإدخال" ويكون نوعه تاريخ / وقت وتنسيقه General Date ( تنسيق تاريخ ووقت طويل ) والقيمة الإفتراضية Now()

2. نقوم بإضافته الى النموذج المطلوب بنفس الخصائص السابقة

3. نضيف حقل جديد غير منضم الى النموذج ونعطيه الإسم strTime وهو التاريخ و الوقت الحالي ويكون مصدر عنصر التحكم له الدالة Now وتنسيقة General Date

4. من حدث عداد الوقت للنموذج نضع هذا التعبير

Private Sub Form_Timer()
Me.strTime.Requery
End Sub

والفاصل الزمني له 1000

5. نقوم بإخفاء هذين الحقلين وهما EnterTime و strTime من النموذج بحيث لا يظهران للمستخدم .

6. نضع هذا التعبير في حدث قبل التحديث للنموذج

Private Sub Form_BeforeUpdate(Cancel As Integer)
  If Me![strTime] > DateAdd("h", 8, [EnterTime]) Then
  MsgBox "عذرا أخي فيصل ... لا يمكن التعديل بعد مضي 8 ساعات ", vbCritical, "ممنوع التعديل"
  Me.Undo
  Me.AllowEdits = False
  End If
  End Sub

zaNoAllowEditsAfter8H_UP.rar

ملاحظة : تم تعديل المثال السابق

تذكر ان الحقلين EnterTime و strTime مخفيين في النموذج

للتجربه

قمت بتعديل وقت جهاز الكمبيوتر الى التاريخ والوقت 10/10/2007 01:15:15 م ظهرا لكي اكتب السجلات

وبعد ثمان ساعات على اضافة هذه السجلات بمعنى بعد الساعة 10/10/2007 09:15:15 م م لن تستطيع التعديل على السجلات

حاول الآن تقديم ساعة الكمبيوتر الى الساعة 11 مساءا وانظر الرسالة التي تظهر لك

#3

بسم الله الرحمن الرحيم

بارك الله فيكِ زهرة المنتدى

سوف أجرب غدا إن شاء الله في مقر العمل

===

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#4

السلام عليكم ...

كل والشهر عليكم مبارك ...

مثال جميل من الأستاذة زهرة يعطيك العافية .

أخي فيصل اسمح لي أن أضع توقيع ( اسطوانة المبرمج ) فأنا وأنت في الهوى سوى .. وسلم لي على سمير .

تم تعديل هذه المشاركة بواسطة صفر واحد في 19 سبتمبر 2007 في 01:55

mk17481_26bccea871.gif
#5

السلام عليكم

الفاضلة الاخت زهرة

المثال الاول حملته وكان يستجيب للتعديل في اليوم التالي

او حتى بعد عدة ايام عندما استخدمتي Time()

بعد التعديل الاخير - بــ Now() ضبط الكود وفقك الله

كل عام والجميع بخير

Ekseer

#6
صفر واحد كتب:
السلام عليكم ...

كل والشهر عليكم مبارك ...

مثال جميل من الأستاذة زهرة يعطيك العافية .

أخي فيصل اسمح لي أن أضع توقيع ( اسطوانة المبرمج ) فأنا وأنت في الهوى سوى .. وسلم لي على سمير .

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

حياك الله أخي متعب

و لا بأس فيما وضعت

===

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#7

بسم الله الرحمن الرحيم

بارك الله فيكم اخواني

اسئلة الاخ فيصل نتعلم منها ؟

#8

السلام عليكم

أخت زهرة الله يعطيك العافية

عندما يكون مضى على وقت إدخال البيانات أقل من 8 ساعات ولكن قبل يوم أو يومين يسمح بالتعديل

اي 1/1/2007 الساعة 9 صباحا ثم حاولنا التعديل الساعة 10 صباحا من ثاني يوم يسمح بالتعديل

قم بالتعديل على ملفك واستخدمت طريقة أخرى مع حدث on current بحيث إن كان أقل من 8 ساعات

يجعل AllowEdits = True و إن كان أكثر من 8 ساعات يجعل AllowEdits = False

شاهدوا المرفق

والسلام عليكم

zaNoAllowEditsAfter8H_UP.zip

تم تعديل هذه المشاركة بواسطة ammar_zaid في 19 سبتمبر 2007 في 14:23

قالَ رَسُولُ الله صلى الله عليه وسلم:

"مَنْ لم يَشْكُرِ النّاسَ لَمْ يَشكُرِ الله "

حديث حسن صحيح

#9

قد يكون هذه الكود المعدل من كود الأخت زهرة يفي بالغرض دون الحاجة لعمل حقل غير منضم ودون الحاجة للمؤقت

لم أجربه ولكن أعتقد أنه سيعمله والتجربة عليكم

Private Sub Form_BeforeUpdate(Cancel As Integer)
  If Now() > DateAdd("h", 8, [EnterTime]) Then
	MsgBox "لا يمكن التعديل بعد مضي 8 ساعات ", vbCritical, "ممنوع التعديل"
	Cancel = -1
  End If
End Sub
#10

بسم الله الرحمن الرحيم

ماشاء الله تبارك الله

100 %

كان حل الأخت زهرة متوافق مع بريمجي 100 %

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

===

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#11

هل استطيع ان اعطي احد هو الذى يستطيع ان يعدل بعد 8 ساعات التى مضت

يعدل البيانات

يعني يكون له رقم سري في التعديل

#12

بسم الله الرحمن الرحيم

اقوم بتنفيذ الكود السابق عند حدث التنقل بين السجلات

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

بحيث يدخل الرقم السري في مربع النص و حينما تضغط زر الأمر يقوم بعملية المقارنة هل الرقم المدخل صحيح أو لا

فاذا كان صحيحا يقوم بتحويل صفة Enable للنموذج إلى مسموح .

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

===

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#13

السلام عليكم

كيف استطيع ان اضع بدل الساعات

مثل 40 دقيقة

او

20 دقيقة

يعني اقل من الساعة

#14
moom2007 كتب:
السلام عليكم

كيف استطيع ان اضع بدل الساعات

مثل 40 دقيقة

او

20 دقيقة

يعني اقل من الساعة

اخي الفاضل

الموضوع سهل ولا يوجد به اي صعوبه

كل ما عليك هو التعديل في الكود الموجود في البرنامج وستجده بهذا الشكل

Private Sub Form_BeforeUpdate(Cancel As Integer)
  If Me![strTime] > DateAdd("h", 8, [EnterTime]) Then
  MsgBox "عذرا أخي فيصل ... لا يمكن التعديل بعد مضي 8 ساعات ", vbCritical, "ممنوع التعديل"
  Me.Undo
  Me.AllowEdits = False
  End If
  End Sub

لاحظ حرف h فهو يمثل الساعات

وبالنسبة لك انت تريده دقائق فقم بتغيير الحرف h الى n

وقم بتغيير الرقم 8 الذي بعد حرف h الى 40 او 20 وهي الدقائق بالنسبة لك ليصبح الكود كاملا بهذه الطريقة بعد التعديل

Private Sub Form_BeforeUpdate(Cancel As Integer)
  If Me![strTime] > DateAdd("n", 40, [EnterTime]) Then
  MsgBox "عذرا أخي فيصل ... لا يمكن التعديل بعد مضي 40 دقيقه ", vbCritical, "ممنوع التعديل"
  Me.Undo
  Me.AllowEdits = False
  End If
  End Sub
#15

مشكور على الرد

يعطيج العافية

#16

السلا م عليكم

كيف الحال

هل استطيع انا اجعل حماية ليس لكل السجلات

يعنى كل سجل له وقت

يعني عنده

عدد من السجلات

نوع الاجاز

مده الاجازه

تاريخ الاجازه نهاية الاجازه

مثل انا ادخلت نوع الاجازه فقط ثم بعد ساعتين ادخلة مده الاجازه ثم بعد 3 ساعات ادخلة تاريخ الاجازه

اريد بعد الادخال لا احد يستطيع التعديل نوع الاجازه يعني بعد ساعتين من ادخال نوع الاجازه لا اتسطيع التعديل بل استطيع فقط ادخال البقية

اتمنا الفكرو ان تكون واضعه

#17
moom2007 كتب:
السلا م عليكم

كيف الحال

هل استطيع انا اجعل حماية ليس لكل السجلات

يعنى كل سجل له وقت

يعني عنده

عدد من السجلات

نوع الاجاز

مده الاجازه

تاريخ الاجازه نهاية الاجازه

مثل انا ادخلت نوع الاجازه فقط ثم بعد ساعتين ادخلة مده الاجازه ثم بعد 3 ساعات ادخلة تاريخ الاجازه

اريد بعد الادخال لا احد يستطيع التعديل نوع الاجازه يعني بعد ساعتين من ادخال نوع الاجازه لا اتسطيع التعديل بل استطيع فقط ادخال البقية

اتمنا الفكره ان تكون واضعه

#18

هلا والله

محد رد عليها

وين اهل الخبره

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