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

rudwan

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

    2926
  • تاريخ الانضمام

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

  • Days Won

    6

كل منشورات العضو rudwan

  1. افتح الملف التالي تجد فيه طريقة للبحث بأكثر من معيار , نص - جزء من نص - تاريخ و سواء تركت المعيار فارغا أم وضعت فيه قيمة يعطيك النتيجة و كل ذلك بواسطة جملة استعلام search_form1.rar
  2. السلام عليكم بارك الله فيكم جميعا و نفعنا بكم الأخ لعيونك : يمكنك مراجعة المواضيع التالية http://www.officena.net/ib/index.php?showtopic=11084 http://www.officena.net/ib/index.php?showtopic=11969&hl= http://www.officena.net/ib/index.php?showtopic=12380&hl= http://www.officena.net/ib/index.php?showtopic=11381 http://www.officena.net/ib/index.php?showtopic=2218
  3. بسم الله الرحمن الرحيم يقول تعالى : و ما أوتيتم من العلم الا قليلا فهذا شي يسير الحال من كثير مما أفتقد اليه من هذا العلم الواسع , و على قدر المستطاع أقدم لاخواني هذه الوصايا التي أسأل الله أن تفيدهم قبل الشروع ببناء برامجهم , وفقنا الله و اياكم لما فيه الخير أولا : عمل تحليل مسبق للبرنامج الكثير منا عندما يطلب منه تصميم برنامج , يبدأ مباشرة بتصميم الجداول المطلوبه جنبا الى جنب مع بناء النماذج , ثم يعود ان اضطره الأمر لاعادة بناء الجداول أو العلاقات و هكذا الى أن يتم انجاز البرنامج مما يطيل مدة انجاز البرنامج ناهيك عن دقة التصميم . و قد يغيب عن أذهاننا , و غالبا نكون على عجلة من أمرنا , أن نجاح أتمتة المشروع يعتمد اعتمادا كليا على دقة تحليل النظام و تصميمه بالشكل الصحيح تحليل النظام يعتمد اساسا على الخطوات التالية بشكل اجمالي : - تحليل نظام العمل و كيفية سيره على أرض الواقع اي آلية العمل الفعليه للنظام المراد وضع برنامج له و يكون ذلك بوصف دقيق من قبل من هو مختص بهذا المجال و يعايشه بشكل واقعي , فكم رايت من برامج محاسبية فيها ثغرات محاسبية فادحة , و بسؤالي عن مصمميها يتبين أنهم من غير ذوي الاختصاصات المحاسبيه أصلا . - وضع منهجية العمل الآلية للبرنامج الذي سيستخدم في هذا المجال - وضع المخطط التدفقي للمشروع و تصور النماذج و التقارير المطلوبه - في ضوء المخطط التدفقي يتم وضع تصور للجداول المطلوبه - وضع تفصيل الحقول المراد استخدامها في بناء الجداول ثانيا : عند تصميم الجداول ينبغي التمييز بين البيانات المدخلة و البيانات المخرجة , اذ أن البيانات المدخلة هي فقط التي تخزن في الجداول , أما البيانات المخرجة فقد تكون عبارة عن البيانات الأساسية المدخلة كما هي . أو قد يكون جرى عليها بعد العمليات الحسابية , مثلا اذا كنا نريد حساب القيمة و التي هي عبارة عن : القيمه = الكميه * سعر الوحده يمكن أن نضع حقلا للكميه المباعه و حقلا لسعر الوحده أما القيمة و التي هي عباره عن سعر الوحده * الكميه , فلا يجب أن يكون حقلا ضمن الجدول وذلك لأنه يتأثر بقيمة كل من الكمية و السعر فاذا تغير سعر الوحده فان الجدول لايستطيع حساب القيمه من تلقاء نفسه الا من خلال تشغيل كود معين , لذلك يستعاض عن هذا باستخراج القيمة من خلال استعلام يحوي حقل محسوب يساوي الكميه * السعر ثالثا : يجب فصل البيانات الخاصه بجزئيه معينه عن بعضها , مثلا اذا كان لدينا نظام مبيعات , أي لدينا مواد و زبائن , و حيث أننا نريد أن ندخل اسم العميل في الطلبيه , و نحتاج بنفس الوقت لمعرفة بيانات كامله عن هذا العميل , فاذا كنا سنقوم بادخال بيانات العميل هذه كل مره في جدول الطلبيات فسيكون هذا عملا مرهقا , لذلك يتم انشاءجدول مستقل لبيانات العملاء تجتمع فيه بياناتهم الكامله , و نكتفي في جدول الطلبيات بوضع حقل واحد لرقم العميل , و بعملية الربط بين الجدولين نستطيع معرفة مانريد من بيانات عن هذا العميل . رابعا : استتباعا للوصية السابقة , نؤلف جدول الطلبيات و يكون فيه حقل واحد لكود العميل و يكون الرقم المعرف للعميل و ليس اسمه , و لمزيد من التفاصيل يرجى مراجعة الموضوع التالي http://www.officena.net/ib/index.php?showtopic=6209 خامسا : مع عشقي و حبي الجارف للغة العربية و استخدامها في التخاطب و الكتابة و أعتبرها بحق أرقى لغات العالم , الا أنه و للأسف فان كتابة الأكواد تعتمد على اللغة الانكليزية , لذلك يكون من الأنسب و الأيسر أن يتم استخدام الأسماء الانكليزيه لكل مكونات قاعدة البيانات و خاصة اسماء الجداول و الحقول , لأن استخدام الأسماء الانكليزية أسهل أثناء العمل بالمعادلات و أكواد الفيجوال بيسيك سادسا : تجنب وضع مسافات في التسميات , مثلا اذا كنت تريد تسمية Product List فالأفضل وصلها هكذا ProductList سابعا : كثيرا مايتم بناء استعلام من جدول و يأخذ الاستعلام بشكل تلقائي نفس اسم الجدول , و حتى نميز بين الجدول و الاستعلام يفضل ابتداء اسم الجدول برمز tbl يليه اسم الجدول , مثلا الجدول Product يصبح TblProduct أما الاستعلام فيسبقه الرمز qry و يصبح QryProduct و قد نستدرك بعض الوصايا لاحقا هذا و الله أعلم
  4. قناعتي ان كل برنامج طالما أنه من صنع بشر و ليس من صنع الخالق فلاشك أن به عيوب و مسألة حتمية استمرارية الأمان فيه مسألة مشكوك فيها . اذا كانت الحواسب يتم الاستيلاء عليها بالقرصنة و بالتالي حسابات البنوك فما بالك بالبرامج !!!!!!! و عموما اذا كانت لديك الهمة العالية لتعلم الأوراكل فابدا منذ الآن , فتعلم الأحدث خير من تعلم الأسبق , و أنا أنصحك بذلك لكن تذكر أنك ستسأل نفس السؤال بالنسبة للأوراكل بعد عدة سنوات لايعلم عددها الا الله سبحانه و تعالى
  5. نموذج المشكلات الاجتماعية الذي تتحدث عنه مبني على جدول مشكلة اجتماعية , و هذا ليس فيه أي حقل اطلاقا فمايخص الطلاب أو أرقامهم , فكيف ستأتي بيانات الطلاب عبره ؟
  6. السلام عليكم أولا أخي الكريم لسنا نحن عباقرة الأكسس , بل عباقرته هم من ابتكروه أصلا و هذا السؤال يوجه لهم و ليس لنا طبعا عبر الزمن تطورت المنتجات البرمجية شيئا فشيئا , و من البديهي أن كل منتج له ثغراته و عيوبه , و الابتكارات المحدثة من الطبيعي أن يكون هدفها تجاوز ثغرات المنتجات الأسبق . و مع وجود وسائل حماية كثيرة في الأكسس مثل اخفاء المكونات و تشفير الوحدات النمطية و غيرها , الا أنه من الممكن مستقبلا كسر تلك الوسائل , و هذا ليس شأن الأكسس لوحده بل شأن سائر المنتجات الأخرى . و هذا تطور علمي طبيعي , اذ أنه مع تطور العلوم و المبتكرات , فان كل وسائل الحماية لأي منتج سيتم ابتكار وسائل تجاوزها بما فيها الأوراكل . و مع ذلك فان المستخدم نفسه هو الذي يحدد المنتج الذي يصلح له ليتعامل معه و ذلك من حيث سهولة البناء و التصميم و استخدام الوسائل التقنية المساعدة , فحتى الآن هناك الكثير من لايزال يستخدم الاكسل كقاعدة بيانات بالرغم من وجود الأكسس كبيئة أفضل منه لادارة قواعد البيانات و ذلك نظرا لسهولة تصميمه . كما أن الكثير لايزال يستخدم الأكسس كقاعدة بيانات بالرغم من وجود الأكفأ منه مثل الدلفي و الفيجوال بيسيك و الأوراكل . و ذلك ايضا نظرا لبساطة برمجته مقارنة مع تلك المنتجات الأخرى . فمن كان لديه الشغف و القدرة على تعلم اللغات البرمجية الأكفأ و الأحدث فهذا شي طبيعي و منطقي أن يتحول اليها عن الأكسس , و أما من لايرغب بذلك فالأكسس يعتبر بيئة برمجية ممتازة نظرا لتوسطه بين أنه أسهل بالتصميم و البرمجة من المنتجات الحديثة كما أنه أضعف منها من حيث وسائل الحماية و الأمان . فالخيار مفتوح أمام من يطلب العلم .
  7. لا أعرف حقيقة ماهية البرنامج الذي تريد تصميمه لكن تحتاج بشكل مبسط الى ثلاثة جداول - المؤلفون : مسلسل - اسم المؤلف - معلومات شخصية - المؤلفات : مسلسل - اسم المؤلف - رقم الكاتب ( مربوط مع مسلسل من جدول المؤلفين ) - رقم التصنيف ( مربوط مع مسلسل في جدول التصنيف ) - التصنيف : مسلسل - الصنف
  8. أساس الأكسس أنه قاعدة بيانات , بمعنى أنك تقوم بتخزين بياناتك في الجداول , و من ثم تحصل على النتائج المطلوبة من خلال الاستعلامات و التقارير أما النماذج فما هي الا وسائل مساعدة لادخال البيانات في الجداول و عليه ينبغي أن تبدأ بانشاء الجداول اللازمة لتخزين بيانات المؤلفين و مؤلفاتهم , و من ثم تقوم بتصميم النموذج الذي يلائمك لادخال البيانات و عرضها
  9. افتح النموذج في وضع التصميم - انقر باليمين على مربع التحرير و السرد - اختر خصائص - ثم بيانات - ثم القيمة الافتراضية حددها كما تريد
  10. نعم هي القيم الجديدة و اذا كانت مربعات نص تضع UPDATE data SET data.[no] = " & me.MyText"
  11. السؤالين رقم 1 + 2 حالة واحدة حيث أن تحديث سجل كامل لايتم الا بتحديث حقوله واحدا تلو الآخر كما يلي : UPDATE data SET data.[no] = 5, data.name = "10", data.code = "15"; أما لحذف سجل معين DELETE data.*, data.[no] FROM data WHERE (((data.[no])=5)); و طبعا تضع الأكواد السابقة ضمن القوسين في عبارة DoCmd RunSql
  12. استخدم فكرة الشجرة في المثال المرفق من تصميم أبو هادي و اية مساعدة نحن جاهزون لانجاح هذا العمل المبارك وفقك الله Tree.rar
  13. توجد دالة جاهزة مصممة ضمن الملف الذي أرفقته أنت و اسمها CalcAge و يبدو أنك لم تنتبه لها و باستخدام بسيط لها تظهر لك النتيجة المطلوبة كما في الاستعلام المرفق 101.zip
  14. السلام عليكم أولا أخي الكريم أرجو مراجعة بناء و تصميم ملفك , اذ أن وجود مئات الجداول فيه دليل تعقيد البرنامج , فلسهولة عمل البرنامج يتم الاختصار قدر الامكان من الجداول حتى يعمل البرنامج بكفاءة أكبر ثانيا : لمزيد من الاختصارات يمكنك عمل زر أمر تضع فيه الكود التالي لتشغيل كل استعلام كما يلي DoCmd.RunSQL " " و تضع بين القوسين جملة كود الاستعلام المطلوب تشغيله , و بذلك يمكنك الاستغناء عن الاستعلامات كلها
  15. و عليكم السلام و رحمة الله و بركاته شكرا أختي الكريمة على هذا الذوق الرفيع , و الحقيقة رجعت للتو من الاجازة و ووجدت عندي متراكمات كثيرة من العمل قد لاتسعفني حاليا في معاودة النشاط السابق . و أسأل الله أن يعينني على ذلك و على العودة اليكم كسابق العهد تحياتي
  16. انظر الاستعلام المرفق ______.rar
  17. السلام عليكم تم تحميل الملف , و جاري الاطلاع عليه تحياتي
  18. انظر الاستعلام المرفق هل هذا ماتريد ؟ db4.rar
  19. الفكرة تقوم على اضافة حقل تاريخ الى الجدول zzz عندما يتم فتح البرنامج لأول مرة يتم تعبئة تاريخ الفتح في هذا الحقل , و هذا مايقوم به الكود If IsNull(DFirst("ndate", "zzz")) Then الذي يتأكد من أن حقل التاريخ فارغ , أي هذه أول مرة يتم فيها فتح البرنامج , لذلك قم بتعبئة حقل التاريخ بتاريخ اليوم Me.NDate = Now() اذا كان حقل التاريخ فيه قيمة , اي تم فتح البرنامج من قبل , يتم المقارنة بين مدة الفتح لأول مرة و تاريخ اليوم If DateDiff("d", NDate, Now()) > 15 Then اذا كانت هذه المدة أكثر من 15 يوما يتم غلق البرنامج اذا كنت تريد المعيار عدد السجلات اذا تجاوز رقما معينا يتم غلق البرنامج يمكن تعديل الكود كا يلي , If Nz(DCount("ndate", "zzz"), 0) > 100 Then MsgBox ("Validity Expired") DoCmd.Quit End If مع أنك المفروض أن تستخدم جدولا آخر غير هذا الجدول لأن هذاالجدول فيه سجل واحد فقط , عدل اسم الجدول الى اسم الجدول الرئيسي
  20. الكود يعمل بشكل سليم عندما تغير كلمة أجنبي الى Foreign كما اشار الأخ مهند أنت غيرت في كود النقر على الحقل و لم تغير في حدث الحالي للنموذج الفرعي
  21. هذا هو المطلوب من سؤال الأخ نضال
  22. ماهذا الاطراء الزائد ياليلى و لكن للأمانة فان من يستحق هذا الاطراء هو أبو هادي , فقد اطلعت على أحد أمثلته و رأيت فيها كود مشابه لكود تمرير المعايير ضمن الاستعلام فعالجته هنا بطريقة مشابهه .
  23. نعم الآن وضح المطلوب تعمل استعلام توحيدي لكل هذه الاستعلامات بحيث تصبح استعلام واحد لعمل الاستعلام التوحيدي لاستعلامين مثلا , افتح الاستعلام الأول في وضع التصميم ثم اذهب الى sql و انسخ الكود الذي فيه ثم افتح استعلام جديد و الصق فيه ذلك الكود و احفظه ثم افتح الاستعلام الثاني و انسخ منه الكود و أغلقه , ثم ارجع للاستعلام الجديد و احذف منه الفاصلة المنقوطة في آخر الكود ثم اترك مسافة و اكتب كلمة union ثم مسافة ثم الصق بعدها الكود الذي نسخته من الاستعلام الثاني و احفظه
  24. أختي ليلى انسخي الكود التالي و ضعيه في جملة sql الخاصة بالاستعلام LeavingDet PARAMETERS [Enter Begin Date] DateTime, [Enter End Date] DateTime; SELECT LEAVING.Record, LEAVING.Begnnin, LEAVING.End, CDate([Enter Begin Date]) AS bs, CDate([Enter End Date]) AS es FROM LEAVING;
×
×
  • اضف...

Important Information