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

تجميع التقارير حسب السنه


ahm2019

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

السلام عليكم 

لدى قاعدة  ببيانات لموظفين 

 

المطلوب فى التقرير report1 

المطلوب اظهار تقارير كفاءه كل موظفtt.accdb بجوار بعض بدلا من انهم اسفل بعض 

بمعنى ظهور عمود لتقارير كفاءه 2017 وعمود اخر لتقاريركفاءه 2018 وعمود كفاءه 2019

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

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

انظر استعلام q1 وتقرير rep1 ارجو ان يكون هو المطلوب

tt.rar

تحياتي

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

وعليكم السلام 🙂

 

الاستعلام الضمني الذي عملته انت كمصدر بيانات للتقرير Table1 هو اساس العمل ، فأخذت نسخه منه وعملته كاستعلام مستقل اسمه qry_1 ، والذي به معايير السنوات 🙂

 

اصبح لدينا :

1. مصدر بيانات تقريرك Table1 هو الاستعلام qry_1 ،

2. جعلت الاستعلام qry_1 مصدر بيانات للاستعلام الجدولي qry_2 ، والاستعلام qry_2 مصدر بيانات التقرير rpt_2 ،

3. صحيح ان التقرير rpt_2 شغال تمام ، ولكنه يحتوي على السنوات (2017 و 2018 و 2019) التي تم استعمالها كمعيار للاستعلام qry_1 ، مما يعني ان التقرير يجب تعديله يدويا كلما تغيرت السنوات !!

على هذا الاساس ، اشتغلت على الاستعلام qry_3 واللي مصدر بياناته qry_1 ، ولكني استعملت وحدة نمطية لتعطيني السنوات ، حقل للسنوات lbl (وندمج فيه جميع السنوات) وحقل للدرجة str (وندمج فيه جميع الدرجات) ، ونستعمل "المسافات" لنفرز المسافات بينها ،

التقرير rpt_3 مصدر بياناته هو الاستعلام qry_3 .

 

جعفر

1161.tt.accdb.zip

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

في الواقع ما كنت مرتاح من المسافات بين السنوات ، وخصوصا المسافات بين الدرجات ، فتوصلت الى التالي :

التقرير rpt_4 مصدر بياناته هو الاستعلام qry_4 والذي هو نسخة من qry_3 ، ولكننا ننادي وحدة نمطية تختلف قليلا عن سابقتها ، فهنا نستعمل لغة HTML :

 

1. الاستعلام qry_4 ، ونرسل البيانات المطلوبة الى الوحدة النمطية Year_Report_HTML

image.png.7ea66a992cb8870f3624ac1c0ec7de94.png

.

2. وهذه هي الوحدة النمطية :

Public Function Year_Report_HTML(lbl_str As String, id As Long) As String

    On Error GoTo err_Year_Report_HTML   'On Error Resume Next
        DoCmd.DeleteObject acQuery, "NewQueryDef"
                
    On Error GoTo err_Year_Report_HTML

    Dim rst As DAO.Recordset
    Dim lbl, str, mySQL As String
    

    mySQL = "Select * From qry_1 Where [Table2_id]=" & id & " Order By Table2_id desc"
    Set rst = CurrentDb.OpenRecordset(mySQL)
    
    Do While Not rst.EOF
    
        'lbl = lbl & rst!Yearr & "  " '2 spaces
        'str = str & " " & rst!Report & "        " '1 space and 8 spaces
        
        lbl = lbl & "<font color=black>" & rst!Yearr & "</font><font color=white>" & ChrW(&H2588) & ChrW(&H2588) & "</font>"
        str = str & "<font color=white>" & ChrW(&H2588) & "</font><font color=black>" & rst!Report & "</font><font color=white>" & ChrW(&H2588) & ChrW(&H2588) & ChrW(&H2588) & "</font>"

        rst.MoveNext
    Loop



    If lbl_str = "lbl" Then
        
        Year_Report_HTML = lbl
    Else
        
        Year_Report_HTML = str
    End If
    
Exit_Year_Report_HTML:

    rst.Close: Set rst = Nothing
    Exit Function
    
err_Year_Report_HTML:

    If Err.Number = 3061 Then
             
             'too few parameters, expected 1 or more
            
            'this error occurs when trying to run a query which needs its parameters from a Form,
            'the Form should be open with the parameter, then this code take the values properly
            
            Dim qdf As QueryDef
            Dim prm As Parameter
            
            Set qdf = CurrentDb.CreateQueryDef("NewQueryDef", mySQL)
            For Each prm In qdf.Parameters
                prm.Value = Eval(prm.Name)
            Next prm

            Set rst = qdf.OpenRecordset(dbOpenDynaset)
            DoCmd.DeleteObject acQuery, "NewQueryDef"
            
            Resume Next
        
    ElseIf Err.Number = 7874 Then
        'could not find QueryDef
        Resume Next
            
    ElseIf Err.Number = 2486 Then
        'could not delete QueryDef
            
            Resume Next
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If

End Function

.

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

1161.Clipboard04.jpg.34d8534daa15eae0cc9bd7a79d46d081.jpg

.

3. الحقلين الذين في الاستعلام ، نراهم هنا

1161.Clipboard01.jpg.4e7b3928fc550b54d2167fa83142bffb.jpg

.

وهذه اعدادات الحقلين حتى يأخذوا لغة HTML

1161.Clipboard03.jpg.34ce2e2857d4d9edda42f34a01a0877c.jpg

.

والنتيجة :

1161.Clipboard02.jpg.cfb8e1688254bae1ca8f7d4d7852ebae.jpg

.

جعفر

1161.tt.accdb.zip

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

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