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

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

قام بنشر

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

بينما كنت ابحث عن كود اختيار عدة اصناف (أشهر) من مربع قائمة لعمل تصفية عند فتح تقرير ما وجدت الكود التالي :

Private Sub cmdPreview_Click()
On Error GoTo Err_Handler
    'Purpose:  Open the report filtered to the items selected in the list box.
    'Author:   Allen J Browne, 2004.   http://allenbrowne.com
    Dim varItem As Variant      'Selected items
    Dim strWhere As String      'String to use as WhereCondition
    Dim strDescrip As String    'Description of WhereCondition
    Dim lngLen As Long          'Length of string
    Dim strDelim As String      'Delimiter for this field type.
    Dim strDoc As String        'Name of report to open.
    
    'strDelim = """"            'Delimiter appropriate to field type. See note 1.
    strDoc = "MonthlyCompRpt"

    'Loop through the ItemsSelected in the list box.
    With Me.MnthsList
        For Each varItem In .ItemsSelected
            If Not IsNull(varItem) Then
                'Build up the filter from the bound column (hidden).
                strWhere = strWhere & strDelim & .ItemData(varItem) & strDelim & ","
                'Build up the description from the text in the visible column. See note 2.
                strDescrip = strDescrip & """" & .Column(1, varItem) & """, "
            End If
        Next
    End With
    
    'Remove trailing comma. Add field name, IN operator, and brackets.
    lngLen = Len(strWhere) - 1
    If lngLen > 0 Then
        strWhere = "[MnthsZ] IN (" & Left$(strWhere, lngLen) & ")"
        lngLen = Len(strDescrip) - 2
        If lngLen > 0 Then
            strDescrip = "Categories: " & Left$(strDescrip, lngLen)
        End If
    End If
    
    'Report will not filter if open, so close it. For Access 97, see note 3.
    If CurrentProject.AllReports(strDoc).IsLoaded Then
        DoCmd.Close acReport, strDoc
    End If
    
    'Omit the last argument for Access 2000 and earlier. See note 4.
    DoCmd.OpenReport strDoc, acViewPreview, WhereCondition:=strWhere, OpenArgs:=strDescrip

Exit_Handler:
    Exit Sub

Err_Handler:
    If Err.Number <> 2501 Then  'Ignore "Report cancelled" error.
        MsgBox "Error " & Err.Number & " - " & Err.Description, , "cmdPreview_Click"
    End If
    Resume Exit_Handler
End Sub

 

تظهر لي رسالة خطأ عند تنفيذ الكود دائما

السبب هو ان حقل التصفية [MnthsZ] لدي هو حقل ناشئ عن استعلام والذي يظهر الشهر والعام ('mm yyyy') ، عند محاولتي لتغيير صيغة الحقل الى ('mmyyyy') بدون فراغ عمل معي الكود جيدا .

السؤال هو كيف يمكنني تنفيذ الكود اعلاه عن طريق جعل نمط الشهر بالصيغة ('mm yyyy') ؟؟

قام بنشر (معدل)
في ٤‏/١١‏/٢٠١٦ at 23:27, ابوخليل said:

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


=Format(Date();"mm  yyyy")

 

عزيزي ابوخليل جربت التنسيق اعلاه فلم يتغير شئ وضهرت رسالة الخطأ وكأنني لم اغير شي

الخطأ الذي يظهر لي هو Error 3075

في ٤‏/١١‏/٢٠١٦ at 23:28, محمد ايمن said:

جرب ان تكتب التاريخ بهذه الصيغة

('mm/yyyy')

 

جربت هذا التنسيق واختفت رسالة الخطأ لكن التقرير يظهر لي فارغا (بدون بيانات)

تم تعديل بواسطه كوماندير
قام بنشر
10 ساعات مضت, كوماندير said:

عزيزي ابوخليل جربت التنسيق اعلاه فلم يتغير شئ وضهرت رسالة الخطأ وكأنني لم اغير شي

الخطأ الذي يظهر لي هو Error 3075

 

جربت هذا التنسيق واختفت رسالة الخطأ لكن التقرير يظهر لي فارغا (بدون بيانات)

يا استاذ كوماندير
انت حابب تعذبنــا ؟! :blink:

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

انا بجد كتير بأكون نفسى اساعد لكن ما بأقدر واطلب توفير القاعدة وحضرتك ما ترد بعد ذلك :rol:

قام بنشر

اليكم المرفق اخواني

في النموذج الاول MainFrm في مصدر الصف ل مربع القائمة تركنا فراغ في تنسيق التاريخ الشهري 'mm yyyy' وفي مصدر بيانات التقرير المراد فتحه Rpt1  جعلنا تنسيق التاريخ الشهري 'mm yyyy' . وهذا التنسيق المطلوب لفتح التقرير .

اما

في النموذج الثاني MainFrm1 في مصدر الصف ل مربع القائمة ازلنا الفراغ في تنسيق التاريخ الشهري 'mmyyyy' وفي مصدر بيانات التقرير المراد فتحه Rpt2  جعلنا تنسيق التاريخ الشهري 'mmyyyy' .

 

وهذا المرفق :

‫MonthlyReports1.rar

قام بنشر (معدل)
في ٨‏/١١‏/٢٠١٦ at 00:11, محمد ايمن said:

اخي الكريم جربت المرفق على اوفيس 2007 وهو يعمل بشكل جيد بدون اي مشاكل

مشكور اخي الكريم

هل جربت فتح التقرير بعد اختيار عدة اشهر من الليست الذي في النموذج MainFrm وليس MainFrm1 ؟

اخي كذلك انا عندي اكسس 2007 لكن عند اختيار عدة اشهر واضغط زر فتح التقرير تظهر لي الرسالة التالية :

بدون عنوان.jpg

تم تعديل بواسطه كوماندير
قام بنشر

تحية طيبة اخي الكريم

بداية ساشرح الطريقة في النموذج الثاني لاستطيع ان اشرح الطريقة في النموذج الاول

في النموذج الثاني عندما تختار الشهر الثاني و الثالث تكون نتيجة عامل التصفية كالتالي

022016

032016

هنا القيم رقمية و يمكن كتابتها بين قوسين فقط ( مثل ما هي في الكود)

 

في النموذج الاول هناك مسافة بين الشهر و العام و هذا يؤدي الى ان الحقل في هذه الحالة قد اصبح نص و ليس رقم !!!

و القيم النصية لايمكن كتابتها بشكل مباشر فهي تحتاج الى علامة اقتباس مفردة ( ' ) قبل و بعد القيمة

لذلك اضفت العلامة في كل قيمة قبل و بعد النص ليصبح عامل التصفية كتالي

'2016 02'

'2016 03'

اعتذر عن الاطالة و ارجو ان يكون الشرح مفيدا

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.

×
×
  • اضف...

Important Information