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

محمد طاهر عرفه

إدارة الموقع
  • Posts

    8,496
  • تاريخ الانضمام

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

  • Days Won

    36

كل منشورات العضو محمد طاهر عرفه

  1. ضع فى خانة القيمة الافتراضية لمربع النص d1 = Format(now(); "ddd")
  2. موضوع ذو صلة و ان كان لا علاقة له بالسؤال التعرف علي اللغة الحالية و تغييرها و التحكم فيها
  3. لتغيير اللغة المختارة اما نبدل بالماوس بين AR,En من أقصي اليمين الاسفل للشاشة أو نستخدم ALT+SHIFT و هذا المثال يظهر اللغة الحالية و يمكنك من التغيير عن طريق زر و أيضا يبين كيف نحكم لغة الادخال فى عنصر تحكم محدد فلا نسمح فيه الا بالعربية مثلا Arabic.rar
  4. من خصائص مربع النص تنسيق format اختار Numeral System و اجعلها context للتغير بحسب اللغة أو Hindi او National بحسب الاصدار لديك لتكون عربية دائما
  5. وجدت هذا البرنامج لتحويل الباوروبوينت الي فلاش و قد يفيد المهتمين بحماية الباوربوينت أو تشغيله علي أكثر من اصدار للأوفيس ( لم أجربه ) http://soft.vip600.com/modules.php?name=Do...t_to_Flash_v1.0
  6. باقي أنواع استعلامات الاس كيو ال SQL - Specific Queries من هنا مرفق المثال Q9.rar
  7. لفتح أي ملف باستخدام تطبيق محدد استخدم الامر shell مثلا لفتح ملف txt بالنوت باد Dim x x = Shell("notepad.exe c:\testfile.txt", 1) حيث الجزء الاول هو الملف التنفيذي للتطبيق و فى حالة البرامج الخارجية عن تطبيقات الويندوز يتم اضافة مسار الملف التنفيذي للبرنامج بالكامل ثم مسافة ثم اسم الملف المطلوب تشغيله أو لتشغيل التطبيق فقط نكتفي بالجزء الاول مثل فتح الالة الحاسبة Dim RetVal RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' Run Calculator. مثلا مسار الملف التنفيذي للاكسيل يختلف بحسب الاصدار مثل Dim ExcelPath ExcelPath= Shell("C:\Program Files\Microsoft Office\Office\EXCEL.EXE", 1) or Dim ExcelPath ExcelPath= Shell("D:\Program Files\Microsoft Office\Office10\EXCEL.EXE", 1)
  8. سبق و نشر هذا الموضوع المنقول أبو حمود فى الفريق العربي : هذا مقال نشر على جزءين في عددين من مجلة البي سي النسخة العربية بقلم سامر الجودي ولما استفدته من هذا المقال فقد احببت أن تعم الفائدة رواد هذا المنتدى : الجزء الأول : الوصايا العشرة للمبرمجين كانت البرمجة قديما حكرا على مجموعة قليللة من الناس ، أما اليوم فهي ليست كذلك يعود الفضل في هذا إلى انتشار الحاسوب الشخصي ونزوع الشركات إلى إيجاد بيئات تطوير أسهل وتطور نظم التشغيل ، وانتشار الانترنت وسهولة الحصول على الكتب والدورات التعليمية . رافق ذلك من ناحية أخرى ظهور الآف من البرامج غير الناضجة لسببين أولهما انصراف معظم المبرمجين الى تحسين معرفته بلغات البرمجة بوصفها لغات برمجة فحسب من غير أن يولي أسلوب تصميم البرامج وإداراتها أية عناية وهي فن مستقل بحد ذاته ، ثانيهما ولادة جيل جديد من أشباه المبرمجين الذي يبدؤن العمل قبل بلوغهم المستوى المطلوب من الدراية والخبرة . أقدم في هذه المقالة والمقالة التي تليها مجموعة من النصائح جمعتها من ملاحظتي للأخطاء المتكررة في هذا النوع من البرامج وإن كانت المساحة صغيرة ولا تتسع لشرحها بالتفصيل . 1- جهاد النفس تقف رغابتنا الشخصية في الشهرة والمجد وراء العديد مما نقوم بتطويره من برامج ، على الرغم من أننا نتخفى وراء قناع الأغراض العلمية تارة وقناع مساعدة الناس تارة أخرى ، لأن من الرياء ما هو أخفى من دبيب النملة كما قال الغزالي رحمه الله . تبدأ البرامج عادة بنافذة الاقلاع ويستغل بعض المبرمجين هذه النافذة لوضع اسمه بأكبر قياس ممكن ، وكلما فتحت صندوق حوار أو طبعت تقريرا ، أو انتقلت إلى ناحية من البرنامج ، استوقفك اسم مؤلفه ، ومع أن ذكر اسم المؤلف حق له ، وواجب عليه ، إلا أن لذلك مكان واحد وهو بند "حول البرنامج" في قائمة تعليمات . وبمناسبة الحديث عن حول البرنامج فقد أخبرني صديقي أن أحد زملائه في العمل بدأ بكتابة برنامجه بقائمة تعليمات ، وبالبند "حول البرنامج" تحديداً ، حيث كتب اسمه ، وذكر أن المبرمج (النحرير طبعاً) فلان الفلاني ، وذلك قبل أن يبدأ حتى بتصميم قائمة ملف ثم قام باستشارة الناس في البرنامج الذي يخطط لكتابته ، وأنه يرغب أن يجعله يقوم بكذا وكذا ، فتأمل ! . 2- الفكرة المتميزة يجب أن يتسم برنامجك بروح الابتكار ، فابحث عن فكرة برنامج مختلف وجديد أو زود برنامج بأفكار لا توفرها البرامج الأخرى ، وإلا كان مصير ما تكتبه مثل مصير الآف البرامج التي لا يكتب لها من يستخدمها من الناس ، بما فيهم مؤلف البرنامج ذاته ، واصرف عن ذهنك مقالة ما ترك الأوائل للأواخر شيئا فهي غير صحيحة . 3- التخطيط الجيد ارسم سياسة برنامج بطرح بعض الأسئلة أولا مثل لمن تقدم هذا البرنامج وماهي الوظائف التي تزوده بها . يرتكب كثير من المبرمجين خطأ الجلوس وراء الحاسوب ، بدلا من ذلك اعتقد أن عليهم البدء بتصميم البرنامج على الورق ، وتحليل سير عمله ، ودراسة إمكانية الحصول على شيفرة أسرع وأقوى ، وتحديد الموعد الذي سيتم فيه اطلاق البرنامج ، بحيث لا يتجاوزه . فمن غير المعقول أن نبدأ بتطوير برنامج يعمل في بيئة وندوز 98 زنفرغ منه بعد ظهور وندوز ملييوم . يساعد التوثيق الكامل لنصوص البرنامج على العودة إليه مرة أخرى ، لإصلاحه وتطويره ، بفضل التعليقات والحواشي ، ولكن كثيرا ممن يكتوب البرامج يهملون ذلك ، ما يجعل شيفرة البرنامج غير مفهومة . فكر أيضا بأهمية التوثيق الكامل إذا ما قررت يوما أن تنشر الشيفرة المصدرية لبرنامجك على الملأ ، للعمل على تطويره بشكل جماعي ، على نحو مشابه لفكرة (المصادر المفتوحة) التي بدأت تشق طريقها بقوة . 4- العناية ببرنامج التركيب تعتمد معظم الشركات الكبرى بما فيها ميكروسوفت على تصميم برنامج الإعداد باستخدام أدوات معدة لهذا الغرض مثل برنامج InstallShield أو غيره . وتمتلك هذه الأدوات كل ما يحتاجه المبرمج أثناء عملية التركيب من وظائف مثل التحكم بسلوك برنامج التركيب في ظل نظم تشغيل مختلفة ، وتحرير سجل وندوز والتحقق من عدم وجود تعارض بين الملفات DLL في برنامجك وتلك الموجودة في نظام التشغيل ، وانتهاء بإنشاء اختصار له على سطح المكتب . ولكن القليل من المبرمجين من يعتمد على أداة احترافيه لتصميم برنامج الإعداد . يخشى الناس من الإقدام لعى تركيب برامج جديدة لجهلهم بما ستفعله هذه البرامج بحواسيبهم ، ولذلك لا بأس في أن تقوم بشرح خطوات الإعداد وتوضيحها بعبارات مناسبة . يجب عليك أيضا توفير إمكانية إزالة البرنامج بعد تركيبه وفي هذه الحالة عليك أن تتعهد بإعادة حواسيب الناس إلى ما كانت عليه قبل تركيب برنامجك . 5- واجهة تطبيقية جميلة تقتقر الكثير من البرامج إلى واجهة تطبيقة جميلة ، مع أن المبرمج قادر على تقليد الواجهة التطبيقة في البرامج المتقدمة ، مثل برامج ميكروسوفت أوفس وغيرها . ولا ندري لماذا لا نرى من يحاول الالتزام بالمواصفات القياسية التي يمكن استنتاجها بسهولة من التمعن في الواجهة التطبيقية لتلك البرامج . نصادف غالبا صناديق حوار بأزرار كبيرة ، وخطوط غير مناسبة ، بارتفاع متفاوت ، ورسوم مكررة ، يمكن العثور عليها في مئات البرامج على الرغم من أن إنشاء أيقونات جديدة عملية ليست بالشاقة ، وتساعد في إضافة لمسة شخصية على البرنامج . وأنصح من لا يمتلك البراعة الفنية الكافية بالاستعانة بأشخاص آخرين . لا تنسى أيضا أن تجعل الواجهة التطبيقية حدسية ، يعني ذلك أن المستخدم قادر على توقع الوظيفة التي يقوم بها كل زر أو بند في قائمة في برنامجك ، ونعني أيضا أن المستخدم قادر على توقع المكان الذي سيجد فيه وظيفة معينة ، يبحث عنها . الجزء الثاني : 6- الاهتمام باللغة تصل إلى مجلتنا كل شهر مجموعة من البرامج التي يرغب مؤلفوها بنشرها مع القرص الهدية ومن الغريب أن جزءا من هذه البرامج يأتي بواجهة إنجليزية على الرغم من أن مؤلفيها يتكلمون العربية ومجلتنا عربية قراؤها من العرب حصراً ، وعلى الرغم من سهولة تطوير واجهة تطبيق عربية في مدة وجيزة ، وما نريد أن نفهمه هنا لماذا لم يقم هؤلاء المبرمجون على الأقل بتطوير واجهة ثنائية اللغة لبرامجهم ؟ نلاحظ من جهة أخرى قلة الاهتمام بالصياغة اللغوية لنصوص البرنامج ، وهو في رأيي من أهمها فاللغة وعاء الحضارة كما يقولون ، ولعلك لاحظ كيف تهتم البرامج الإنجليزية بالصياغة اللغوية ، حتى ليبدو وكأن لديهم فريقا كاملا من اللغويين ، وبحيث يكون العثور على خطأ لغوي أمرا مجاورا للمتعذر ، وبالإضافة إلى ركاكة اللغة يتجاوز كثير من المبرمجين ما اصطلح عليه الناس ورضوه من ألفاظ المعلوماتية ، وما زلنا نقرأ مصطلحات مضحكة مثل "سيدي" بدلا من قرص مدمج و"عمل Setup" بدلا من تركيب ، إلى آخر ما هنالك من الأمور العجيبة !. 7- لابد للمبرمج من أن ييتبع آخر التقنيات وأن يلتزمها ، وهو أمر مفيد في إطالة عمر برنامجه أيضا . وبما أن التقنيات والأدوات المستخدمة في كتابة البرامج تتبدل دائما وبما أن الشركات تطلق إصدارات جديدة من برامجها باستمرار على المبرمج إذا عليه أن ينتقي الأحدث منها ما أمكنه ذلك . يجب على المبرمج أيضا الاهتمام بخصائص البرمجة في بيئة وندوز ، مثل دعم تقنية السحب والإفلات والقائمة التي تظهر بنقر زر الفأرة الأيمن على المستند واستخدام أشرطة الأدوات وتلميحات الأزرار إلى آخر ما هنالك من السمات التي تميز بيئة ويندوز عن بيئة دوس . يخشى بعض المبرمجين من الانتقال الى استخدام التقنيات الحديثة ويعضون بالنواجذ على أساليب أكل عليها الدهر وشرب ففيهم من يستخدم تقنية DDE بدلا من أتمتة أكتف أكس ، أو يلتف على نظام التشغيل للقيام ببعض الإجراءات الخاصة بدلا من الاستفادة من وظائف API ، أو يكتب قواعد بيانات في ملفات نصية ، أو يصر على استخدام DAO بدلا من ADO في تطبيقات قواعد البيانات وقد تعرفت منذ فترة على مبرمج عتيق تفوح من برامجه رائحة التقنيات القديمة ، وكان أطكرف مافي الأمر أنه مازال يحتفظ في صندوق محكم بآخر إصدارات Quick Basic خوفا عليها من الضياع . 8- الانفتاح على البرامج الأخرى هب أن أحدهمك قرر شراء أو استخدام برنامجك والتخلي عن برنامجه فهل سألت نفسك ماذا سيفعل بكل تلك البيانات التي تراكمت لديه ؟ تعاني الكثير من البرامج التي يكتبها المبتدئون والخبراء على السواء من غياب أدوات خاصة لاستيراد وتصدير البيانات وهما أداتان لا غنى عنهما في تنفيذ كثير من الأعمال . كما تساعد هاتان الأداتان الناس على اختبار البرامج الجديدة ومقارة أدائها ووظائفها مع البرامج الأخرى باستخدام بيانات جاهزة . وتخوض الشركات المتنافسة حربا ضروسا في الأسواق لامتلاك أكبر حصة ممكنه منها ، ومع ذلك توفر معظم البرمجيات سبيلا إلى استيراد وتصدير البيانات الى هيئات البرامج المنافسة الخرى ، والأمثلة كثيرة على ذلك ، في برامج الرسوميات والتصميم بالحاسوب وقواعد البيانات والبريد والنشر المكتبي . 9- ملف التعليمات يعتقد البعض أن وجود ملف التعليمات في برامجهم التي يقومون بتطويرها ليس أمرا ضروريا ، مع أن ملف التعليمات من أهم مصادر تعلم استخدام البرامج وحل مشاكله ، وقد أصبح تضمين ملف تعليمات من المواصفات القياسية في أسلوب تصميم البرامج ولو كانت صغيرة ، فبرنامج المفكرة Notepad في ويندوز مثلا مزود بملف تعليمات ضخم نسبيا . على المبرمج من ناحية أخرى أن يعتمد تزويد برنامجه بملف تعليمات HTML حصرا وهو الجيل الحالي من ملفات تعليمات ويندوز ، وقد انتقلت البرامج إلى اعتماد هذه الهيئة تدريجيا منذ أيام ويندوز 98 . 10- اختبار البرنامج يجب اختبار البرنامج قبل توزيعه على عدة أجهزة مختلفة المواصفات تعمل في بيئة نظم تشغيل مختلفة ، وبلغات مختلفة وحاصل ضرب هذه الاحتمالات يعني اختبار البرنامج على عشرة أجهزة على الأقل بدء من ويندوز 95 - 98 - NT - Win Me - 2000 بواجهة تطبيق عربية أو إنجليزية وأنصح أن يختبر البرنامج أناس متفاوتي المستوى ، وعلى أن لا تقوم بشرح طريقة استخدام البرنامج لهم للتأكد من قدرة المستخدم على اكتشاف وظائفه بمفرده من ناحية ، ولاكتشاف العلل التي قد لاتخطر ببالك من ناحية أخرى .
  9. طبعا هذا ممكن ،و لكن ... ليس من التطبيق الجيد تخزين ما يمكن استنتاجه فتاريخ اليوم كافي لاستنتاج اسمه فى أي وقت فلا داعي لتخزينه و عموما لتسجيل البيانات المستنتجة فى جدول ، من المفترض أنك تريد تسجيلها كنص ( اسم اليوم ) ففي حدث بعد التحديث لمربع ادخال و تعديل التاريخ ضع الكود التالي Private Sub d1_BeforeUpdate(Cancel As Integer) Me.dayname = Format(Me.d1, "ddd") End Sub علي اساس ان d1 هو مربع ادخال أو تعديل التاريخ و dayname هو المربع المرتبط بالحقل الذي تريد تخزين اسم اليوم فيه كنص
  10. نستخدم الدالة dateAdd مثلا لاضافة 4 أشهر علي التاريخ الموجود فى مربع نص اسمه d1 نضع فى مصدر بيانات المربع المطلوب ظهار التاريخ الجديد فيه =DateAdd("m";4;[d1]) و بدلا من اضافة أشهر يمكن اضافة وحدات أخري باستبدال ال m بالتالي: yyyy ----------Year ---------سنة q ----------Quarter ----------ربع سنة m ----------Month ----------شهر y ----------Day of year ----------يوم d ----------Day ----------يوم w ----------Weekday ----------يوم ww ----------Week ----------أسبوع h---------- Hour ----------ساعة n---------- Minute ----------دقيقة s ----------Second ----------ثانية
  11. المثال : و أعتقد أن النموذج الافضل فيه هو المنقول من الموضوع السابق للأخ أبو هادي ( رقم 2 ) و مرفق ال 4 نماذج 2 منضم + 2 غير منضم و قد تم تعديل موضوع حجز الرقم فى النماذج المنضمة بستخدام sendkeys قبل الخروج الأخ أبو يعلي : فى انتظار تجربتك و اختبارك للنماذج مع تحياتي Dmax.rar
  12. ادخال الرقم اما بالكتابة أو من خلال قراءة الجهاز للشيفرة المرسومة ( السطور الرأسية التي رأيتها فى المثال ، و تراها علي السلع ) فالقراءة بالجهاز تحل محل الكتابة فى تسجيل الرقم المناظر للبار كود
  13. تم جمع الأسئلة المتشابهة فى موضوع واحد و هذا مثال أرجو أن يفي بالغرض فى الجانب الايسر بيانات الحضور و الانصراف اليومي و استنتاج مدة العمل و التأخير لكل سجل فى الجانب الايمن يتم تحديد فترة بين تاريخين و اختيار الموظف ليتم حساب اجمالي التأخيرات خلالها و اجمالي فترات العمل و حساب عدد ايام الغياب بناء علي يوم لكل 7 ساعات ملاحظة : لم تتم التجربة الكافية للاستعجال أرجو التجربة من المهتمين به TimeDiff.rar
  14. salesprice + salesprice * 15/100 = salesprice +0.15*salesprice = salesprice * (1+0.15) = salesprice * 1.15
  15. لست متعمقا فى الموضوع لكن بصفة عامة هي مواصفات مختلفة لرسم الباكود المناظر للرقم و لكل منها اسم مثل باركود 128 و 39 و اذا أردت التعمق أكثر فهذه الصفحة بها شرح للمواصفات المختلفة http://www.adams1.com/pub/russadam/info.html#Specs
  16. لنفرض أن سعر الشراء فى مربع اسمه salesprice ضع مربع نص آخر لسعر البيع و ضع فى مصدر بياناته =[salesprice]*1.15
  17. قم بوضع بيانات الطلبة فى ورقة عمل و قم بتصميم الشهادة فى الاخري ثم قم باستدعاء البيانات بناء علي رقم الطالب باستخدام الدالة vlookup و يوجد عليها فى قسم خلاصة المشاركات عدة أمثلة و مرفق مثال علي ما تريد و بصفة عامة فان الدالة تحوي 3 أجزاء أساسية و واحد خياري الاول للقيمة التي تبحث عنها و الثاني لمجال البحث و الثالث لرقم العمود المطلوب اعادته من مجال البحث و الرابع خياري و هو يعبر عن تصرف الدالة فى حالة عدم وجود القيمة التي نبحث عنها فى المجال ، هل تعيد البيانات المناظرة أقرب قيمة لها أم لا ، و هنا فى المثال سيكون المطلوب هو "لا" طبعا و لذلك وضعنا الجزء الرابع = False و القيمة الافتراضية لها هي True أي ما تعتبره الدالة عند عدم تسجيل الجزء الرابع فى المعادلة vlookup4.rar
  18. مثال جميل :d مشكووور و يلاحظ أن به نموذجان frmStaffListQuery و frmStaffListQuery_Enhanced و الاول لابد من تسجيل المعايير الثلاثة فيه و الثاني و هو الافضل يستبدل المعيار الغير مسجل ب " Like '*' " بالكود
  19. أهلا بك أخي الكريم اذا كنت تريد أن لا يتم البحث مع كتابة كل حرف و أن يتم تنفيذ البحث مع نهاية كتابة الجملة و ضغط Enter أو بمعني آخر بعد التحديث لمربع النص فانقل الكود الموجود فى حدث عند التغيير on change الي حدث بعد التحديث after update و عندها ستستغني عن الزووم فلن يتم التنفيذ الا عند انتهائك من كتابة الجملة كاملة و ضغط Enter أو الانتقال الي مربع آخر أي استبدل سطر Private Sub Mysearch_Change() ب Private Sub Mysearch_AfterUpdate() أو من الافضل أن تنشيء حدث جديد خاص ب Mysearch_AfterUpdate و تنقل اليه الكود الموجود فى Mysearch_Change و تلغي الكود الموجود فى Mysearch_Change
  20. أيضاً مثال علي ما الرد الاول ( استخدام التنسيق "ddd" ) dayname.rar
  21. اجعل التنسيق الخاص بمربع النص الذي فيه اليوم الحالي هو "ddd" الذي مصدر بياناته هو : =Now()
  22. أخي الكريم أعتقد أن المشكلة غير واضحة ، فما تم مع النموذج الاساسي و الجدول الذي سيسجل فيه سيتم مع الفرعي و الجدول الذي يسجل فيه ، بأن تنقل الي النموذج الجديد رقم المستخدم ، و بناء عليه تسجل التغيير كما فى الرئيسي تماما أو اذا لم أفهم المقصود لربما كان الموضوع يحتاج الي شرح أكثر للمشكلة ، فنرجو التوضيح ، أو حاول رفع الملف علي أي موقع مجاني لتظهر المشكلة بصورة أوضح مع تحياتي
  23. الرسالة تعني أنه لا يوجد لديك مربع نص باسم PerID علي النموذج فغيره الي الاسم عندك و هو مربع النص الذي به رقم حقل معرف السجل الذي تريد منع التعديل فى السجل الذي يحوي رقم ا فيه و للجمع Private Sub Form_BeforeUpdate(Cancel As Integer) If Me.PerID = 1 Then MsgBox " This record can not be Edited !!!", vbCritical, " PLease Chose a contract" Cancel = True SendKeys "{ESC}" Exit Sub End If If MsgBox(" DO YOU LIKE SAVE CHANGES ", vbYesNo, _ " FOR CONFIRMATION ") = vbNo Then Cancel = True SendKeys "{ESC}" Exit Sub End If End Sub
×
×
  • اضف...

Important Information