jo_2010 قام بنشر بالامس في 11:25 قام بنشر بالامس في 11:25 الخبراء الافاضل بعدالتحية اريد كود برمجى لزر فى نموذج كود اذا كان التقرير فارغ لايفتح ويعطى رسالة التقرير فارغ واذا كان بة بيانات يفتح التقرير ويعطى رسالة هل تريد طباعة هذا التقرير ؟ والرسالة بها زر نعم و زر لا خالص الشكر 1
ابو جودي قام بنشر بالامس في 12:14 قام بنشر بالامس في 12:14 48 دقائق مضت, jo_2010 said: كود اذا كان التقرير فارغ لايفتح ويعطى رسالة التقرير فارغ واذا كان بة بيانات يفتح التقرير ويعطى رسالة هل تريد طباعة هذا التقرير ؟ والرسالة بها زر نعم و زر لا الموضوع ده قبل الرد لازم نكون عارفين ايه مصدر بيانات التقرير وهل فيه فرز او تصفيه بتتم واللا لاء يعنى ضع مرفقك بالحالة اللى انت عاوزها بالظبط 1
تمت الإجابة ابو جودي قام بنشر بالامس في 12:49 تمت الإجابة قام بنشر بالامس في 12:49 على العموم بوجه عام فى كود فتح التقرير من خلا زر امر استخدم Dim strRptName As String Dim strMsgNoData As String Dim strMsgConfirm As String '' --- اسم التقرير strRptName = "" '' --- الرسالة إذا لم توجد بيانات strMsgNoData = "التقرير فارغ." '' --- رسالة التأكيد strMsgConfirm = "هل تريد طباعة هذا التقرير؟" '' === فتح التقرير بشكل غير ظاهر للمستخدم (يتم عرضه في الخلفية للتحقق) === DoCmd.OpenReport strRptName, acViewPreview, , , acHidden '' === التحقق من وجود بيانات === If Reports(strRptName).HasData Then '' --- توجد بيانات، نسأل المستخدم If MsgBox(strMsgConfirm, vbYesNo + vbQuestion + vbMsgBoxRtlReading + vbMsgBoxRight, "تأكيد الطباعة") = vbNo Then DoCmd.Close acReport, strRptName, acSaveNo Else '' --- إظهار التقرير لأنه كان مخفي DoCmd.SelectObject acReport, strRptName, True End If Else '' --- لا توجد بيانات، نغلق التقرير ونعرض رسالة DoCmd.Close acReport, strRptName, acSaveNo MsgBox strMsgNoData, vbExclamation + vbMsgBoxRtlReading + vbMsgBoxRight, "تنبيه" End If Exit Sub 1
ابو جودي قام بنشر بالامس في 14:52 قام بنشر بالامس في 14:52 ودى فكرة لتحقيق طلبك بشكل مباشر ولكن لا احب اعادة استخدام الاكواد فى نماذج مختلفة او تعديلها كل شوية ان شاء الله تعالى سوف أقوم ببناء وحدة نمطية متخصصة للتحكم فى كل كبيرة وصغيرة لمن يهتم بهذا الموضوع ينتظر ان شاء الله مفاجأه سارة
ابو جودي قام بنشر بالامس في 17:12 قام بنشر بالامس في 17:12 وتم بحمد الله الذى تتم بنعمته الصالحات بعد خناقة كبيرة كبيرة كبيـــــــــرة مع بنات أفكارى الكود فى الوحدى النمطية العامة كود ذكى وسحرى ومرن وابن حلال وحيفهمك ويريحك ويلبى كل متطلباتك تقريبا فى التعامل مع التقارير و .... هو انا لسه هاتلكم كتير ما تيجوا نشوف على طول
منتصر الانسي قام بنشر بالامس في 19:36 قام بنشر بالامس في 19:36 مع إحترامي لحل الأخ @ابو جودي فالمسألة أبسط من كذا كل ماعليك فعله هو إضافة الكود التالي لحدث عند عدم وجود بياتات أو On No Data الخاص بالتقرير 'رسالة تنبيه MsgBox "لايوجد أي بيانات في التقرير", vbMsgBoxRight + vbMsgBoxRtlReading, "تنبيه" 'إلغاء الأمر وعدم متابعة فتح التقرير Cancel = -1 ليصبح بهذا الشكل Private Sub Report_NoData(Cancel As Integer) 'رسالة تنبيه MsgBox "لايوجد أي بيانات في التقرير", vbMsgBoxRight + vbMsgBoxRtlReading, "تنبيه" 'إلغاء الأمر وعدم متابعة فتح التقرير Cancel = -1 End Sub مع تحياتي 1
ابو جودي قام بنشر بالامس في 19:45 قام بنشر بالامس في 19:45 2 دقائق مضت, منتصر الانسي said: كل ماعليك فعله هو إضافة الكود التالي لحدث عند عدم وجود بياتات أو On No Data الخاص بالتقرير يا هلا والله باستاذى القدير و معلمى الجليل الاستاذ @منتصر الانسي هذا الحل ينفع بس فى حالة واحدة فتح التقرير : DoCmd.OpenReport strRptName, acViewPreview ولكن لو اردت الطباعة : DoCmd.OpenReport "Period Report", acViewNormal للاسف لو ما فى بيانات سوف يتم طباعة ورقة بيضاء 1
Foksh قام بنشر منذ 16 ساعات قام بنشر منذ 16 ساعات ولو بعد الرسالة اغلقنا التقرير 😅 برضوا هيطبع صفحة فاضية ! 🙄 1
ابو جودي قام بنشر منذ 15 ساعات قام بنشر منذ 15 ساعات منذ ساعه, Foksh said: ولو بعد الرسالة اغلقنا التقرير 😅 برضوا هيطبع صفحة فاضية ! 🙄 مش توضح الرد ده مع انهو طريقه بالظبط
Foksh قام بنشر منذ 13 ساعات قام بنشر منذ 13 ساعات 2 ساعات مضت, ابو جودي said: مش توضح الرد ده مع انهو طريقه بالظبط حقك علي فعلاً ،، انا افتكرت نفسي عملت اقتباس 😂 قصدي مع مشاركة معلمي الفاضل منتصر 1
ابو جودي قام بنشر منذ 12 ساعات قام بنشر منذ 12 ساعات منذ ساعه, Foksh said: حقك علي فعلاً ،، لا انا مش زعلان بس انا علشان مش عندي طابعة فكرت المشكله فى الكود بتاعى 1
منتصر الانسي قام بنشر منذ 6 ساعات قام بنشر منذ 6 ساعات 5 ساعات مضت, ابو جودي said: بس انا علشان مش عندي طابعة فكرت المشكله فى الكود بتاعى 18 ساعات مضت, ابو جودي said: هذا الحل ينفع بس فى حالة واحدة فتح التقرير : DoCmd.OpenReport strRptName, acViewPreview ولكن لو اردت الطباعة : DoCmd.OpenReport "Period Report", acViewNormal لا المسألة مش مسألة إن الكود فيه مشكلة انما أنا فكرت في الموضوع من منظورين آخرين الأول طالما وتوجد طريقة أسهل وتنفذ المطلوب لما لا نستفيد منها الثاني الطبيعة البشرية فعلى طول مشاوري في العمل مع الأنظمة لم أجد مستخدم واحد يطبع تقرير بدون مايفتحه في وضع المعاينة وطباعته من هناك وكأنه يريد الإطمئنان على شكل ومحتوى التقرير قبل طباعته 18 ساعات مضت, ابو جودي said: للاسف لو ما فى بيانات سوف يتم طباعة ورقة بيضاء أنا لم يحدث معي هذا الأمر فبمجرد اغلاق رسالة التنبيه تلغى عملية الطباعة عموما الإختلاف في الرأي لايفسد للود قضية في الأخير كلها أفكار تصب في مصلحة أعضاء المنتدى فمن خلالها يمكنهم التعرف على كل البدائل الممكنة للعمل بما يلائمهم منها أو حتى أنهم قد يخرجون منها بأفكار أخرى جديدة مع تحياتي 1
ابو جودي قام بنشر منذ 5 ساعات قام بنشر منذ 5 ساعات 16 دقائق مضت, منتصر الانسي said: الأول طالما وتوجد طريقة أسهل وتنفذ المطلوب لما لا نستفيد منها طبعا استاذى الجليل و معلمى القدير اتفق معك تماما تماما فى هذه النقطة 16 دقائق مضت, منتصر الانسي said: الثاني الطبيعة البشرية فعلى طول مشاوري في العمل مع الأنظمة لم أجد مستخدم واحد يطبع تقرير بدون مايفتحه في وضع المعاينة وطباعته من هناك وكأنه يريد الإطمئنان على شكل ومحتوى التقرير قبل طباعته انا فى عملى يا استاذى هناك تقارير اطبعها بشكل مباشر دون محاولة فتحها اساسا نظرا احيانا لضيق الوقت وكثرة العمل و و .... الخ ولكن طبعا انا متأكد من جميع المدخلات والمخرجات وانا على دراية تامة بالكودينج لان من كتابتى وطبعا مسبقا اعرف النتيجة التى سوف احصل عليها من الطباعة 16 دقائق مضت, منتصر الانسي said: أنا لم يحدث معي هذا الأمر فبمجرد اغلاق رسالة التنبيه تلغى عملية الطباعة انا حدث معى هذا الأمر عندما حاولت تجربته فى احد الايام بعد ظهور الرسالة التىفيد بعدم وجود بيانات وفور اغلاق الرسالة تجد الطباعة تعمل جرب حضرتك الان تستخدم الطباعة الى ملف PDF سوف تجده يعمل بعد الرسالة ويقوم بطباعة ( حفظ كملف PDF) للتقرير كهيكل لمحتوى التصميم والعناصر بدون اى بيانات
jjafferr قام بنشر منذ 5 ساعات قام بنشر منذ 5 ساعات 17 دقائق مضت, منتصر الانسي said: أنا لم يحدث معي هذا الأمر فبمجرد اغلاق رسالة التنبيه تلغى عملية الطباعة وانا كذلك ، ولكن تبقى ايقونة الطباعة بقرب ساعة الكمبيوتر لثوان ، ثم تختفي. 7 دقائق مضت, ابو جودي said: جرب حضرتك الان تستخدم الطباعة الى ملف PDF يقوم بحذف لملف السابق (إن وُجد) ، ولا يعمل ملف جديد بصفحة فارغة (انا كذلك اعطاني ايحاء ان الصفحة الفارغة تم طباعتها ، ولكني اكمل الخطوات ولم اجد الملف اصلا).
jjafferr قام بنشر منذ 5 ساعات قام بنشر منذ 5 ساعات انا عندي 3 خطوط (دفاعية) لفتح نموذج او تقرير: 1. الاستعلام ، ويكون مصدر البيانات ، ويكون فيه الفرز (للنموذج فقط ، بينما التقرير لا يحترم فرز الاستعلام وانما يجب عمله في التقرير مباشرة) والتصفية ، 2. وقد احتاج الى تصفية اخرى عند فتح النموذج/التقرير ، او اذا عملت على استعلام/نموذج/تقرير ، ولا احبذ تغيير الاستعلام (لأنه هناك نماذج/تقارير اخرى تعتمد عليه) ، هنا اعتمد على الفرز/التصفية عند فتح النموذج/التقرير ، 3. وفي حالات خاصة (جدا خاصة وجدا قليلة) ، اعتمد على وضع شروط عند فتح النموذج/التقرير في كود فتح النموذج/التقرير. فعليه : وفي جميع الحالات اعلاه ، عمل اخوي ابو جودي (لا يعمل في صيغة mde او accde ، لأنه لا يمكن فتح النموذج/التقرير في وضع التصميم) واخوي منتصر يعملان ، وفي بعض الاحيان كنت احتاج الى معرفة اذا هناك سجلات قبل طباعة تقرير (كان يتأخر في الطباعة) ، وكنت معتمد على الاستعلام كمصدر بيانات ، فكنت استعمل الكود التالي (والذي في اعتقادي هو اسرع من فتح التقرير وانتظار حصول الرسالة منه ، ولكن اذا كانت هناك سجلات ، فالتأخير يكون مرتين ، مرة للتأكد من عدد السجلات ، والمرة الاخرى في طباعة السجلات) : if DCount("*","Query Name")=0 then msgbox "لا توجد سجلات للطباعة" else docmd.openreport "Report Name" end if 1
ابو جودي قام بنشر منذ 3 ساعات قام بنشر منذ 3 ساعات منذ ساعه, jjafferr said: وفي جميع الحالات اعلاه ، عمل اخوي ابو جودي (لا يعمل في صيغة mde او accde ، لأنه لا يمكن فتح النموذج/التقرير في وضع التصميم) اه حضرتك تقصد كود الوحدة النمطية العامة
منتصر الانسي قام بنشر منذ 2 ساعات قام بنشر منذ 2 ساعات ماشاء الله أعتقد أن المداخلات من @ابو جودي و @jjafferr قد أثرت الموضوع وغطت الطرق الأكثر عملية مع توضيح مزايا وعيوب كل طريقة ولكن وتوضيحا لكلام الاخ @ابو جودي 3 ساعات مضت, ابو جودي said: جرب حضرتك الان تستخدم الطباعة الى ملف PDF سوف تجده يعمل بعد الرسالة ويقوم بطباعة ( حفظ كملف PDF) للتقرير كهيكل لمحتوى التصميم والعناصر بدون اى بيانات انا استخدم طابعة إفتراضية تقوم بإستخراج التقرير كملف PDF وتعمل مثل الطابعة الحقيقة أما كلامك فمعناه أنك تستخدم الأمر DoCmd.OutputTo وهذا لايعتبر أمر طباعة وإنما امر لإستخراج الكائن بصيغة محددة بحالته كيفما تكون ولو لاحظت فإن الرسالة لاتظهر من الأساس فحدث عند عدم وجود بياتات أو On No Data الخاص بالتقرير يتطلب استخدام الأمر DoCmd.OpenReport حتى يتم تفعيله ولكن مثلما أسلفت فهذه المناقشات جميلة لنتعرف كلنا على الطرق المختلفة لحل المشاكل فقد يحتاجها أحدنا يوما ما مع تحياتي
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.