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

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

قام بنشر (معدل)

السلام عليكم

لدي استعلام فيه الكثير من العمليات الحسابية ، الا انه عندما افتح هذا الاستعلام ياخذ ما يقارب 30 ثانية حتى يفتح ، مع العلم بان الاستعلام المصدر يفتح بسرعة

فهل يوجد دالة او حل لمعالجة هذا التاخير في فتح الاستعلام

مع العلم بان الاستعلام يحتوي على اكثر من 60 الف عملية(سجل، صف)

شكرا لكم

 

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

عفواً اخي سامي .. انا فقط اردتك ان تنتبه الى النقطة الاولى التي ذكرها الاستاذ جعفر وهي استخدام اوامر VBA في SQL ، مما يبطئ العمليات

 

  • Like 1
قام بنشر
14 ساعات مضت, سامي الضالعي said:

2. عندما افتح هذا الاستعلام ياخذ ما يقارب 30 ثانية حتى يفتح ،

1. مع العلم بان الاستعلام المصدر يفتح بسرعة

السلام عليكم وحياالله الشباب:smile:

 

بالاضافة الى ما تفضل به أخي أوس:smile:

 

رجاء تلاحظ تسلسل الارقام ، فهي 2 ثم 1 ،

الاستعلام 1 مافيه مشكلة ،

ولكنك لما تفتح الاستعلام 2 والذي مصدره الاستعلام 1 ، والظاهر ان فيه معيار فرز او تصفية في حقل معين ،

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

وعند تغيير الحقل في الجدول الى حقل مفهرس ، يجب ان تعمل Compact and Repair للقاعدة التي بها البيانات ، حتى يستفيد الاكسس من هذا التغيير.

 

جعفر

  • Like 6
قام بنشر
في ٢٧‏/٤‏/٢٠١٧ at 12:18, jjafferr said:

السلام عليكم وحياالله الشباب:smile:

 

بالاضافة الى ما تفضل به أخي أوس:smile:

 

رجاء تلاحظ تسلسل الارقام ، فهي 2 ثم 1 ،

الاستعلام 1 مافيه مشكلة ،

ولكنك لما تفتح الاستعلام 2 والذي مصدره الاستعلام 1 ، والظاهر ان فيه معيار فرز او تصفية في حقل معين ،

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

وعند تغيير الحقل في الجدول الى حقل مفهرس ، يجب ان تعمل Compact and Repair للقاعدة التي بها البيانات ، حتى يستفيد الاكسس من هذا التغيير.

 

جعفر

شكرا اخي جعفر

ما تفضلت به من معالجة كانت جيدة

عالجت المشكلة بنسبة 50%

انخفض وقت الانتظار من 30 ثانية الى 15 ثانية

بارك الله فيك وزادك علما ونورا

 

قام بنشر

هلا والله:smile:

زين ، اذن نحن في الطريق الصحيح:smile:

بس سرعة الاستعلام الثاني لازم تكون مقارنة مع الاستعلام الاول ،

فلوسمحت تخبرنا ايش الاشياء الاخرى اللي تعملها في الاستعلام الثاني ،

يعني مو الغلط كله نخليه على البرنامج ، المبرمج كذلك عليه جزء من الغلط:wink2:

 

جعفر

  • Like 3
قام بنشر (معدل)

ماشاء الله تبارك الله  عليك استاذنا الغالـــي :fff: كلامك من ذهب  ربنا يزيدك من فضله

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

حيث يوجد فرق وقت طويل ما بين كل نسخة والاخرى .

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

DoCmd.OpenReport "Rreceipt", acViewNormal, , "[orderno] = " & Me![orderno]
DoCmd.OpenReport "Rreceipt", acViewNormal, , "[orderno] = " & Me![orderno]
DoCmd.OpenReport "Rreceipt", acViewNormal, , "[orderno] = " & Me![orderno]


 وقمت بتغيير الكود الي

Dim I As Integer
  For I = 1 To 3
  DoCmd.OpenReport "Rreceipt", acViewNormal, , "[orderno] = " & Me![orderno]
  Next I

ولكن نفس المشكلة مازالت  مستمرة

علما ان هذه المشكلة تحدث فقط عند زيادة السجلات  ..... حيث بلغت حوالي 34000 سجل 34 الف

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

 عموما .... جاري تطبيق الخطوات التي ذكرتها ، وابلاغك بالنتيجة ان شاء الله

لكن مبدئيا استاذنا هل يوجد فرق بين الكودين المذكورين اعلاه  لامر الطباعة لاكثر من نسخة ؟؟؟؟ اقصد فرق فى الاداء والاستجابه  ؟؟؟؟

كل الحب والتقدير استاذنا الغالــــــــــــــــي ،،،
 

 

 

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

هلا والله أخوي وائل:smile:

 

حل مشكلتك بسيط ، بس بيكلفك عشاء ، لا ومب عشاء واحد ، وانما عشاء عن توفير وقت كل تقرير:wink2:

وإلا خليني اسهل الموضوع ، عشاء واحد بس اجيب معاي كل الحبايب و أولهم أخونا العود @ابو خليل :smile:

 

اذا اتفقنا ، شوف الحل التالي:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

مشكلتك في طريقة طباعتك للتقرير انك تجلب وتفرز وتصفي 34 الف سجل 3 مرات ،

بينما الطريقة التالية تخليك تجلب وتفرز وتصفي 34 الف سجل مرة واحدة فقط ، ولكن تطبع التقرير 3 مرات:

    DoCmd.OpenReport "Rreceipt", acViewPreview, , , acHidden
    DoCmd.PrintOut acPrintAll, , , , 3
    DoCmd.Close acReport, "Rreceipt", acSaveNo

 

جعفر

  • Like 4
قام بنشر
منذ ساعه, jjafferr said:

حل مشكلتك بسيط ، بس بيكلفك عشاء ، لا ومب عشاء واحد ، وانما عشاء عن توفير وقت كل تقرير:wink2:

وإلا خليني اسهل الموضوع ، عشاء واحد بس اجيب معاي كل الحبايب و أولهم أخونا العود @ابو خليل :smile:

 

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

بارك الله فيك وجزاك الله عنا كل خير حبيبنا وزادك الله من فضله ونعمه

جاري  تحديث الكود وابلاغك بالنتيجة

كل الحب والتقدير والاحترام :fff: 

قام بنشر

السلام عليكم

استاذنا الساحر @جعفر

تم التجربة بنجاح والحمد لله تسلم ايدك حبيبنــا:wavetowel:

  Dim stLinkCriteria As String
  stLinkCriteria = "[orderno] =" & Me![orderno]
 
  DoCmd.OpenReport "Rreceipt", acViewPreview, , stLinkCriteria, acHidden
  DoCmd.PrintOut acPrintAll, , , , 3
  DoCmd.close acReport, "Rreceipt", acSaveNo
 

كل التقدير والاحترام ،،،

قام بنشر
منذ ساعه, ابوخليل said:

أشم رائحة  عشاء  :wub:

يصير  عندنا .. قولوا تم ..

الله يسلمك ويعافيك ان شاء الله أخوي ابوخليل ، وهاي يحتاج لها سؤال ،

انت تأمر ونحن نقول تم ان شاء الله:smile:

 

22 ساعات مضت, wael_rafat said:

وعموما انا مو بعيد عنكم:fff:

هاي ما عرفت معادلتها:smile:

 

2 ساعات مضت, wael_rafat said:

السلام عليكم

استاذنا الساحر @جعفر

تم التجربة بنجاح والحمد لله تسلم ايدك حبيبنــا:wavetowel:

  Dim stLinkCriteria As String
  stLinkCriteria = "[orderno] =" & Me![orderno]
 
  DoCmd.OpenReport "Rreceipt", acViewPreview, , stLinkCriteria, acHidden
  DoCmd.PrintOut acPrintAll, , , , 3
  DoCmd.close acReport, "Rreceipt", acSaveNo
 

كل التقدير والاحترام ،،،

وحياك الله:smile:

 

جعفر

  • Like 1
قام بنشر
23 ساعات مضت, jjafferr said:

حل مشكلتك بسيط ، بس بيكلفك عشاء ، لا ومب عشاء واحد ، وانما عشاء عن توفير وقت كل تقرير:wink2:

وإلا خليني اسهل الموضوع ، عشاء واحد بس اجيب معاي كل الحبايب و أولهم أخونا العود @ابو خليل :smile:

 

منذ ساعه, ابوخليل said:

أشم رائحة  عشاء  :wub:

يصير  عندنا .. قولوا تم ..

ما راح أكلفكم كثير راح أجيب عشايا و أتعشى معاكم:wavetowel:

  • Like 1
قام بنشر
في ٢٨‏/٤‏/٢٠١٧ at 22:09, jjafferr said:

هلا والله:smile:

زين ، اذن نحن في الطريق الصحيح:smile:

بس سرعة الاستعلام الثاني لازم تكون مقارنة مع الاستعلام الاول ،

فلوسمحت تخبرنا ايش الاشياء الاخرى اللي تعملها في الاستعلام الثاني ،

يعني مو الغلط كله نخليه على البرنامج ، المبرمج كذلك عليه جزء من الغلط:wink2:

 

جعفر

هلا اخوي جعفر

بالنسبة للعمليات التي تتم في الاستعلام الثاني هي عبارة عن تجميع لحقول الاستعلام الاول ، بالاضافة الى وجود بعض العمليات الحسابية والشرطية داخل الاستعلام الثاني

 

قام بنشر
12 دقائق مضت, سامي الضالعي said:

هلا اخوي جعفر

بالنسبة للعمليات التي تتم في الاستعلام الثاني هي عبارة عن تجميع لحقول الاستعلام الاول ، بالاضافة الى وجود بعض العمليات الحسابية والشرطية داخل الاستعلام الثاني

 

اذن التأخير طبيعي المتبقي :smile:

 

جعفر

  • Like 2
  • 3 weeks later...
قام بنشر (معدل)
في Sunday, 30,04, 2017 at 08:26, wael_rafat said:

السلام عليكم

استاذنا الساحر @جعفر

تم التجربة بنجاح والحمد لله تسلم ايدك حبيبنــا:wavetowel:

  Dim stLinkCriteria As String
  stLinkCriteria = "[orderno] =" & Me![orderno]
 
  DoCmd.OpenReport "Rreceipt", acViewPreview, , stLinkCriteria, acHidden
  DoCmd.PrintOut acPrintAll, , , , 3
  DoCmd.close acReport, "Rreceipt", acSaveNo

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

استاذنا الفاضل @jjafferr    سامحني  الكود شغال زى الفل على طابعة الA4  ، ولكن للاسف بعد التجربة على طابعة الفواتير للاسف لم يعمل ويعطيني نسخة واحدة فقط

بمعني   DoCmd.PrintOut acPrintAll, , , , 3    يعطي نسخة واحدة فقط

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

وسوف يتضح معك الامر لو قمت بالتجربة على طابعة الاوفيس  Send To OneNote 2013

عموما استاذي لدي فكرة او حيلة  ..

لو حاولنا ان نقوم بتكرار  الكود  DoCmd.PrintOut acPrintAll, , , , 3  سوف تنجح الفكرة ....  ولكني فشلت فى الوصول لهذه الحيلة

كل شكري واحترامي استاذنا الساحر

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

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

 

جرب هذا:

DoCmd.OpenReport "Rreceipt", acViewPreview, ,stLinkCriteria
DoCmd.SelectObject acReport, "Rreceipt"
DoCmd.PrintOut , , , , 3
DoCmd.Close acReport, "Rreceipt", acSaveNo

 

جعفر

قام بنشر

    Dim I As Byte
    CopyN = 3
    If IsNumeric(CopyN) Then
        For I = 0 To CopyN - 1
            DoCmd.OpenReport "rpt_name"
        Next I
    End If

قام بنشر

طيب جرب هذه الطريقة:

DoCmd.OpenReport "Rreceipt", acViewPreview, ,stLinkCriteria
DoCmd.SelectObject acReport, "Rreceipt"
DoCmd.PrintOut , , , , 1
DoCmd.PrintOut , , , , 1
DoCmd.PrintOut , , , , 1
DoCmd.Close acReport, "Rreceipt", acSaveNo

 

6 دقائق مضت, co2002co said:

    Dim I As Byte
    CopyN = 3
    If IsNumeric(CopyN) Then
        For I = 0 To CopyN - 1
            DoCmd.OpenReport "rpt_name"
        Next I
    End If

وعليكم السلام اخي بدر

 

نعم نعرف هذه الطريقة ، ولكن التقرير بطيء ، لذلك فنحن نحاول فتح التقرير مرة واحدة ، والطباعة عدة مرات:smile:

 

جعفر

  • 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