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

تحويل كود الحاق الى تحديث

بدأه kaser906 في 8 أغسطس 2011 · 12 رد · 815 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

وهو يقوم بحساب id عن طريق عد السجلات الفارقة في الحقل Dattewad من الجدول WorkEndHolly

ومن ثم يعطي رسالة بأن الرصيد يكفي او لا

فأذا كان الرصيد يسمح يقوم بإلحاق البيانات ' NumbrH ' Daytewad ' Dattewad في الجدول WorkEndHolly

الأن لنفترض اني اريد تعديل بيانات مدخله سابقاً

هنا يجب حساب الرصيد المتوفر او المتاح اولا عن طريق حساب الحقول الفارقة للحقل Dattewad وان يحسب ايضاً معها الحقول المراد تحديثها ويكون المعرف الفريد لها الحقل NumbrH

حيث تكون جميع الايام المراد تحديثها تحتوي على هذا الرقم NumbrH

عند ذلك تكون الاحتمالات على النحو الآتي

الاحتمال الاول

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

الاحتمال الثاني

ان يكون المستخدم يريد انقاص الايام

هنا اريد ان يحذف عدد الايام المنقوصه من الجدول WorkEndHolly للبيانات التالية NumbrH ' Daytewad ' Dattewad

حيث ان الحقل NumbrH هو المعرف الفريد الذي يحدد الايام المطلوب زيادتها او نقصانها

اي ان المراد الان تحويل الكود الى تحديث

الكود

DoCmd.SetWarnings False
Dim i, Nid, cid As Integer, tdat, tdy As String
cid = DCount("id", "WorkEndHolly", "Daytewad is null and pcdigit =" & PcDigit)
If cid < Me.Moditoha Then
MsgBox "رصيد الموظف لايكفي  " & cid & " عدد الايام المتاحه "
Exit Sub
End If
For i = 0 To Me.Moditoha - 1
tdat = UmFormat(UmDateAdd("d", i, Me.[HI-Dates]), Dattewads.Format)
tdy = UmFormat(UmDateAdd("d", i, Me.[HI-Dates]), "dddd")
Nid = DLookup("id", "WorkEndHolly", "Daytewad is null and pcdigit =" & PcDigit)
DoCmd.RunSQL "insert into Holly([Type],[StartDay],[StartDat],[EndDay],[EndDat],[TotalDay],[PcDigit],[NumbrH]) Values([Type],[T-Days],[HI-Dates],[Daytewads],[Dattewads],[Moditoha],[PcDigit],[Numbr])"
DoCmd.RunSQL "UPDATE WorkEndHolly SET WorkEndHolly.Daytewad = '" & tdy & "', WorkEndHolly.Dattewad = '" & tdat & "', WorkEndHolly.NumbrH = '" & Numbr & "' WHERE (((WorkEndHolly.id)=" & Nid & "));"

تم تعديل هذه المشاركة بواسطة kaser906 في 8 أغسطس 2011 في 02:00

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

#2

هوة فين المثال =قاعدة البيانات

اللهم اقدر لنا الخير حيث كان

#3

للرقع

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

#4

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

لكن المشكلة بقيت في حال ارادالمستخدم زيادة عدد الايام ولم يكن الرصيد يسمح

فلن يتمكن من التراجع لأن البيانات قد حذفت

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

#5
اقتباس
الاحتمال الاول

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

فى هذه الحالة الافضل ان يتم الادخال بالطريقة المعتادة

اى تدخل اجازة جديدة لمدة يوم

اقتباس

الاحتمال الثاني

ان يكون المستخدم يريد انقاص الايام

هنا اريد ان يحذف عدد الايام المنقوصه من الجدول WorkEndHolly للبيانات التالية NumbrH ' Daytewad ' Dattewad

حيث ان الحقل NumbrH هو المعرف الفريد الذي يحدد الايام المطلوب زيادتها او نقصانها

هنا سيتم حذف اخر يوم من الجدول Holly

و تحديث الجدول WorkEndHolly

و يرجى وضع مرفق ليتم التعديل عليه

و اذا كان البرنامج كبير ضع فقط النموذج و الجدولين

تم تعديل هذه المشاركة بواسطة Abo_Yossof في 9 أغسطس 2011 في 05:51

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#6

اخي ابو يوسف

اضفت على المتغير حيث ان cid يعد الحقول الفارقة قمت بوضع rid لكي يعد الحقول التي تحتوي على ايام الاجازة المراد تحديثها

بعد ذلك وضعت fid لكي يجمع قيمت المتغيرين وبدت الأمور جيده فهو يعطيني مجموع الأيام المتاحه

لكن المشكله الأن ان لو كان الرصيد يسمح او لايسمح على طول تتوقف العملية عند المسجد يعطيني عدد الايام المتاحه ويتوقف

لا اعرف اين هي المشكلة هل هي بالمتغير fid الذي يقوم بعملية جمع المتغيرين cid , rid

هذا هو الكود

Dim i, Nid, fid, rid, cid As Integer, tdat, tdy As String
cid = DCount("id", "WorkEndHolly", "Daytewad is null and pcdigit =" & PcDigit)
rid = DCount("id", "WorkEndHolly", "Daytewad and NumbrH = Numbr and pcdigit =" & PcDigit)
 fid = rid + cid
If fid < Me.Moditoha1 Then
MsgBox "رصيد الموظف لايكفي  " & fid & " عدد الايام المتاحه "
Exit Sub
End If

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

#7
rid = DCount("id", "WorkEndHolly", "Daytewad and NumbrH = Numbr and pcdigit =" & PcDigit)

هذا السطر أعتقد ان الشرط به خطأ حاول ضبطه

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#8
Abo_Yossof كتب:

rid = DCount("id", "WorkEndHolly", "Daytewad and NumbrH = Numbr and pcdigit =" & PcDigit)

هذا السطر أعتقد ان الشرط به خطأ حاول ضبطه

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

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

قمت بعمل مثال ليمكن التعديل عليه

dataEMplalss612.rar

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

#9

ملف مرفق(ملفات)

dataEMplalss612.rar (187.85كيلو )

عدد مرات التحميل : 22 :blink:

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

#10

اليك اخى التعديل

جرب الاضافة او التعديل

dataEMplalss612.rar

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#11

الله يعطيك العافية اخي ابو يوسف

طبعاً انت الله يكثر خيرك وضعت كوديين كود اضافة وكود تعديل انا الان استخدمت كود التعديل

وجدت مشكلة عند التعديل فعند انقاص عدد ايام الاجازة

تطلع رسالة خطأ

369539317.png

802136847.png

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

وفي بعض الاحيان لاحظة ان بعض السجلات تدخل من سجل الموظف وتلحق بسجل موظف اخر

وتكون هذه الحركة عندما يوجد اكثر من اجازة للموظف الواحد

حاول تعطي الموظف كامل الرصيد المتاح مثلاً 10 ايام

بعد ذلك قم بإنقاص المدة الى 1 واحد وانظر النتيجة

iهناك ايضاً عند ادراج التاريخ بالجدول يدرج كله بتاريخ واحد

552808994.png

ما عليش اتعبتك معاي اخي ابو يوسف لكن انا عشمان كثير فيك

الله يجزيك خير ويرحم والديك

dataEMplalss613.rar

تم تعديل هذه المشاركة بواسطة kaser906 في 12 أغسطس 2011 في 08:49

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

#13
Abo_Yossof كتب:

اليك اخى ما طلبت

هذا هو المطلوب

جزاك الله الف خير وغفر لك ولوالديك

تقبل تحياتي وشكري

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

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