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

طريقة تحويل العمود الى صف فى التقارير


king5star

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

20 دقائق مضت, صالح حمادي said:

يمكنك إنشاء إستعلام جدولي من خلاله تستطيع أن تجعل قيم أحد الأعمدة إلى عناوين حقول

 

تسلم ايدك اخى سوف اجربها وابلغك .

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

 

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

2 دقائق مضت, jjafferr said:

السلام عليكم:smile:

 

اليك هذه الروابط

واقرأ الرابط التالي لآخره ، ثم انتقل الى الرابط الذي به

.

جعفر

شكراً لاهتمامك اخى وسف اقوم بتنفيذ التعليمات واخبرك

 

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

في ٢‏/١‏/٢٠١٧ at 00:01, king5star said:

تسلم ايدك اخى سوف اجربها وابلغك .

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

 

اخي الكريم
انا نزلت القاعده‌ بياناتك
كان بها جدول بحقلين فقط

ولكي تعمل استعلام جدولي يجب ان يكون مصدر الاستعلام الجدولي بيكون اكثر من حقلين
انا اضفت حقل اخر
وعملت استعلام جدولي

هل هذا هو المطلوب او ...

Item.zip

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

6 ساعات مضت, Shivan Rekany said:

اخي الكريم
انا نزلت القاعده‌ بياناتك
كان بها جدول بحقلين فقط

ولكي تعمل استعلام جدولي يجب ان يكون مصدر الاستعلام الجدولي بيكون اكثر من حقلين
انا اضفت حقل اخر
وعملت استعلام جدولي

هل هذا هو المطلوب او ...

Item.zip

تسلم ايدك اخى وشكراص لمجهودك وتعبك ولكن ليس هذا ما اقصد وهذه صوره لما اريد لقد قمت بتعديلها بالفوتوشوب لاوضح لك .

 

الصورة الاولى

1.jpg

 

ما اريده

 

2.jpg

12 ساعات مضت, jjafferr said:

السلام عليكم:smile:

 

اليك هذه الروابط

واقرأ الرابط التالي لآخره ، ثم انتقل الى الرابط الذي به

.

جعفر

لم اجد المطلوب سيدي ولقد اوضحت فى المشاركة السابقة ما اريد وشكراً جزيلاً لك لاهتمامك .

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

21 ساعات مضت, king5star said:

لم اجد المطلوب سيدي ولقد اوضحت فى المشاركة السابقة ما اريد وشكراً جزيلاً لك لاهتمامك .

شوف هذا 
هل هذا هو طلبك
شوفه ووافيني بالنتيجة

 

Item.zip

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

 

13 ساعات مضت, Shivan Rekany said:

شوف هذا 
هل هذا هو طلبك
شوفه ووافيني بالنتيجة

 

Item.zip

كلمة شكراُ ما تكفي ، والمعني أكبر ما توفيه ، ولو بيدي العمر أعطيه ،أعبر له عن مدي شكري.

 

سلمت يداك وهذه النتيجه مرضيه وجيده وما اريد غيرها بارك الله لك اخى .

 

ولكننى ممتن للشرح فى اسطر حتى لو قليله .

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

1 ساعه مضت, king5star said:

 

كلمة شكراُ ما تكفي ، والمعني أكبر ما توفيه ، ولو بيدي العمر أعطيه ،أعبر له عن مدي شكري.

 

سلمت يداك وهذه النتيجه مرضيه وجيده وما اريد غيرها بارك الله لك اخى .

 

ولكننى ممتن للشرح فى اسطر حتى لو قليله .

اخي الكريم

هسة انا بستخدم موبايل

وان شاء الله في يوم السبت راح اشرح لك اذا ما يكفي هذه الكلما الاسفل

العجب كله بيرجع للوحدة النمطية

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

Sn:Convertcolumntorow("[sn]";"sn"؛"]sn]![id]="&[id])

وعملنا تجميع اي كروب للاستعلام

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

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

Public Function ConvertColumnToRow(strField As String, _
    strTable As String, _
    Optional strWhere As String, _
    Optional strOrderBy As String, _
    Optional strSeparator = ", ") As Variant
On Error GoTo Err_Handler
    Dim rs As DAO.Recordset
    Dim rsMV As DAO.Recordset
    Dim strSql As String
    Dim strOut As String
    Dim lngLen As Long
    Dim bIsMultiValue As Boolean
    
    ConvertColumnToRow = Null
    
    strSql = "SELECT " & strField & " FROM " & strTable
    If strWhere <> vbNullString Then
        strSql = strSql & " WHERE " & strWhere
    End If
    If strOrderBy <> vbNullString Then
        strSql = strSql & " ORDER BY " & strOrderBy
    End If
    Set rs = DBEngine(0)(0).OpenRecordset(strSql, dbOpenDynaset)
    bIsMultiValue = (rs(0).Type > 100)
    
    Do While Not rs.EOF
        If bIsMultiValue Then
            Set rsMV = rs(0).Value
            Do While Not rsMV.EOF
                If Not IsNull(rsMV(0)) Then
                    strOut = strOut & rsMV(0) & strSeparator
                End If
                rsMV.MoveNext
            Loop
            Set rsMV = Nothing
        ElseIf Not IsNull(rs(0)) Then
            strOut = strOut & rs(0) & strSeparator
        End If
        rs.MoveNext
    Loop
    rs.Close
    
    lngLen = Len(strOut) - Len(strSeparator)
    If lngLen > 0 Then
       ConvertColumnToRow = Left(strOut, lngLen)
    End If

Exit_Handler:
    Set rsMV = Nothing
    Set rs = Nothing
    Exit Function

Err_Handler:
    MsgBox "Error " & Err.Number & ": " & Err.Description, vbExclamation, "ConvertColumnToRow()"
    Resume Exit_Handler
End Function

وبعدين عملنا استعلام كما مبينة بالصور

12.JPG

وبعدين عملنا تقرير على هذا الاستعلام

وحفظنا التقرير باسم Query1
وبعد عملنا تقرير على هذا الاستعلام

اي يعني مصدر هذا التقرير هو استعلام Query1 كما مبينة في الصورة

13.JPG

وفي النهاية النتيجة طلعت هكذا

14.JPG

مع تقدير

 

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

17 ساعات مضت, Shivan Rekany said:

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


Public Function ConvertColumnToRow(strField As String, _
    strTable As String, _
    Optional strWhere As String, _
    Optional strOrderBy As String, _
    Optional strSeparator = ", ") As Variant
On Error GoTo Err_Handler
    Dim rs As DAO.Recordset
    Dim rsMV As DAO.Recordset
    Dim strSql As String
    Dim strOut As String
    Dim lngLen As Long
    Dim bIsMultiValue As Boolean
    
    ConvertColumnToRow = Null
    
    strSql = "SELECT " & strField & " FROM " & strTable
    If strWhere <> vbNullString Then
        strSql = strSql & " WHERE " & strWhere
    End If
    If strOrderBy <> vbNullString Then
        strSql = strSql & " ORDER BY " & strOrderBy
    End If
    Set rs = DBEngine(0)(0).OpenRecordset(strSql, dbOpenDynaset)
    bIsMultiValue = (rs(0).Type > 100)
    
    Do While Not rs.EOF
        If bIsMultiValue Then
            Set rsMV = rs(0).Value
            Do While Not rsMV.EOF
                If Not IsNull(rsMV(0)) Then
                    strOut = strOut & rsMV(0) & strSeparator
                End If
                rsMV.MoveNext
            Loop
            Set rsMV = Nothing
        ElseIf Not IsNull(rs(0)) Then
            strOut = strOut & rs(0) & strSeparator
        End If
        rs.MoveNext
    Loop
    rs.Close
    
    lngLen = Len(strOut) - Len(strSeparator)
    If lngLen > 0 Then
       ConvertColumnToRow = Left(strOut, lngLen)
    End If

Exit_Handler:
    Set rsMV = Nothing
    Set rs = Nothing
    Exit Function

Err_Handler:
    MsgBox "Error " & Err.Number & ": " & Err.Description, vbExclamation, "ConvertColumnToRow()"
    Resume Exit_Handler
End Function

وبعدين عملنا استعلام كما مبينة بالصور

12.JPG

وبعدين عملنا تقرير على هذا الاستعلام

وحفظنا التقرير باسم Query1
وبعد عملنا تقرير على هذا الاستعلام

اي يعني مصدر هذا التقرير هو استعلام Query1 كما مبينة في الصورة

13.JPG

وفي النهاية النتيجة طلعت هكذا

14.JPG

مع تقدير

 

سلمت يداك اخي .

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

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