Omar_Kreem قام بنشر يوليو 4, 2015 قام بنشر يوليو 4, 2015 السلام عليكم ورحمة الله وبركاته .. . لدى جدول يتضمن .. Id, Degr, Reason, Datter, Datter_Old, New_Val أريد أن أحسب التالى: إذا كانت قيمة Reason= (بداية تعيين) فيتم التحقق "فى هذا السجل" من أن الفرق بي التاريخين: (Datter) .. (Datter_Old) أكبر من 1 . ويتم إدارج قيمة سجل (New_Val) = مستحق. فإذا كانت القيمة أصغر من 1 يتم المقارنة بالسجل التالى .. فإذا كانت القيمة أكبر من 1 يتم إدارج قيمة سجل (New_Val) = مستحق.. فإذا كانت القيمة أصغر من 1 يتم إدارج قيمة سجل (New_Val) = مستحق.. فى السجل الذى يليه (وهو هنا السجل الثالث) .. New_Db.rar
Omar_Kreem قام بنشر يوليو 6, 2015 الكاتب قام بنشر يوليو 6, 2015 جربت هذا الكود .. لكنه لا يرجع النتائج كاملة .. حيث يرجعها للشخص الأول فقط كاملة ولا يرجعها لباقى الأشخاص كاملة. . رجاء تعديله أو وضع الحل المناسب .. Dim dbsNorthwind As DAO.Database Dim RSt As DAO.Recordset Dim rst2 As DAO.Recordset Set dbsNorthwind = CurrentDb Set RSt = dbsNorthwind.OpenRecordset("Rasedd") Set rst2 = dbsNorthwind.OpenRecordset("Rasedd") RSt.MoveFirst rst2.MoveNext Do If RSt!Reason = "بداية تعيين" And (Year(RSt!Datter) - Year(rst2!Datter_Old) < 1) And "RSt2!Id" = "RSt2!Id" Then RSt.Edit RSt!New_Val = "غير مستحق" RSt.Update Else rst2.Edit rst2!New_Val = "مستحق" rst2.Update End If RSt.MoveNext Loop Until RSt.EOF End Sub
ابوخليل قام بنشر يوليو 12, 2015 قام بنشر يوليو 12, 2015 تفضل اخي الكريم اذا كنت احسنت الفهم عنك هذا التعديل آمل ان يحقق مطلوبك New_Db.rar 1
Omar_Kreem قام بنشر يوليو 12, 2015 الكاتب قام بنشر يوليو 12, 2015 (معدل) شكراً أستاذى الفاضل أبو خليل نعم أستاذى هذه هى الفكرة فعلا .. . لكن هل يمكن أن يدور الشرط على السجلات الثلاثة الأولى فقط لكل فرد .. بمعنى مثلاً: الحالة الأولى: 1ـ السجل الأول = غير مستحق. 2ـ السجل الثانى = إذا كان مستحق أصبحت باقى سجلات الشخص غير مستحق. . الحالة الثانية: 1ـ السجل الأول = غير مستحق. 2ـ السجل الثانى: إذا لم يتحقق الشرط فهو غير مستحق. 3ـ السجل الثالث: لابد وأن يكون مستحق.. وتكون جميع سجلات الفرد الأخرى غير مستحق. تم تعديل يوليو 12, 2015 بواسطه omar19-3
Omar_Kreem قام بنشر يوليو 12, 2015 الكاتب قام بنشر يوليو 12, 2015 جزاك الله عنى خيراً أستاذى الكريم أبو خليل . بالتجربة وبإضافة فرد أخر يحمل رقم (9) وكان بداية تعيينه 25/9/1995 فإن التطبيق جاء على السجل الثانى أى سنة 1996. بينما فى هذه الحالة يستحق فى سنة 1997 وهى هنا السجل الثالث لأنه لم يستوف الشرط فى سنة 1996. New_Db_Up3.rar
ابوخليل قام بنشر يوليو 12, 2015 قام بنشر يوليو 12, 2015 اعتقد ان الخطأ في استخراج السنة فالمعادلة تحسب الفرق بين السنين فقط فالدالة year ترجع من التاريخ السنة فقط التي هي اربعة ارقام فنحن هنا نطرح اربعة ارقام من اربعة ارقام امل ان المسألة اتضحت لك وللتصحيح حسب رغبتك يجب ان نستخدم الدالة dateDiff ويكون الحساب بالاشهر فما دون 12 لا يستحق
Omar_Kreem قام بنشر يوليو 12, 2015 الكاتب قام بنشر يوليو 12, 2015 نعم أستاذى أرجو العمل على الدالة DateDiff ... رجاء. .
تمت الإجابة ابوخليل قام بنشر يوليو 12, 2015 تمت الإجابة قام بنشر يوليو 12, 2015 تفضل تم التعديل New_Db_Up4.rar 2
Omar_Kreem قام بنشر يوليو 12, 2015 الكاتب قام بنشر يوليو 12, 2015 والله تعجز الكلمات عن شكرك أستاذى الكريم أبو خليل.. بارك الله فيك وهذا عهدى بك دائماً .. زادك الله علماً ..
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.