اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

أبو آدم

أوفيسنا
  • Posts

    3,292
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    29

كل منشورات العضو أبو آدم

  1. عن أبي هريرة رضي الله عنه قال : قال رسول الله صلى الله عليه وسلم : (( إذا أحب الله تعالى العبد، نادى جبريل، إن الله تعالى يحب فلاناً، فأحببه، فيحبه جبريل، فينادي في أهل السماء : إن الله يحب فلاناً فأحبوه، فيحبه أهل السماء، ثم يوضع له القبول في الأرض )) متفق عليه (228) .
  2. اللهم علمنا ما ينفعنا وانفعنا بما علمتنا شكرا لمرورك الطيب ابو بنسيانا
  3. الحمد لله الذي بفضله تقضى الحاجات طبعا يجب أن تتصرف به كما تشاء وبما يناسب حاجاتك والروتين الذي يناسبك (تمت الاجابة)
  4. أخي العزيز وجدت نسخة من النظام في مكتبتي ، وهي تتفاعل مع اعدادات الويندوز 7 النسخة الموجودة لديك مفتوحة المصدر ام مغلقة ؟ ............
  5. حياك الله وشكرا على مرورك الطيب ................
  6. أخي العزيز زودني برقم الخطأ أو نص رسالة الخطأ ، فقد نتمكن من اعانتك ، فالشرح لا يكفي احيانا .......
  7. أخي العزيز نموذج واحد يتم فيه تحديد خيارات البحث : اسم الموظف او الدورة التدريبية !! وخلف النموذج يتم تحديد مصدر البيانات للتقرير و اسم التقرير و بعض ضوابط حسن الاستخدام للنموذج ، ويكون الإظهار للنموذج والتقرير متلازما و .... و..... واليك المرفق ، طبق ... جرب ... ووافني بالنتيجة والله من وراء القصد ........ ........... NA_SearchReport.rar
  8. من خلال نموذج !!! جاري تنسيق صيغة مناسبة ..........
  9. الحمد لله الذي بفضله تقضى الحاجات أخي العزيز نحن في العون ما قدر لنا واستطعنا (تمت الاجابة)
  10. أخي الحبيب جرأتك الأدبية مثال يحتذى ، فهذه أخلاق طلاب العلم الحق وإعتذارك باب أدب لك لا عليك وما قدمت عمت فائدته بما قدر لك واستطعت ومتابعتك دليل ساطع على رقي أخلاقك علنا نتابع الأمر معا ....
  11. و إحقاقا لطلبك بالتنفيذ ... تفضل ... ولنا عندك وعند إخوتك .... دعوة بالخير ... طيبة بظهر الغيب ............. NA_ControlReportRecordSource.rar
  12. أخي العزيز بنية التقارير مختلفة ولكن لا بأس فكل مشكلة ولها حل !!! بالتجرية نختار التقرير التفصيلي ، Details ، ومن باب الاحتياط والحذر نأخذ نسخة عنه نسميها B ننتقل للنموذج ولمجموعة أزرار الإختيار التي أنشأتها أنت ، حيث اخترت أن يكون التقرير الخاص باسماء المجموعات فقط مميزا بالرقم 1 والخاص بسرد التفاصيل مميزا بالرقم 2 ، ونبدأ العمل ... بتحويل مصادر بيانات التقريرين لجمل SQL ، ونسند لكل منهما ما يناسبه من مصدر للبيانات ، وبالنتيجة يصبح مصدر بيانات التقارير منوطا بالنموذج ، وحسب الكود : Private Sub fraBarType_AfterUpdate() stDocName = "b" Select Case fraBarType Case 1 DoCmd.OpenReport stDocName, acPreview, , , , "SELECT catmastermin.categoryminid, catmastermin.catdesc, catmastermin.category_Description, catmasterGeneral.General_id, catmasterGeneral.General_name, catmasterGeneral.General_Description " & vbCrLf & _ "FROM catmasterGeneral INNER JOIN catmastermin ON catmasterGeneral.General_id = catmastermin.General_id;" Case 2 DoCmd.OpenReport stDocName, acPreview, , , , "SELECT catmastermin.categoryminid, catmastermin.catdesc, catmastermin.category_Description, catmasterGeneral.General_id, catmasterGeneral.General_name, catmasterGeneral.General_Description FROM catmasterGeneral INNER JOIN catmastermin ON catmasterGeneral.General_id=catmastermin.General_id;" End Select End Sub ونعود للتقرير المختار B ونزيل جملة SQL من مصدر البيانات ونتركها خالية ، ثم نفتح محرر الكودات للتقرير ونسند اليه الامر التالي : Private Sub Report_Open(Cancel As Integer) Me.RecordSource = Me.OpenArgs DoCmd.Maximize End Sub حتى يستقي مصدر بياناته من النموذج. ولحل المشكلة الخاصة باختلاف بنية التقريرين ، نضيف للتقرير الكود التالي : Private Sub GroupHeader0_Print(Cancel As Integer, PrintCount As Integer) If Forms!Form1!fraBarType = 1 And Me.categoryminid <> "0" Then Me.Detail.Visible = False End If End Sub وبالنتيجة عند اختيار Totals يطل علينا التقرير بهذه الصورة وعند إختيار Details يطل علينا نفس التقرير بهذه الصورة ما رأيك هل هذا ما تريد ؟؟؟؟ !!! ......
  13. عزيزي أظنها وصلت أنت تريد انشاء تقرير واحد ببنية مناسبة ، ثم تريد التحكم بمصدر بيانات التقرير عند التنفيذ .... اليس كذلك؟؟؟ ......
  14. ؟؟؟ ظننت نفسي فهمت طلبك ... فأعذرني. ما فهمته من طلبك الثاني أنك تريد شكل تقرير نهائي يظهر في أوله : أسماء المجموعات متتالية ثم اسم كل مجموعة و تفاصيلها . هل هذا ما تقصده ...؟؟؟
  15. في عالم هواة البرمجة أمثالي ، هذا يسمى " تطبيقات احترافية " الدعاء للأخوة أبو هادي و يوسف ، حق لهم علينا ، فالجهد المبذول كبير و التطبيق المطروح متميز بكل ما بالكلمة من معنى. "" أسأل الله العظيم رب العرش العظيم أن يجعل أجر ما قدمتم ،، ثقيلا في ميزان حسناتكم ، و أن يجزيكم خير ما يجزى العبد من ربه """ أخي العزيز يوسف أول ما خطر ببالي من إقتراحات إضافة خيار نسخ القيمة الناتجة و/أو التفقيط ، فحين أستخدم مثل هذا الاداة ، أظن نفسي بحاجة لأحدهما أو كلاهما . داعيا المولى القدير أن يحفظك ويفتح عليك ............
  16. أخي العزيز إن كنت قد أحسنت الفهم عنك ، فهذا ما تريد .... ، وإلا فبعض التوضيح اذا سمحت.... تفضل......... ........... NA_HideDetails.rar
  17. أخي العزيز فيما أذكر ، أن الاعدادات الافتراضية للنظام كان فيها ضبط هذا الامر المتعلق باللغة و الارقام انا شخصيا لم استخدم التطبيق ، ولكنني اطلعت عليه وهو عمل مميز على كل حال جرب تغيير الاعدادات للغة و الارقام على جهازك للويندوز و الاوفيس .. (( تجربة فقط )) ووافنا بالنتيجة.... .............
  18. حذف السجلات Deleting Records ويروق لي أن اسمي هذا الموضوع بالحذف الحقيقي و الحذف الافتراضي. في غالب التطبيقات نجد من الضرورة ، أن نضيف في مكان ما من نماذجنا وحسب الحاجة زر أمر نقوم من خلاله بحذف السجلات التي نظن أنها لا تلزمنا أو لسبب ما لا بد من حذفها من قاعدة بياناتنا. ولسبب ما ( مرتبط بالتجربة الطويلة ولأسباب علمية وعملية) ينصح أهل الخبرة في قواعد البيانات ومن يعتبرون من المطورين المعول على كلامهم وتجربتهم ، أن عملية الحذف الحقيقي عملية مؤلمة ومكلفة في آن واحد ، فحين تقرر حذف سجل معين فإنك تقرر الاستغناء عن جزء من المنظومة المعلوماتية التي مرت على هذه القاعدة ، وبالتالي خسارتها للأبد ، ويزيد الامر تعقيدا حين نتعامل مع عملية الحذف المقترن بجداول مرتبطة ، نخسر فيها أطرافا متعددة من العناصر المعلوماتية. وهنا سأورد الرأي بتصرف مضيفا بعضا من خبرتي المتواضعة، فينتهي القول الى: بديل مناسب لعملية الحذف الحقيقي ، وتتمثل ببساطة بإضافة الحقول التالية للجداول الرئيسية التي ستتعرض لعمليات الحذف (الافتراضي ) وهي حقل نعم/لا ، وحقل تاريخ وحقل نصي ، وتتلخص العملية بأن تكون هذه الحقول الثلاثة هي محور الحذف الافتراضي ، فحين نقرر عدم حاجتنا للسجل ، ما علينا الا ان نغير قيمة (لا) الافتراضية في الحقل الاول الى (نعم) ، ونضيف عبر الكود التاريخ الى الحقل الثاني Now و اسم المستخدم للحقل الثالث. هنا طبعا يفترض اننا سنقوم بالاجمال باسناد مصادر السجلات في جميع نماذجنا ونبني استعلاماتنا على اساس افتراضي تكون فيه القيمة للحقل الاول هي (لا) حتى نتجنب السجلات المحذوفة افتراضيا. هذه العملية البسيطة قد لا تجدها مجدية او ذات اهمية وتتحمس للحذف الحقيقي ، ولكن : حين تتعرض لخسارة سجلات مهمة حذفت من قبلك عن طريق الخطأ او عن طريق اي مستخدم حين تمر السنوات على تطبيقك وياتي يوم تحتاج فيه لاحصاءات ومقارنات وتحليلات وتقارير تتعلق بتاريخ قاعدة البيانات ، سواء لحاجاتك انت او بطلب من ادارتك او عميلك ستتعرف لأهمية هذا الروتين البسيط. فحين تتعرض لطلبات لا يقوى عليها صاحب الحذف الحقيقي ، ستكون اجابتك (ممكن ... فكل شيئ متاح) اما البديل الخاص بالحذف الحقيقي ان صممت عليه فهو الكود: If Msgbox ("You are about to delete data, do you want to continue?", vbYesNo + vbCritical,"Confirm Delete") = vbYes Then CurrentDb.Execute "DELETE MyID FROM MyTable WHERE MyID = " & Me.MyIDControl, dbFailOnError End If مع ضرورة التنبيه قبل اجراء عملية الحذف لأنه .... حقيقي....!!! ..............
  19. أخي خالد هل تم تقسيم قاعدة البيانات BE , FE ..؟؟
  20. خطأ # ، Error# نتيجة مزعجة نحصل عليها في النماذج والتقارير السبب: في الحقول التي نقوم بها بأي عملية إحتساب ( sum , count) حين لا يكون هناك سجلات ومعلومات لاحتسابها تظهر هذه النتيجة المزعجة.. الحل في النماذج 2003: بدلا من استخدام =Sum([Amount]) نستخدم =IIf([Form].[Recordset].[RecordCount] > 0, Sum([Amount]), 0) الحل في التقارير 2007: =IIf([Report].[HasData], Sum([Amount]), 0)) أما في 2007 فالامر مختلف ، فهو لا يقبل هذا الكود ، ويلزم إنشاء وحدة نمطية ندرج فيها : Public Function FormHasData(frm As Form) As Boolean 'Purpose: Return True if the form has any records (other than new one). ' Return False for unbound forms, and forms with no records. 'Note: Avoids the bug in Access 2007 where text boxes cannot use: ' [Forms].[Form1].[Recordset].[RecordCount] On Error Resume Next 'To handle unbound forms. FormHasData = (frm.Recordset.RecordCount <> 0&) End Function وفي مصدر السجلات لمربع النص في النموذج نضع الكود: =IIf(FormHasData([Form]), Sum([Amount]), 0) وبذلك تنتهي المشكلة ونتخلص من نتائج الخطأ المزعجة ، """ وإذا عرف السبب سهل الحل وبطل العجب """ ...........
  21. مشاركات أخي الفاضل أبو خليل ، تكون في مواطن التميز و التشجيع للمحسن فيما فعل أما مسألة (عادي) فلي فيها قول .. السهل اليسير ما يسره الله ... العادي كثيرا ما يكون أخي يوسف من باب السهل الممتنع ... الا على من فتح الله عليه فأتحفنا وإخوتك بما هو (غير عادي) ، نقبل وبسرور وندعو لك بظهر الغيب دعوة طيبة ، نظير علم تنشره فتح الله عليك به وجزيت خيرا على العادي و السوبر ........
  22. أحسن الله اليك أخي يوسف من أحسن لا بد أن يحسن اليه ... وهنا نملك الدعاء الطيب بظهر الخير ... وهو خير جزاء أما اشارتي للحقوق (رغم قرائتي للإهداء ) ويقيني من نفسك الطيبة المعطاءة ، فسببها ضرورة رفع الحرج حتى لا يتعرض أي من الاخوة لمواقف لا داعي لها عند استخدام الأداة أو أي كود فيها ، وحفظا للحقوق . وآخر القول : جزيت خيرا أخي العزيز ، سائلا المولى عز وجل أن يجعل لوجودك المثابر بيننا أثرا طيبا ، وأن يكون تواجدك المستمر شرفا لنا وعونا في قضاء حوائج إخوتك وزملائك. وأسأل الله التوفيق للجميع
  23. الحمدلله الذي بفضله تقضى الحاجات شكرا لمرورك الطيب أبا الحارث (تمت الاجابة)
  24. إخوتي الأفاضل الأخ أحمد والأخ يحياوي أعمال جميلة وأفكار منسقة وأداء لمحترفين ، يسعى لهم ، ويطلب العلم لديهم جزاكم الله خيرا ، وجعل أجر ما جهدتم به ثقيلا في ميزان اعمالكم ..... بعد إذنكم فقد مررت مقتفيا أثر أخي العزيز ياسر الحافظ ، حيث يروق لي أحيانا أن اتبعه لأتعرف على كل جديد ومميز وجميل جزاك الله خيرا أبا الحارث
  25. أحسن الله اليك أبا الحارث ، ونفع بك ،،،، ونسأل أهل الخبرة ونحن في مضاربهم عن سبب عدم سماعنا للإلقاء الصوتي (مع وضوح الأصوات الجانبية ، كصوت الطباعة و الانتقال بين الصفحات) ، هل له علاقة بالاصدارات أو هناك إعدادات معينة أم ...؟؟؟؟ علمونا مما علمكم الله ...........
×
×
  • اضف...

Important Information