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

رسالة خطأ عند فتح نفس التقرير اكثر من ثلاث مرات


إذهب إلى أفضل إجابة Solved by أبو إبراهيم الغامدي,

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

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

اساتذتي الافاضل 

استعملت هذا الكود لفتح تقرير rptCustomers 

Option Compare Database
 Dim rpt As Report
Private colReports As New Collection
Private mintrpt As Integer


Private Sub CommandOpenReports_Click()
Set rpt = New Report_rptCustomers
     colReports.ADD Item:=rpt, Key:=rpt.hwnd & ""
        mintrpt = mintrpt + 1
rpt.Caption = mintrpt
rpt.Visible = True


End Sub
فيفتح التقرير ثلاث مرات ثم تظهر هذه الرسالة بانه لا يمكن فتح اس قواعد بيانات اخرى كما في الصورة 

OpenReports.png

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

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

أهلا محمد..

نعم،، هذة الشفرة صحيحة!

لكن يمكن أن يكون في التقرير نفسه إعلان لمتغير فتح قاعدة بيانات بدون إنهاء للمتغير بعد الاستفادة منه،، وهذا في نظري ما سبب رسالة الخطأ..

راجع شفرة التقرير؛؛هل ماذكرته صحيح؟! 

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

أهلا محمد،،

فقط افتح التقرير في وضع التصميم،، ثم اذهب إلى محرر الشفرة الخاصة بالتقرير،، ثم انقر على أيقوتة الحفظ،، ثم أغلق التقرير!!

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

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

اشكرك استاذي العزيز @أبو إبراهيم الغامدي 

تم حل المشكلة

بقي طلي اذا سمحت استاذي 

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

بحيث بعد التحديث للمربع يحدد اسم التقرير فيتم استدعاء الدالة لفتح التقرير الموجود في مربع التحرير

وجزاك الله خيرا وبارك فيك

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

في ٢٦‏/٢‏/٢٠٢١ at 06:13, محمد القدسي said:

قي طلي اذا سمحت استاذي 

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

بحيث بعد التحديث للمربع يحدد اسم التقرير فيتم استدعاء الدالة لفتح التقرير الموجود في مربع التحرير

لا زلت أتعجب؛ لمذا تريد أن تفتح التقارير عن طريق البينة الغرضية وليس باستخدام الطريقة التقليدية!

المهم هنا هو إدراج اسماء التقارير في مربع تحرير ..

يمكن فعل ذلك عن طريق إنشاء استعلام (تحديد بيانات) من جدول كائنات النظام (MSysObjects) يرجع اسم الغرض من الحقل (Name) وسيكون المحدد هو نوع الغرض من الحقل (Type) ومعرف النوع للتقارير هو (32764-)..

SELECT MSysObjects.Name FROM MSysObjects WHERE (((MSysObjects.Type)=-32764)); 

توضع وصلة الاستعلام هذه في مصدر الصف (Row Source) لمربع التحرير،،

يمكن فتح التقرير بعد اختيار التقرير مباشرة (في وضع المعاينة قبل الطباعة ) إذا ما وضعنا التعليمة التالية في حدث بعد التحديث (AfterUpdate) لمربع التحرير

DoCmd.OpenReport Me.Combo#, acViewPreview '-- قيمة مربع التحرير والسرد

testreport.accdb

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

اشكرك استاذي على تعاونك 

لا زلت أتعجب؛ لمذا تريد أن تفتح التقارير عن طريق البينة الغرضية وليس باستخدام الطريقة التقليدية!

لاني مثلا اريد افتح كشف حساب لاحد العملاء واريد مطابقته مع عميل اخر فاضطر اغلق التقرير الاول وافتح الاخر

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

فقلت بدلا من التصدير لمثلا pdf اضطر بعده احذف التقارير او تبقى في المجلد فيكبر حجم المجلد 

فهذا ما اردت من فتح التقارير عن طريق البينة الغرضية

والمثال استاذي ليس المطلوب 

فعلى فرض ان التقرير rptCustomers عبارة عن كشف حساب يتم به فتح حساب عميل 

وبعدها تم تغيير الكشف بعميل اخر 

اريد التقرير ان يفتح اكثر من مرة بعد تغيير حساب العملاء

ارجو ان اكون اوصلت ما اريد

شاكرا لك استاذي 

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

  • أفضل إجابة
13 ساعات مضت, محمد القدسي said:

لاني مثلا اريد افتح كشف حساب لاحد العملاء واريد مطابقته مع عميل اخر فاضطر اغلق التقرير الاول وافتح الاخر

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

فقلت بدلا من التصدير لمثلا pdf اضطر بعده احذف التقارير او تبقى في المجلد فيكبر حجم المجلد 

فهذا ما اردت من فتح التقارير عن طريق البينة الغرضية

هذا تبرير منطقي ومعقول..

خرجت من المثال المرفق بالتصور التالي..

اختر التقرير من مربع التحرير، ومن ثم انقر على معرف العميل لترى البيانات الخاصة بذلك العميل..

إذا نقرت على معرف العميل قبل اختيار التقرير من مربع التحرير تظهر سالة تنبيه..

testreport.accdb

 

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

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