اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

إدراج قيمة فى حقل تالى


Omar_Kreem
إذهب إلى أفضل إجابة Solved by ابوخليل,

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

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

.

 

لدى جدول يتضمن .. 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

post-29235-0-42966000-1436050205_thumb.j

رابط هذا التعليق
شارك

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

.

رجاء تعديله أو وضع الحل المناسب ..

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

رابط هذا التعليق
شارك

شكراً أستاذى الفاضل أبو خليل

نعم أستاذى هذه هى الفكرة فعلا ..

.

لكن هل يمكن أن يدور الشرط على السجلات الثلاثة الأولى فقط لكل فرد .. بمعنى مثلاً:

الحالة الأولى:

1ـ السجل الأول = غير مستحق.

2ـ السجل الثانى = إذا كان مستحق أصبحت باقى سجلات الشخص غير مستحق.

.

الحالة الثانية:

1ـ السجل الأول = غير مستحق.

2ـ السجل الثانى: إذا لم يتحقق الشرط فهو غير مستحق.

3ـ السجل الثالث: لابد وأن يكون مستحق.. وتكون جميع سجلات الفرد الأخرى غير مستحق.

تم تعديل بواسطه omar19-3
رابط هذا التعليق
شارك

جزاك الله عنى خيراً أستاذى الكريم أبو خليل

.

بالتجربة وبإضافة فرد أخر يحمل رقم (9) وكان بداية تعيينه 25/9/1995 فإن التطبيق جاء على السجل الثانى أى سنة 1996.

 

بينما فى هذه الحالة يستحق فى سنة 1997 وهى هنا السجل الثالث لأنه لم يستوف الشرط فى سنة 1996.

New_Db_Up3.rar

رابط هذا التعليق
شارك

اعتقد ان الخطأ في استخراج السنة

فالمعادلة تحسب الفرق بين السنين فقط

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

فنحن هنا نطرح اربعة ارقام من اربعة ارقام

امل ان المسألة اتضحت لك

وللتصحيح حسب رغبتك يجب ان نستخدم الدالة dateDiff

ويكون الحساب بالاشهر

فما دون 12 لا يستحق

رابط هذا التعليق
شارك

والله تعجز الكلمات عن شكرك أستاذى الكريم أبو خليل..

بارك الله فيك وهذا عهدى بك دائماً ..

زادك الله علماً ..

رابط هذا التعليق
شارك

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