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

Jalal Saif

عضو جديد 01
  • Posts

    3
  • تاريخ الانضمام

  • تاريخ اخر زياره

Community Answers

  1. Jalal Saif's post in ارجو المساعدة في استعلام لايجاد المجموع من جدولين مع وجود حقول تحمل القيمة null ووجود شرط was marked as the answer   
    السلام عليكم ورحمة الله وبركاته 
     
     
    نعاود الشكر لكم في هذا المنتدى واعضاءه و خاصة الاخوة المشرفين لما يقدموه لنا من نصائح و دروس تعليمية لبرامج الاوفيس وكل ما يختص بمجال الحاسب 
     
    اخي عبدالرحمن لقد حاولت معي لايجاد حل للمشكلة التي وضعتها ولك مني كل التقدير والعرفان لمساهماتك وخاصة الاخيرة والتي منها استوحيت الفكرة لحل المشكلة التي واجهتني وهي استخدام الكود 
     
    اخ عبدالرحمن المشكلة التي كنت اوجهها هي ايجاد مجموع الحيوانات التي تم مراجعتها في الادارة في تاريخ معين والخطأ الذي وقعت فيه (مع احترامي لك) حنى في التعديل انه عند تحديد التاريخ النتائج التي تظهر فقط الحيوانات التي لم يدخل لها اي مراجعة وكانت تاخذ القيمة 0 اما الحيوانات التي قامت بالمراجعتها كانت تاخذ مجموعها . 
     
    ولهذا قمت بانشاء جدول جديد واسميته temptab والغرض منه يحفظ القيمة مؤقتا لجميع الحيوانات بعد تنفيذ هذا الكود 
    Private Sub أمر0_Click() On Error Resume Next 'تعريف البيانات Dim strUpdate, strSave, strSQL, strSQL2 As String Dim rs1, rs2 As DAO.Recordset Dim db As Database 'التاكد من ادخال البداية التاريخ If IsNull([Dat_from]) Then MsgBox "من فضلك أكتب التاريخ الأول", vbExclamation, "التاريخ الأول" [Dat_from].SetFocus Exit Sub End If 'التاكد من ادخال نهاية التاريخ If IsNull([Dat_to]) Then MsgBox "من فضلك أكتب التاريخ الثاني", vbExclamation, "التاريخ الثاني" [Dat_to].SetFocus Exit Sub End If 'الاتصال بقاعدة البيانات Set db = CurrentDb 'اولا تصفير جميع الاعداد في جدول TempTab strUpdate = " UpDate TempTab set [qu] =0" DoCmd.SetWarnings False DoCmd.RunSQL (strUpdate) ' ثانيا الاستعلام الخاص بايجاد عدد الحيوانات التي قامت بمراجعة الادارة strSQL = "SELECT Q1.EnimalName AS [Enimal_Name], Sum(NZ([Mos_Qu],0)) AS [Enimal_Qu] " strSQL = strSQL + "FROM Q1 LEFT JOIN HalaDes ON Q1.hala_No = HalaDes.Hala_No " strSQL = strSQL + "WHERE (((Q1.Hala_Date) Between '" & Me.Dat_from & "' And '" & Me.Dat_to & "')) " strSQL = strSQL + "GROUP BY Q1.EnimalName" Set rs1 = db.OpenRecordset(strSQL) ' التاكد من عدد السجلات التي قامت بالمراجعة If rs1.RecordCount = 0 Then MsgBox "لايوجد مراجعات حسب التاريخ المدخل ", vbOKOnly, ".تنبيه." Exit Sub End If ' ثالثا الاستعلام الخاص بجدول الحيوانات وعددها strSQL2 = "SELECT enimal, qu FROM TempTab " Set rs2 = db.OpenRecordset(strSQL2) rs1.MoveFirst rs2.MoveFirst Do While Not rs1.EOF Do While Not rs2.EOF If Trim(rs1!Enimal_Name) = Trim(rs2!enimal) Then rs2.Edit rs2![qu] = rs1![Enimal_Qu] rs2.Update End If rs2.MoveNext Loop rs2.MoveFirst rs1.MoveNext Loop MsgBox " تم حفظ البيانات ", vbExclamation, ".تنبيه." End Sub وهذه صورة من العملية بعد تنفيذ البرنامج 
     

     
     
    ومثلما اشغلتكم بهذه المشكلة احببت ان اشراككم الحل الذي توصلت اليه 
     
     
    وشكراااااااا
    DBZer--Fin.rar
×
×
  • اضف...

Important Information