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

نجوم المشاركات

  1. rudwan

    rudwan

    المشرفين السابقين


    • نقاط

      12

    • Posts

      2926


  2. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

    المشرفين السابقين


    • نقاط

      8

    • Posts

      13165


  3. الجموعي

    الجموعي

    الخبراء


    • نقاط

      5

    • Posts

      703


  4. رمهان

    رمهان

    الخبراء


    • نقاط

      5

    • Posts

      2390


Popular Content

Showing content with the highest reputation on 01/21/15 in all areas

  1. برنامج شئون الموظفين يعمل بالتاريخين الهجرى والميلادى. امكانية البحث برقم الموظف . امكانية ربط الموظف بصورة الموظف من اى مكان من الحاسب (وليس وضع الصور بجانب الملف كما كان مسبقا). امكانية حذف موظف او تعديل بيانات الموظف . اصدار تقارير عن موظف واحد بطباعة بياناته فى صفحة مستقلة. امكانية تصدير التقارير لملف اكسيل جديد باسم جديد. البحث بين تاريخين . امكانية طباعة عدد من الموظفين سواء (اسم الموظف - الراتب - الاقامات - الادارة التابع لها - او اى بيانات مدخلة ). التحكم فى تغيير اسم الشركة . نافذة امان قبل الدخول للبرنامج بكلمة مرور يمكن اظهار النافذة او اغلقها. امكانية التحكم فى اعدادات المظهر (خلفية البرنامج - لون الخط ). للاطلاع عن المزيد من الصور والشرح للبرنامج من هنا او الاطلاع على دليل المستخدم من البرنامج شكر خاص للأستاذ/ عبد الله باقشير حيث استخدمت الكثير من اكواده الاكثر من رائعه وكذلك باقى الاعضاء الاخرين ملاحظة : باسورد نافذة الامان الافتراضى 12345 باسورد vba وقاعدة البيانات وفتح الملف 12345 لابد من تمكين الماكرو ليعمل الملف فى النهاية نسألكم الدعاء بظهر الغيب emp.rar
    3 points
  2. السلام عليكم المنتدى نايم بحاول أصحي الناس والناس بردو نايمه .. خير اللهم اجعله خير ... هو فيه مبارة كرة قدم ولا الناس كسلانة ولا تعبانة طيب للي مهتم بالأمر .. هل ترغب أن يقوم الإكسيل بالحفظ التلقائي كل 10 ثواني مثلا .. في حدث الورقة ضع الكود التالي Private Sub Workbook_BeforeClose(Cancel As Boolean) StopTimer End Sub Private Sub Workbook_Open() StartTimer End Sub وفي موديول جديد ضع الكود التالي Public RunWhen As Double Public Const cRunIntervalSeconds = 10 Public Const cRunWhat = "The_Sub" Sub StartTimer() RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds) Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _ schedule:=True End Sub Sub The_Sub() ActiveWorkbook.Save StartTimer End Sub Sub StopTimer() On Error Resume Next Application.OnTime earliesttime:=RunWhen, _ procedure:=cRunWhat, schedule:=False End Sub ويمكنك بالطبع تغيير الوقت المراد عمل الحفظ التلقائي على أساسه من خلال السطر الثاني Public Const cRunIntervalSeconds = 10 إليكم الملف المرفق Auto Save Every 10 Seconds.rar
    2 points
  3. السلام عليكم ورحمة الله وبركاته اعضاء منتدانا الكرام هذه محاولة لعمل رسالة تلميحية لخلية بالاكواد ارجوا ان تنال اعجابكم. اعلم انه يمكنك عملها عن طريق اضافة تعليق و لكن هذه محاول عبر الكود بحيث يظهر التلميح عند اختيار الخلية المناسبة. الفكرة هى وضع شكل Shape و تنسيقه و من ثم تسميته بما تشاء (اسميته هنا بـ CellTip) بعدها يمكنك التحكم به كما في الكود التالي: Private Sub Worksheet_SelectionChange(ByVal Target As Range) With ActiveSheet.Shapes("CellTip") If Not Intersect(Target, Range("B3:D12")) Is Nothing And Target.Count = 1 Then .Top = Target.Top + 20 .Left = Target.Left With .TextFrame2.TextRange.Characters Select Case Target.Column Case 2: .Text = "الاسم الأول متبوع بأسم العائلة" ' B = الاسم Case 3: .Text = "العمر بالسنوات" ' C = العمر Case 4: .Text = "عنوان الاقامة الحالي" ' D = العنوان End Select End With .Visible = True Else .Visible = False End If End With End Sub لمزيد من التوضيح انظر الملف المرفق. الحمد لله وحده الذي بنعمه تتم الصالحات Cell Tip.zip
    2 points
  4. السلام عليكم و رحمة الله و بركاته اضطر غدا صباحا لسفر اضطراري قد يستغرق اسبوعا أو أكثر لذلك أعتذر ممن بدأت لهم مواضيع لم تكتمل بعد اما أن تعذرونني و تنتظرون الاكمال بعد عودتي أو اذا ممكن أحد من الزملاء ممن لديه وقت يكمل مابدأت به بالنسبة للشرح العادي بدون مرفقات لامانع قد أتمكن من القراءة و الرد من حين لآخر , لكن دون امكانية النظر في المرفقات تحياتي لكم
    2 points
  5. تفضل أخى المظلوب وللأسف تم عملة بالكود لأن بالمعادلات ستكون طويلة بعض الشئ تقبل تحياتى جلب أجازات موظف.rar
    2 points
  6. الاخوه الكرام طبعا من بدأ عرض فكره استخدام TAG هو الاخ الجموعى بارك الله فيه ولكن اسمحو لى بعرض مثال يبسط الفكره اكثر وهذا من وجهه نظرى تقبلو تحياتى Private Sub CommandButton1_Click() Dim Ctl As Control Dim Ctl1 As Control Dim i As Integer Dim i1 As Integer For Each Ctl In UserForm1.Controls If Not Ctl.Tag = "" Then For i1 = 1 To 1 ' åäÇ íÊã ÇÚØÇÁ Çááæä ÇáÇÍãÑ áÇì ßäÊÑæá ÞíãÉ ÇáÊÇÌ ÝíåÇ ÊÓÇæì ÇáÑÞã 1 If Ctl.Tag = i1 Then Ctl.BackColor = vbRed End If Next For i = 2 To 4 ' åäÇ íÊã ÇÚØÇÁ Çááæä ÇáÇÕÝÑ áÇì ßäÊÑæá ÞíãÉ ÇáÊÇÌ ÝíåÇ ÊäÍÕÑ Èíä ÇáÑÞã 2 æÇáÑÞã 4 If Ctl.Tag = i Then Ctl.BackColor = vbYellow End If Next End If Next End Sub TAG.rar
    2 points
  7. السلام عليكم ورحمة الله تعالى وبركاته اخواني في المنتدى اقدم لكم هذا الملف الترحيل بواسطة خاصية TAG الفكرة في الفورم عمل ترقيم لكل مربع نص او كمبوبوكس بترتيب الاعمدة باستخدام TAG التكست بوكس الاول بياناته يتم ترحيلها للعمود 1 إذن يحمل التاج 1 التانى بياناته يتم ترحيلها للعمود 2 إذن يحمل التاج 2 التالث بياناته يتم ترحيلها للعمود 5 إذن يحمل التاج 5 الكمبوبوكس الأول بياناته يتم ترحيلها للعمود 3 إذن يحمل التاج 3 التانى بياناته يتم ترحيلها للعمود 4 إذن يحمل التاج 4 لاحظ الصورة التالية اتمنى ان اكون وفقت في ايصال المعلومة خالص تحياتي الترحيل بواسطة خاصية tag.rar
    2 points
  8. الاخ الكريم (الصقر) الحقيقة مقدرش اقول لحضرتك غير جزاك الله عنى كل الخير الحمد لله الملف التانى حقق كل الى كنت بتمناه وانا دخلت على كود الحفظ وضبت الزمن ل3 ثوانى ودخلت على كود الزمن واضفت خليه لاضافة التاريخ عموما ليك كل الشكر ولكل الى فى المنتدى كل التحية بصراحة اول مرة اتعامل مع المنتدى ومكتشمتخيل سرعة الاستجابة وتحقيق مطلبى وحل مشكلتى امنياتى بدوام النجاح
    2 points
  9. ماشاء الله عليك استاذ سليم .. طريقة ممتازة للبحث و عرض النتائج.. الى الان وجدت ثلاثة مهارات في ملف واحد .. البحث عن طريق Find و FindNext و معادلة عرض النتائج و كذلك برمجة Format Condition شكرا الله لك عن كل حرف كتبت
    2 points
  10. معذرة استاذ عبدالرحمن والله شاركة هنا بدون لا اعلم فتح الموضوع هنا http://www.officena.net/ib/index.php?showtopic=58443 وعتب عليك خالد لفتح الموضوع مرتين
    2 points
  11. السلام عليكم اخواني في المنتدى اقدم لكم هذا الملف للتفتيش عن كلمة او رقم او حتى حرف ضمن نطاق معين راجياَ من اخي ياسر ان يضمه الى مكتبته الغرّاء find.rar
    1 point
  12. الأخ محمد ابو العباس السلام عليكم يبدو ان المعادلة تعمل مع كتابة اسم الشهر ايضاً لكن فقط باللغة الإنكليزية و الله اعلم لك مني جزيل الشكر على ملاحظتك و ثنائك الجميل
    1 point
  13. استأذنك أستاذ / محمد الريفى لو ممكن تشرح لى معنى المعادلة جزء جزء إن اعطيتنى سمكة لأكلها .. فأنت بذلك أطعمتنى ليوم واحد إن علمنى كيف اصطاد السمكة .. فأنت بذلك أطعمتنى العمر كله
    1 point
  14. السلام عليكم بعد اذن استاذى الحبيب ملك المعادلات جمال عبدالسميع هذه محاوله منى بالمعادلات ربما تفيد تقبلوا تحياتى ارجوا المساعده.rar
    1 point
  15. ماشاء الله أستاذي أبو تراب إبداع بلا حدود سلمت يمينك تحياتي
    1 point
  16. اخي كريمو2 ايه السؤال ده ياراجل ! تفضل واليك الخطوات : 1. اذهب الى الاستعلام المصدر واكتب التعبير التالي وطبعا سيحل محل العمود المعني : Expr1: nz([تأشيرة المراقب المالي];"/") 2. اذهب للتقرير وللمربع المعني وعدل الاسم ومصدر البيانات الى Expr1 وطبعا حذفت قناع الادخال او تركته لايهم هنا لاننا سنعرفه من خلال الكود التالي 3.اكتب الكود التالي في حدث عند التنسيق لتفصيل التقرير Private Sub تفصيل_Format(Cancel As Integer, FormatCount As Integer) If Me.Expr1 <> "/" Then Me.Expr1.InputMask = "CCCC بتاريخ CCCC/CC/CC" Else Me.Expr1.InputMask = "" End If End Sub بالتوفيق
    1 point
  17. اذا كان العمل خيري فلامانع ان نساهم به جميعا لإنجاحه
    1 point
  18. حفيدي الظريف .. ابو دم خفيف من زمان قلت وانا عند كلمتي .... انت فاكهة المنتدى
    1 point
  19. لابأس لاتوجد مشكلة ، والخطأ وارد ، لكن كان ممكن ان تشير لمن رد في الموضوع الثاني الى تكرار الموضوع حتى لايحدث ذلك اللبس
    1 point
  20. الحقيقة انا لم اطلع جيدا على تفاصيل ومكونات البرنامج ، لكن فكرة الترحيل ممكن أتصورها على الشكل التالي : يتم انشاء جدول حركات الطلاب كمايلي : معرف - تاريخ الحركة - رقم الطالب - العام الدراسي - الصف الدراسي - نوع الحركة. ( تأخذ قيمتها من جدول انواع الحركات وتضم قيم : تسجيل جديد - نجاح - رسوب - تخرج ) - هذا الجدول يتم تعبئته بنهاية العام الدراسي ، اما يدوياً او آليا اعتمادا على درجات المواد الدراسية ( جدول آخر ). بعد ان يتم تعبئة الجدول المذكور ، يتم إلحاق سجلات العام الدراسي الحالي في نفس الجدول بإجراء مايلي : اضافة رقم سنة الئ العام الدراسي الحالي اضافة رقم صف الى الصف الحالي اذا كانت الحالة نجاح. اضافة نفس رقم الصف الحالي اذا كانت النتيجة رسوب. عدم اضافة اي سجل اذا كانت النتيجة تخرج اما التسجيل الجديد فيتم يدوياً في بداية العام. هنا لمعرفة الطلاب الحاليين في العام الدراسي الحالي يتم من إخلال استعلام على هذا الجدول على رقم العام الدراسي ورقم الصف الدراسي
    1 point
  21. بارك الله فيك أخي الحبيب حسام على المتابعة الجيدة لمواضيع المنتدى جعل الله اعمالك في ميزان حسناتك يوم القيامة تقبل تحياتي (يا صياد السمك)
    1 point
  22. يكفيني تلك الدعوات منك أخي الحبيب جزيت خير الجزاء على دعواتك الطيبة ، ولك بمثل إن شاء الله
    1 point
  23. أنا في برامجي أفضل الاحتفاظ بكافة البيانات و لا أمسح اي سجل وفي هذه الحالة ممكن اضافة حقل (صح/خطأ) في جدول الطاقم الاداري و نبني استعلام على السجلات المتوفرة للطاقم الحالي الذي قيمة حقله = صح في جدول الطاقم الاداري
    1 point
  24. جزاك الله خيرا استاذ رضوان اعتقد ان شرح وجهة نظر الاستاذ رمهان هو ما تفضل به اخونا الاستاذ محمد السوداني هنا http://www.officena.net/ib/index.php?showtopic=43668#entry252410 ولا شك هي افضل لمن كان ينوي تكبير القاعدة ولكن لايلزم وجود جدول للمراحل لان حاجتنا من الاعوام السابقة هي التقارير فقط وهذه الاخيرة يكفي فيها المعايير والفلترة وقد ذكر الاستاذ محمد وجوب اشتمال جدول الدرجات على الفصل الدراسي والسنة مع معرف الطالب
    1 point
  25. 1 point
  26. اخى الفاضل بعد نظرة على السريع عمل جميل ما شاء الله عليه تحياتى ارجو مراجعة ملف البحث اعتقد انه لا يعطى نتائج
    1 point
  27. استاذى احمد بكر عمل فى منتهى الروعه والاتقان زى مقال حبيبى ابن مصر استمر استمر استمر تقبل تحياتى
    1 point
  28. أستاذي الفاضل أ.ياسر مرفق ملفين بهما 3 دوال برجاء اضافتهم الى المكتبة الملف الأول RecordChanges به دالة رائعة لتعقب أى تغييرات تحدث في ملف الإكسل وتقوم بانشاء مجلد باسم WhatChanged في القرص المحلى C وبداخله ملف نصي به كافة التغييرات التى تمت على الملف بالوقت والتاريخ وأسماء الخلايا التى تغيرت بياناتها دون أن تشعر بذلك هى مفيدة جدا لمن يخافون من العبث بملفاتهم يمكنهم وضعها بداخله لمعرفة ما هى الخلايا التى تم العبث بها وتغييرها وما هو الوقت والتاريخ الذي تم به ذلك الملف الثاني RunningWindowTasks به دالتين كل دالة في موديول منفصل للتعامل مع ادارة المهام في الويندوز او ما تعرف بال Task Manager والتى يقوم المستخدم بالضغط Alt+Ctrl+Delete للدخول اليها ومنها يمكن معرفة التطبيقات وكافة العمليات المفتوحة الدالة الأولى لإيجاد كافة التطبيقات المفتوحة.. جرب افتح أى عدد من التطبيقات واضغط على زر Application In Task Manager ستظهر لك كافة التطبيقات بالكمبوبوكس الموجود بالفورم الدالة الثانية .. دالة تسجيل كل ال Processes او العمليات المفتوحة للجهاز في العمود A مرفق الملفات تحياتي Nice3Functions.rar
    1 point
  29. اخى العزيز الاستاذ : أحمد بكر عمل أكثر من رائع جزاك الله كل الخير وجعله في ميزان حسناتك
    1 point
  30. في ملفك ملاحظتين : الأولى : اطلع بداية على هذا الموضوع http://www.officena.net/ib/index.php?showtopic=13598 ثم عدل التصاميم بحسبه الثانية : جداول : السائقين - بيانات السيارات - نوع البنزين سليمة أما بقية الجداول فتحتاج الى توضيح ماهي فائدة كل جدول منها اذا كان تريد معرفة حصر استهلاك السيارة من الوقود فأنت تحتاج اضافة الى الجداول الثلاثة الأولى , جدول رابع فقط و هو جدول حركة السيارات و يكون كذلك : رقم معرف تاريخ الحركة رقم السيارة عداد أول عداد أخير كمية الوقود نوع البنزين أما اذا كنت تريد اضافة اية بيانات أخرى فيجب توضيحها
    1 point
  31. بارك الله فيك اخي ياسر روعة!!!
    1 point
  32. أخي الحبيب التاج بارك الله فيك وجزيت خيراً على كلماتك الرقيقة ودعائك الطيب ..أرجو الله أن يتقبل دعائك بالنسبة للكود في المشاركة السابقة لم يكن يجلب كل البيانات ولم ألاحظ ذلك إلا الآن حيث أن هناك اسم ياسر في الصف رقم 20 لم يتم جليه بالكود السابق .. إليك الملف التالي فيه نسخ النطاق B2:C21 وكذلك التخلص من الفراغات ...وكذلك وضعت لك المصنفات الفرعية في مجلد . وضعت بعض التعليقات التي قد تفيدك في الكود ، ويمكنك الإطلاع على الكود بالضغط على Alt + F11 للدخول لمحرر الأكواد تفضل أخي الغالي بيانات الطلاب.rar
    1 point
  33. من باب الاستزادة.. ألقي نظرة على عمل أستاذنا الفاضل "قاهر الأكسس" ولا أكذب عليك لم أفهم الكود جيداً لأنه مختصر جدا وظننت أن هناك دالة صلاحيات الازار.rar
    1 point
  34. انت مش ابوتراب ... انت ابو الذهب ( ماشاء الله عليك )
    1 point
  35. أخى الفاضل بعد إذن أستاذنا الفاضل أ.ياسر، تم اجراء تعديل بسيط بالملف المرفق ليلبي طلبك ... اذا أردت أن تضع ملفات إضافية تراعي ان تكون البيانات بنفس نطاق البيانات الموجودة بباقي الملفات وتضعها في نفس مسار الملف الرئيسي تحياتي Get Data.rar
    1 point
  36. اخى الفاضل ماشاء الله بداية موفقة وعمل رائع .. استمر وجزاك الله كل الخير وجعل عملك في ميزان حسناتك تحياتي
    1 point
  37. هذا هو المطلوب والله لو كنت قريبا منك لقبلت جبينك يا ابن الكرام ولكن لك دعوات خارجة من القلب دائما . حفظك الله ورعاك ويسر أمورك كما تيسر أمورنا ، فما تقوم به من مساعدة لا يدل إلا على نبل أخلاقك وعظيم صفاتك . فلك كل الشكر والتقدير
    1 point
  38. بعد إذن أخى الجموعي كان من الممكن فتح موضوع جديد لطريقة الترحيل هذه ولكن حتى يكون هذا الموضوع مرجعا لكل من يريد تعلم الترحيل بأبسط الطرق مهما كانت عدد العناصر داخل الفورم لديه .. فالطريقة الأولى طريقة استخدام التاج للعناصر داخل الفورم سواء ال TextBoxes أو الكمبوبوكس Combobox أو غيرها وتفضل الأستاذ الجموعي بشرحها وأرفق المثال عليها الطريقة الثانية هي طريقة توحيد مسميات العناصر داخل الفورم ومراعاة ترتيبها ... كما في الصورة التالية مرفق ملفين .. الأول للفورم بالاسماء الموجودة بالصورة ... والثاني تم تغيير الاسماء الى اسمي حتى أوضح أنك تستطيع تغيير الأسماء كما تريد ولكن مع مراعاة ترتيبها تحياتي مثال-الترحيل.rar
    1 point
  39. اسير الشروق فكرتك رائعة ! المهم انها فكرة مغايرة ! ولكن لكي تزبط تمام لابد من تغيير اسم مربع النص في النموذج الرئيسي من "نص1" الى "id" فقط. بالتوفيق
    1 point
  40. اتفضل دا على اد فكرى ممكن يكون فى طريق برمجى افضل او ممكن اللى انا عملته ده مش منطقى بس انا هاوى واللى يهمنى اوصل للنتيجه اللى انا عاوزها انا انشأت استعلام وعملت من خصائصه انه يكون لقطه علشان حماية البيانات من التغيير لو عاوز تغير وتمكن التعديل خلى مصدر السجل من الجدول وعملت جدولين فرعى ورئيسي الرئيسى لكتابة الأيدى وربط الجدول ده بالجدول الفرعى بباقى الحقول بمجرد كتابة الاي دي فى الرئيسى يجلب باقى بيانات الحقول فى الفرعى تقبل تحياتى TextBox_.rar
    1 point
  41. ترقية باستحقاق وجدارة ! واذكر باحد مشاركاتي http://www.officena.net/ib/index.php?showtopic=57049&hl= تحياتي
    1 point
  42. الحل تم عمله أخى ولكن لن أقوم بوضعة فى هذا المرفق حتى لاتتداخل الأجوبة ، ولتسهيل عملية البحث فى المنتدى لك ولزملائك لذلك أرجو أن تقوم بعمل مرفق مستقل ، كما سبق وأوضح لك الأستاذ الفاضل " ياسر خليل " ويمكن تسميتة " البحث عن أجازات موظف بمعلومية الأسم والتاريخ " تقبل تحياتى
    1 point
  43. أخي الفاضل محمد جابر يفضل طرح طلبك في موضوع مستقل
    1 point
  44. بارك الله فيك أخي الفاضل على كلماتك الرقيقة .. يبدو أنك شاعر .. وإليك أهدي الإصدار الأخير من المكتبة ... Codes Library v1.9.3.rar
    1 point
  45. تتسابق الكلمات وتتزاحم العبارات لتنظم عقد الشكر الذي لا يستحقه الا انت اليك يا من كان له قدم السبق في ركب العلم والتعليم اليك يا من بذلت ولم تنتظر العطاء اليك أهدي عبارات الشكر والتقدير.
    1 point
  46. السلام عليكم ورحمة الله وبركاته سلسلة الدالة Offset سبق وتم عرضها من قبل مع الملف الذي تم العمل عليه أثناء التسجيل سوف نعيد نشرها لنواكب الأعمال الجديدة لاحقا الدالة Offset الفيديو الأول مشاهدة مفيدة وممتعة الدالة Offset الفيديو الثاني مشاهدة مفيدة وممتعة -f7OtH9YmDsNBA الدالة Offset الفيديو الثالث ملف العمل تعلم الداالة offset.zip
    1 point
  47. برنامج المتابع للمخازن والموردين والعملاء اخى الفاضل هذ البرنامج هديه لك وشكرا على انتظارك البرنامج مرفوع هلى جزئين وشكر على انتظارك ولتشغيل البرنامج يمكنك مراسلتى على الرسائل الخاصه او على الرقم التالى 01119695088 &01113339522 هذا هو الجزء الاول
    1 point
  48. السلام عليكم اخى الكريم انت تريد برنامج مبعات ومشتريات وموظفين واستلام نقديه وصرف نقديه وتقرير مخازن وتقرير مشتريات وموردين ومبيعات وعملاء وفواتير بيع نقدى واجل وفواتير مشتريات واضافه ومرتجعات مشتريات ومبيعات برنامج المتابع برنامج سهل وبسيط وبيعمل ده كله صور البرنامج فى المرفقات اخوك اشرف
    1 point
  49. السلام عليكم ورحمة الله إخواني الكرام، قمت ببعض التغييرات (طفبفة) على الملف (تعديل قائمة أسماء الله الحسنى، تعديل في الكود، تعديل في المعادلات) بحيث يقوم بعرض كل أسماء الله الحسنى 99 وفي الحالتين (الساعة الرقمية والساعة التناظرية)... أرجو أن تعجبكم هذه التغييرات... ملاحظة: بالنسبة للاسم "الأحد" هل هو من أسماء الله الحسنى؟... وفقكم الله لكل خير... أخوكم بن علية ساعة مع اسماء الله الحسنى.rar
    1 point
  50. بسم الله الرحمن الرحيم يقول تعالى : و ما أوتيتم من العلم الا قليلا فهذا شي يسير الحال من كثير مما أفتقد اليه من هذا العلم الواسع , و على قدر المستطاع أقدم لاخواني هذه الوصايا التي أسأل الله أن تفيدهم قبل الشروع ببناء برامجهم , وفقنا الله و اياكم لما فيه الخير أولا : عمل تحليل مسبق للبرنامج الكثير منا عندما يطلب منه تصميم برنامج , يبدأ مباشرة بتصميم الجداول المطلوبه جنبا الى جنب مع بناء النماذج , ثم يعود ان اضطره الأمر لاعادة بناء الجداول أو العلاقات و هكذا الى أن يتم انجاز البرنامج مما يطيل مدة انجاز البرنامج ناهيك عن دقة التصميم . و قد يغيب عن أذهاننا , و غالبا نكون على عجلة من أمرنا , أن نجاح أتمتة المشروع يعتمد اعتمادا كليا على دقة تحليل النظام و تصميمه بالشكل الصحيح تحليل النظام يعتمد اساسا على الخطوات التالية بشكل اجمالي : - تحليل نظام العمل و كيفية سيره على أرض الواقع اي آلية العمل الفعليه للنظام المراد وضع برنامج له و يكون ذلك بوصف دقيق من قبل من هو مختص بهذا المجال و يعايشه بشكل واقعي , فكم رايت من برامج محاسبية فيها ثغرات محاسبية فادحة , و بسؤالي عن مصمميها يتبين أنهم من غير ذوي الاختصاصات المحاسبيه أصلا . - وضع منهجية العمل الآلية للبرنامج الذي سيستخدم في هذا المجال - وضع المخطط التدفقي للمشروع و تصور النماذج و التقارير المطلوبه - في ضوء المخطط التدفقي يتم وضع تصور للجداول المطلوبه - وضع تفصيل الحقول المراد استخدامها في بناء الجداول ثانيا : عند تصميم الجداول ينبغي التمييز بين البيانات المدخلة و البيانات المخرجة , اذ أن البيانات المدخلة هي فقط التي تخزن في الجداول , أما البيانات المخرجة فقد تكون عبارة عن البيانات الأساسية المدخلة كما هي . أو قد يكون جرى عليها بعد العمليات الحسابية , مثلا اذا كنا نريد حساب القيمة و التي هي عبارة عن : القيمه = الكميه * سعر الوحده يمكن أن نضع حقلا للكميه المباعه و حقلا لسعر الوحده أما القيمة و التي هي عباره عن سعر الوحده * الكميه , فلا يجب أن يكون حقلا ضمن الجدول وذلك لأنه يتأثر بقيمة كل من الكمية و السعر فاذا تغير سعر الوحده فان الجدول لايستطيع حساب القيمه من تلقاء نفسه الا من خلال تشغيل كود معين , لذلك يستعاض عن هذا باستخراج القيمة من خلال استعلام يحوي حقل محسوب يساوي الكميه * السعر ثالثا : يجب فصل البيانات الخاصه بجزئيه معينه عن بعضها , مثلا اذا كان لدينا نظام مبيعات , أي لدينا مواد و زبائن , و حيث أننا نريد أن ندخل اسم العميل في الطلبيه , و نحتاج بنفس الوقت لمعرفة بيانات كامله عن هذا العميل , فاذا كنا سنقوم بادخال بيانات العميل هذه كل مره في جدول الطلبيات فسيكون هذا عملا مرهقا , لذلك يتم انشاءجدول مستقل لبيانات العملاء تجتمع فيه بياناتهم الكامله , و نكتفي في جدول الطلبيات بوضع حقل واحد لرقم العميل , و بعملية الربط بين الجدولين نستطيع معرفة مانريد من بيانات عن هذا العميل . رابعا : استتباعا للوصية السابقة , نؤلف جدول الطلبيات و يكون فيه حقل واحد لكود العميل و يكون الرقم المعرف للعميل و ليس اسمه , و لمزيد من التفاصيل يرجى مراجعة الموضوع التالي http://www.officena.net/ib/index.php?showtopic=6209 خامسا : مع عشقي و حبي الجارف للغة العربية و استخدامها في التخاطب و الكتابة و أعتبرها بحق أرقى لغات العالم , الا أنه و للأسف فان كتابة الأكواد تعتمد على اللغة الانكليزية , لذلك يكون من الأنسب و الأيسر أن يتم استخدام الأسماء الانكليزيه لكل مكونات قاعدة البيانات و خاصة اسماء الجداول و الحقول , لأن استخدام الأسماء الانكليزية أسهل أثناء العمل بالمعادلات و أكواد الفيجوال بيسيك سادسا : تجنب وضع مسافات في التسميات , مثلا اذا كنت تريد تسمية Product List فالأفضل وصلها هكذا ProductList سابعا : كثيرا مايتم بناء استعلام من جدول و يأخذ الاستعلام بشكل تلقائي نفس اسم الجدول , و حتى نميز بين الجدول و الاستعلام يفضل ابتداء اسم الجدول برمز tbl يليه اسم الجدول , مثلا الجدول Product يصبح TblProduct أما الاستعلام فيسبقه الرمز qry و يصبح QryProduct و قد نستدرك بعض الوصايا لاحقا هذا و الله أعلم
    1 point
×
×
  • اضف...

Important Information