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

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

قام بنشر (معدل)
20 دقائق مضت, ابوخليل said:

اذا العمل على FrmTransfer1  لماذا  FrmTransfer موجود

نسخت لك FrmTransfer1 للتوضيح فقط والعمل علىFrmTransfer  الذي يكون فيه التعديل

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

طيب ..

انا فتحت الملف الذي هو الفورم خرجت رسالة معنونة بشهر ديسمبر 2025 .. تقول تم التوزيع بنجاح .. دخلت الجدول ولم اجد شيئا

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

وطبعا يوجد في الجدول بيانات لسجلات قديمة فقط

وانت تريد اقتطاع  شهر  3 و 7 من سنة 2026

اليس من المفترض وجود هذه التواريخ في الجدول قبل فتح النموذج ؟ ( لأن الكود يعمل بمجرد فتح النموذج) 

انا اتصور لو قمت انا بتصميم هذه الجزئية  ان يكون هناك 2 ازرار .. واحد لالحاق البيانات الرئيسية مع التواريخ المختارة والثاني لعملية الاقتطاع

قام بنشر
21 ساعات مضت, Taher DZ said:

هل التعديل مس القروض ايضا لاني صراحة دخلت على الجدول Tbl_Loans وبالخصوص المنخرط رقم 4 كما في الصورة وحدفت للتجريب المبلغ المقتطع 5000.00  الذي يخص تاريخ 2025/07/01 وارجعت تاريخ الجهاز الى شهر 7 فلم يكمل له اقتطاعه وقبل التعديل الاخير  كان عادي لايخص القروض 

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

السطر الأول كان هكذا

        Set rstE = db.OpenRecordset("SELECT * FROM Employee WHERE Nr <= 5", dbOpenDynaset)

وكان يحتوي الأخطاء التالية

- كنت تتعامل مع الحقل Nr في الجدول Employee على أنه حقل رقمي ولكنه حقل نصي

- أعتقد أنك تظن أن هذا الحقل يحتفظ برقم الوظيفة إلا أنك مخطئ فهو يحتفظ بإسم الوظيفة والصورة التالية ستوضح لك ما أقصده

Untitled.jpg.bc540e2c89a8e7f768e12df89d2f3f4f.jpg

مما سبق يتضح لنا أنه لن يتم تحقيق معيار التصفية Nr <= 5 لذلك قمت بتعديله إلى السطر التالي

Set rstE = db.OpenRecordset("SELECT *,TblDetaché.Nr as NrE FROM  Employee   INNER JOIN TblDetaché ON Employee.detach = TblDetaché.detach WHERE  (((TblDetaché.Nr) <= 5));", dbOpenDynaset)

حيث سيتم ربط الجدول Employee مع الجدول TblDetaché وسنأخذ قيمة Nr من الجدول TblDetaché لأنه رقمي وقمنا بتسمية الحقل هذا بإسم NrE 

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

'تم تعديل هذه العبارة
EmployeeID='" & EmpID & "'
'بهذه العبارة
EmployeeID = " & EmpID & "

اخر تعديل ونظرا لأنه وكما سبق توضيحه بخصوص الحقل Nr تم تعديل السطر التالي

'إستبدلنا هذا السطر
rst!Nr = rstE!Nr
'بهذا السطر
rst!Nr = rstE!NrE

حتى يتم أخذ قيمة Nr من الحقل الذي قمنا بتسميته بالإسم NrE في جملة Sql أعلاه

هذه هي كل التعديلات التي قمت بها فهل هذا سيؤثر على طريقة احتساب القروض؟

  • Like 1
قام بنشر
33 دقائق مضت, منتصر الانسي said:

ذه هي كل التعديلات التي قمت بها فهل هذا سيؤثر على طريقة احتساب القروض؟

لا استاذ يمكن تعديل الاخ الي قبل هو سبب عدم اقتطاع الشهري للقروض  بعدما كان يقتطع عادي

والان بحكم خبرتكم لم تعرفو اين تكمن المشكلة بالرغم من وجود فورم FrmTransfer1  بقتطع عادي الم يتم التنسيق بينه وبين  FrmTransfer  الذي به المشكلة 

1 ساعه مضت, ابوخليل said:

نا فتحت الملف الذي هو الفورم خرجت رسالة معنونة بشهر ديسمبر 2025 .. تقول تم التوزيع بنجاح .. دخلت الجدول ولم اجد شيئا

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

وطبعا يوجد في الجدول بيانات لسجلات قديمة فقط

ديسمبر فعلا تم الاقتطاع يدويا لو غير تاريخ الجهاز الى شهر جانفي 2026 لأكتشفت المشكلة عند المنخرط رقم 4     او

قمت بمسح المبلغ  المقتطع لتاريخ 2025/12/01 وقمت بالدحول للفورم FrmTransfer  ستجده يبقى فارغا اي الكود لم يقتطع المبلغ

1 ساعه مضت, ابوخليل said:

وانت تريد اقتطاع  شهر  3 و 7 من سنة 2026

اليس من المفترض وجود هذه التواريخ في الجدول قبل فتح النموذج ؟ ( لأن الكود يعمل بمجرد فتح النموذج) 

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

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

استاذ وجدت صعوبة في ارفاق الفيديو سوى بصيغة  rar او mp4  

 https://k.top4top.io/m_364437txw1.mp4

عندما قمت بمسح مبلغ اقتطاع القرض للمنخرط رقم 4 خلال تاريخ 2025/12/01 وقمت بالدخول للنموذج لقد تحقق اعادة الاقتطاع من جديد

ولكن عند الدخول بتاريخ 2026/03/01 تحقق اقتطاع الانخراط  ولكن ليس للكل

" اي منخرط عنده مبلغ 3000.00 من سنة 2025 استثناه الكود في سنة 2026 " .......... (1) 

مثلا المنخرط رقم 4 وكذا المنخرطين 256/261/290 استثناهم  كما في (1)

لم يقتطع لهم مبلغ الانخراط لسنة 2026 المقدر ب 1500.00

يفيد ان بان الكود لا يؤدي بواجبه مائة بالمئة وخاصة في شطره الاستنثناء هذا 

            ' مجموع ما دفعه سابقًا
            totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", _
                "Loan_ID= 0 AND EmployeeID=" & EmpID), 0)

            ' إذا وصل 3000 ? توقف
            If totalPaid >= 3000 Then
                GoTo SkipInkhirat
            End If

 

تم تعديل بواسطه Taher DZ
قام بنشر
1 ساعه مضت, Taher DZ said:

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

اخي العزيز

انا لا اعرف اعمل الا على شيء انا افهمه

العمل الذي  امامي غامض .. فارجوا ان تعذرني 

لا اريدك ان تحزن فهذا هو فهمي

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

ما لون بالاحمر يدل على وجود اشياء غائبة يتم عملها منفصلة عن الجزء المرفق

.................................

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

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

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

الطريقة :

اذا دخل شهر3 من كل سنة .. في الفورم  زر يعمل تصفية لمن يشمله هذا الاجراء .. يتم من خلاله الحاقهم في الجدول .. وزر آخر يتم اجراء الاقتطاع حسب ما نضعه من شروط

ونكرر هذا الاجراء عند دخول شهر 7  ...

اوغيره من الشهور للحالات الخاصة

هنا يستحيل ظهور اي خطأ ...

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

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

اما مسألة كود واحد يقوم بجميع الاجراءات وآليا ايضا .. هذا يجب اعادة النظر فيه ..  العجيب ان الكود يعمل عمل التقرير فيعرض رسالة احصائية .

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

 

 

 

قام بنشر
10 دقائق مضت, ابوخليل said:

الطريقة :

اذا دخل شهر3 من كل سنة .. في الفورم  زر يعمل تصفية لمن يشمله هذا الاجراء .. يتم من خلاله الحاقهم في الجدول .. وزر آخر يتم اجراء الاقتطاع حسب ما نضعه من شروط

ونكرر هذا الاجراء عند دخول شهر 7  ...

اوغيره من الشهور للحالات الخاصة

هنا يستحيل ظهور اي خطأ ...

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

والله استاد غير تعبت كلما ارى ردا اقول الحمد لله تم الحل وعند دخولي الى الموضوع لم ارى مافرحت لأجله لاني 

عجزت كيف اوصل لكم الفكرة ياريت حد يساعدني ويعمل شيء المهم تؤدي الى حل للمشكلة وانا راض باي تغيير بارك الله فيكم 

قام بنشر

استاذي العزيز ابو خليل

افهمني مليح وخلي نغلقو الموضوع

 

' مجموع ما دفعه سابقًا
            totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", _
                "Loan_ID= 0 AND EmployeeID=" & EmpID), 0)

            ' إذا وصل 3000 ? توقف
            If totalPaid >= 3000 Then
                GoTo SkipInkhirat
            End If

 

هذا الشطر من الكود يستنثي السجلات التي تحتوي على مبلغ 3000.00 دج خلال السنة 

اي لايضيف سجل اخر  

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

وكل سجل بقيمة 1500.00

 

قام بنشر

لم اجد شرطا مناسبا قد يحقق المطلوب الا السنة

جرب  استبدل الكود بهذا فلعله يعمل .. اضفت ان السنة الحالية لا تساوي السنة الموجودة في الجدول

totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", _
                "Loan_ID= 0 AND EmployeeID=" & EmpID And "year(date)<> " & annee), 0)

على اعتبار انك تعمل في سنة 2026

قام بنشر
في 23‏/12‏/2025 at 22:20, ابوخليل said:
totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", _
                "Loan_ID= 0 AND EmployeeID=" & EmpID And "year(date)<> " & annee), 0)

ظهر لي مشكل

image.png.c463afa5269faa194dd76e519ea07db6.png

 

 

 

 

قام بنشر

 اسف قدمت وأخرت في المعيار

يكون مثل هذا

 totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", _
                "Loan_ID= 0 AND EmployeeID=" & EmpID And "annee <> " & Year(Date)), 0)

لعله يعمل .. المشكلة ان وجدت فهي في تقديم وتأخير علامة التنصيص

قام بنشر
في 23‏/12‏/2025 at 22:30, ابوخليل said:
totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", _
                "Loan_ID= 0 AND EmployeeID=" & EmpID And "annee <> " & Year(Date)), 0)

image.png.ceef9c3b28cd9746d652777ee721bcd3.png

قام بنشر (معدل)
8 دقائق مضت, ابوخليل said:
totalPaid = Nz(DSum("[Payment_Made]", "[tbl_Loans]", "[EmployeeID] =" & EmpID & "And [annee] <>" & Year(Date) & "and [Loan_ID] =0"), 0)

يعمل بدون مشكل ولكنه لم يقتطع مبلغ 1500.00 لاي منخرط

كالعادة استثناءا 

image.png.5b53cfe22b4d035a4d796001d1e92e5d.png

عدم الاقتطاع مبلغ الانخراط خلال شهر مارس2026.rar

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

لا اعلم  سبب عدم الاقتطاع

هل جربت تقديم التاريخ ؟

هذا الكود شرط ان السنة تكون مختلفة وان لا يزيد او يساوي 3000

قام بنشر

افدني من فضلك

المثال الأخير : هل اذا قدمت التاريخ الى مارس 2026 ثم فتحت البرنامج  المفترض ان يقتطع شهر مارس آليا من دون تدخل ويظهر هذا في الجدول ؟

قام بنشر
في 24‏/12‏/2025 at 00:01, Taher DZ said:

 

' مجموع ما دفعه سابقًا
            totalPaid = Nz(DSum("Payment_Made", "tbl_Loans", _
                "Loan_ID= 0 AND EmployeeID=" & EmpID), 0)

            ' إذا وصل 3000 ? توقف
            If totalPaid >= 3000 Then
                GoTo SkipInkhirat
            End If

 

هذا الشطر من الكود يستنثي السجلات التي تحتوي على مبلغ 3000.00 دج خلال السنة 

اي لايضيف سجل اخر  

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

وكل سجل بقيمة 1500.00

 

 

اجادة طرح السؤال تسهل ايجاد الحل

انت خبرة في البرمجة لذا من اجل تكسب وقتك حاول ان تكون استفساراتك على هذا النحو

 

تفضل .. اتمنى ان يكون هو المطلوب

عدم الاقتطاع 2.rar

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

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

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

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

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

Important Information