الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

الرجاء المساعدة فى تعديل القاعدة

مغلق
بدأه المالكي في 31 أكتوبر 2003 · 7 رد · 1,300 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

سبق وان ادرجت المشكلة فى موضوع مستقل ولكن لم يجيب احد ربما لانني لم ارفق قاعدة البيانات حيث لم اجد اداة الارفاق ،

وها انا ذا اعيد الموضوع بعد ادراج قاعدة البيانات

لدي قاعدة بيانات يتم فيها تسجيل اوامر الشراء الصادرة ( التاريخ ، اسم المورد، المبلغ ، القسم ) والمطلوب ضمن التقارير تقريرين الاول اجمالي المشتريات من كل عميل شهريا بحيث يكون يكون اسم العميل هو الصفوف والاعمدة هي شهور السنة والعمود قبل الاخير اجمالي مشتريات حتى الشهر الحالي والاخير نسبة الاجمالي لكل عميل الى اجمالي المشتريات

وقد قمت استعلام نوع (crosstab Query) على اساس الصفوف هى المورد والاعمدة هي شهور السنة وذلك بناء على نصيحة احد الاخوة

ولكن يظهر دائما المجموع فارغا امام الشهور ويظهر الاجمالي فقط لمحموع قيمة المشتريات حتى الشهر الحالي فى اجمالي المشتريات ولا ادري ما هو الخطأ

التقرير الثاني :

شهور السنة هي الصفوف والاعمدة هى الاقسام فاذا فرضنا ان لدي 3 اقسام

الشهر قسم1 قسم 2 قسم3 الاجمالي النسبة

ينــــاير 10.00 20.00 20.00 00 50 %

وهكذا والنسبة هي الاجمالي للشهر على الاجمالي للسنة

وقمت بعمل الاستعلام crosstab Query على اساس ان الصف هو شهور السنة والاعمدة هى الاقسام ( بعكس التقرير الاول ) وعملت التقرير (معالج التقارير) بناء على هذا الاستعلام وبالفعل نجح الامر وتظهر الشهور كلما اضفت عمليات جديدة بالشهور ولكن المشكلة ليست فى الشهور ولكن فى الاقسام كالتالي :

عندما قمت ببناء التقرير كان لدي 3 اقسام جرت عليهم العمليات وتنسيق التقرير يظهر به هذه الاقسام ولكن عندما اضفت قسم رابع فيما بعد فبالرغم من انه يظهر فى الاستعلام فانه القسم الرابع لايظهر اتوماتيكيا بالتقرير بعكس الشهور ولابد من تغيير تصميم شكل التقرير واضافة القسم الرابع يدويا من خلال التصميم لانه بالطبع لن تعديل تصميم التقرير اتوماتيكيا ، فاذا انتهيت من تصميم البرنامج فلن يظهر بالتقرير اى اقسام جديدة يتم اضافتها فى التقرير على الرغم من انها تظهر اتوماتيكيا بالاستعلام crosstab Query

قمت بالتحايل على الموضوع بادراج عمليات قيمتها صفر على هذه الاقسام قبل عمل التقرير كي تظهر بالتقرير ولكن ليس هذا الحل بالصحيح خاصة اذا قمت بحذف سجلات العمليات باحد الاقسام يعطي رسالة بانه لا يستطيع فتح التقرير لعدم وجود بيانات بهذا القسم

فهل هناك حل لهذه المشكلة

ارجو الا اكون اطلت عليكم واشكرك مقدما

مرفق فاعدة البيانات

INV_FOLLOW.zip

#2

مرحباً،،،

تصميم الجداول خطأ !!!

تصميم الحقول خطأ !!!

العلاقات غير موجودة وبالتالي ستواجهك مشاكل بالكيلو وأنت في مرحلة التصميم وستضطر إلى إعادة التصميم مرات ومرات.

يا إخواني ويا أخواتي، المهم هو أن نتعلم نظرية قواعد البيانات في المقام الأول. المهم أن نفهم ما معنى قواعد بيانات، العملية ليست جداول ونماذج !!

تصميمك يستخدم Flat Databases وليس Relational Databases وبالتالي لن تستطيع الحصول على أية تجميعات ولن تستطيع إنشاء نماذج Parent-Child وبالتالي العملية غير متسقة على الإطلاق.

يمكن حل مشكلتك وقررت ألا أضع حلها هنا لأنه مضيعة للوقت حيث ان تعديل صغير بأحد الحقول لديك سيؤدي إلى مئات الأخطاء !!!

آمل إعادة النظر في المشروع من منطلق Relational قائم على الأسس العلمية لقواعد البيانات وليس على التجربة والخطأ والسؤال والنقل والقص واللصق !!

إذا كنت تحاول إنجاز المشروع لإستخدامك أنت أنصح بإستخدام Excel لحل الموضوع، أما إذا كان الإستخدام سيتم من قبل آخرين فأرى إعادة النظر في المشروع من البداية.

إذا أردت ضرب إقتراحاتي بعرض الحائط وتريد حل لمشكلتك بغض النظر عما سبق فلا حول ولا قوة إلا بالله، أطلب مرة أخرى وسأجيبك بمشيئة الله.

أعتذر ولكن الله من وراء القصد.

تحياتي،،،

#3

الاخ العزيز InternetMaster

السلام عليكم ورحمة الله وبركاته

اولا اشكرك على تفاعلك وسرعة الرد ولا مجال للزعل او الضرب بكلامك عرض الحائط

فنحن جميعا هنا لتبادل المعلومات والخبرات، وقد تعلمنا الكثير من الاخوة فى المنتدي الذين لا يبخلون باى معلومات او نصائح هنا فى منتدي الاكسس الا انها المرة الاولي التي اقرأ فيها رد ينصح بعدم استخدام الاكسس والانتقال الى الاكسل فى منتدي الاكسس

اقتباس
إذا كنت تحاول إنجاز المشروع لإستخدامك أنت أنصح بإستخدام Excel لحل الموضوع، أما إذا كان الإستخدام سيتم من قبل آخرين فأرى إعادة النظر في المشروع من البداية.

كنت اتمني ان تسرد الاخطاء فى الجداول والحقول وما هو الصحيح الواجب اتباعه حتى نستفيد ويستفيد الاخوة المبتدئين بالمنتدي فى بناء القواعد الجديدة ولا مانع عندي من من اعادة بناء القاعدة على اصولها الصحيحة اذا عرفت ما هي الاخطاء التى وقعت فيها عند بناء الجدول والحقول

واشكرك مرة اخرى

#4

أولاً: مرحبا،،،

ثانيا: وعليكم السلام ورحمة الله وبركاته،،،

ثالثاً: آمل ألا تكون الجملة التالية غريبة عليك -- EXCEL عبارة عن قاعدة بيانات، بل هو قاعدة بيانات متقدمة جداً جداً جداً، ويختلف عن Access بعنصرين إثنين فقط:

الأول: يتوجب أن يكون حجم البيانات صغير نسبياً

ثانيا: أن تكون العلميات الحسابية المطلوبة في غاية التعقيد للوصول إلى الهدف من EXCEL وهو تحليل البيانات.

إنما بإختصار وفي معظم الشركات المتوسطة إلى الكبيرة يتم تحقيق المعادلة التالية:

إذا كان المستخدم هو المبرمج وعدد البيانات صغير نتجه إلى EXCEL

مرة أخرى، إذا كنت أنت من سيقوم بإستخدام البيانات وتحليلها فأنصح EXCEL لقوته وسهولته.

كل ما سبق يندرج تحت عنوان واحد في غاية الأهمية -- أن المبرمج ليس لديه فكرة عن الأسس العلمية لقواعد البيانات!!! وعليه فإن الدورة الزمنية والتكلفة لتعلم EXCEL هي أقصر وأرخص بعشرات المرات من تعلم قواعد البيانات.

ملاحظة أخيرة، حتى Access شخصيا هو للمبتدئين في قواعد البيانات وهو للإستخدامات البسيطة والمحدودة جدا فقط.

---

عودة إلى موضوعك الأصلي:

ليس فلسفة أو إدعاء، قمت بإعطاء عشرات المحاضرات عن قواعد البيانات في أكثر من محفل ومؤتمر ومركز تدريب عن قواعد البيانات، خذ هذه المعلومة الصغيرة، في معظم هذه المحاضرات كنت أشترط ألا يوجد في القاعات أي حاسب آلي.

بعبارة أخرى ليس الهدف هو الإجابة على كيف؟

الهدف هو الإجابة على لماذا؟

مثال:

كيف يتم إنشاء جدول؟ هذا سؤال كيف؟ والإجابة بسيطة، إعمل كذا وكذا ثم كذا وكذا،، هذا لا يصنع مبرمج قواعد بيانات ؟؟؟!!! هذا يصنع مقلد!!

أما عندما يكون السؤال لماذا يتم إنشاء هذا الجدول بهذه الطريقة وبهذا الأسلوب؟ هنا السؤال لماذا، وهنا لا نحتاج حاسب آلي ولا قواعد بيانات، هنا نحتاج إلى ورقة وقلم وفكر وإجتماع وتخيل.

بالطبع لن أستطيع أن أشرح الأسس العلمية لقواعد البيانات في هذه الرسالة وإن كانت كل مشاعري تضغط علي أن أفعل!!!

القفز في البركة بدون تعلم قواعد وأصول السباحة هو نوع من المخاطرة.

الآن إذا كان برنامجك يعتمد على جدول زمني ويجب أن يقدم لجهة ما تؤثر بعملك أو وظيفتك فأنا أعتذر عن المساعدة لعدة أسباب:

أنك تحت ضغط شديد لإنهاء العمل.

أنني سأساعدك على الإستمرار في طريق خاطىء وسأعمق لديك وسائل تعلم وبرمجة خاطئة.

أما إذا كان المشروع هو وسيلة وأداة للتدريب والتعلم فليس لدي أي مانع في أن نتفق على مشروع من إختياري أقوم من خلاله بشرح "موجز" للطريق الصحيح لتعلم قواعد البيانات.

أما تصحيح الأخطاء في الجداول والحقول فلا معنى له لأنه ينصب في نفس الإتجاه الخاص بكيف وليس لماذا.

دعني أستفز كل قدراتك الفكرية لوهلة، ساعدني في الإجابة على الأسئلة التالية:

ما هو الفرق بين الجدول والإستعلام؟

لماذا لا نستخدم العمليات الحسابية في الجداول؟

ما هو الفرق بين الجدول المسطح والجدول العلاقي Flat & Relational؟

يوجد أربع علاقات بين الجداول ساعدني في فهم العلاقة One to One لماذا نحتاجها؟

ما هو الفرق بين الجداول الأساسية والجداول المساعدة Help Tables؟

ما هو جدول الحركة Transaction Table؟ ولماذا نحتاجه؟

ما وظيفة المفتاح الأساسي Primary Key؟ مادا يحدث عند عدم وجوده في جدول ما؟

ليس الهدف قطعا إختبارك!! أعلم من تصميمك للمشروع أنك مبتدىء وكلنا في وقت ما كنا مبتدئين، الهدف هو أن أوصل فكرتي وهي أن كل الأسئلة أعلاه لا تحتاج إلى حاسب آلي ولا إلى قواعد بيانات ولكن فهمها بعمق هو من أهم أسس صناعة قواعد البيانات.

أخطاء البرنامج لديك:

جدول Currency ليس له أي معنى ولا يوجد له إستخدامات بدون وجود بيانات حقل Code وأغلب الظن أنك من مبرمجي Cobol في السابق.

الجداول الثلاثة Divisions, Suppliers, & Description ليس لها أهمية إطلاقا لعدم وجود روابط بينها وبين الجدول الرئيسي.

الجدول Suppliers يحتوي على حقل مشابه لإسم الجدول، خطأ شائع جدا ويؤدي إلى مشاكل في النماذج والتقارير.

المفتاح الرئيسي في جدول Supplier لخاصية Required هي لأ وهذا غريب جدا لمفتاح أساسي.

لا يوجد في قاعدة البيانات جدول حركة Transactions Table وهو أحد أهم أخطاء المبتدئين.

الجدول الرئيسي وهو Data يحوي الكثير من الأخطاء:

مسافات في أسماء الحقول-- ستؤدي إلى مشاكل جمة عند إنشاء الإستعلامات ومشاكل أكثر تعقيدا عن إنشاء النماذج.

لا يوجد مفتح رئيسي في الجدول الأساسي - خطأ آخر شائع للمبتدئين يؤدي إلى تحويل الجدول من جدول رئيسي إلى جدول مساعد.

الحقلين Amount KD, Amount F يظهر أنهما للتحويل بين العملات وإستنتاجي أنهما دينار كويتي والآخر لعملة أخرى وهذا تصميم خاطىء حيث يتوجب أن تنتقل التحويلات إلى جدول خاص مع حقل اسعر الصرف بالنسبة للدينار الكويتي ومن خلال الإستعلامات يتم تجميعها. وطبعا لعدم وجود أية روابط فلن يتم هذا وبالتالي الحقل Amount F لا معنى ولا أهمية له.

حقل Supplier سعته 50 حرفا بينما في جدول Supplier فسعته 75 حرف، خطأ فادح جدا، وطبعا إستخدام Supplier في جدول Data خطأ آخر حيث كان الأولى أن يكون هو Code ليتسنى ربطه فيما بعد.

لا أدري ماذا أقول، كلما فتحت قاعدة البيانات وجدت أخطاء تلو أخطاء. إستعلاماتك ونماذجك وتقاريرك لن تنجح إلا في حالة واحدة وهي تحويل كل الحقول إلى جدول Data وبهذا تتحول قاعدة البيانات إلى Flat مثل التي في Excel وبالتالي تستطيع إجراء أية مجاميع وأية تقارير بسهولة ويسر وتستطيع الوصول إلى نفس الهدف على إفتراض أن قاعدة البيانات لن تتطور مستقبلا.

أخي الكريم أعد النظر في الموضوع من زاوية أخرى وخذ الأمر بروية إما من خلال برنامج تدريبي أو من خلال دورة في أسس قواعد البيانات.

إذا حولت قاعدة البيانات الى Flat وأردت أن أقوم بعمل كل الإستعلامات والتقارير لك فآمل إعطائي صورة عن شكل التقارير المطلوبة، للعلم قواعد البيانات تصمم بشكل عكسي، أي التقارير ثم الجداول ثم الإستعلامات وآخيرا النماذج والجداول المساعدة.

والله من وراء القصد.

تحياتي،،،

#5
اقتباس
ليس فلسفة أو إدعاء، قمت بإعطاء عشرات المحاضرات عن قواعد البيانات في أكثر من محفل ومؤتمر ومركز تدريب عن قواعد البيانات، خذ هذه المعلومة الصغيرة، في معظم هذه المحاضرات كنت أشترط ألا يوجد في القاعات أي حاسب آلي.

بعبارة أخرى ليس الهدف هو الإجابة على كيف؟

الهدف هو الإجابة على لماذا؟

اخي الكريم InternetMaster

هل لك ان تتفضل علينا وتلقى دروس في قواعد بيانات الاكسس كما قلت انت :

اقتباس
بعبارة أخرى ليس الهدف هو الإجابة على كيف؟

الهدف هو الإجابة على لماذا؟

والذي اراه امامي هو على ما اظن استاذ في قواعد البيانات

فتكرمك علينا ستلقى عليه الاجر من الله ودعاء لك ممن يتعلم حرفا منك

وانا اولهم ونحن بحاجه لمثلك حقيقةً فهل ستستجيب لطلبي هذا

تقبل تحياتي وتقديري

#6

اخي الكريم InternetMaster

أتمنىفعلاً -كما طلب اخونا الهاجرى- أن تلقى علينا هذه المحاضرات - أو تمدنا بها إذا كانت لديك على ملف مرفق - التى سيتفاد منها الكثيرين المبتدئين وغير المبتدئين وتقوم بشرح اسس قواعد البيانات عامة...لأن معظمنا يهتم بكيف ولا يهتم بلماذا

حتى بعض المحترفين أصبحوا محترفين فى كيف ونسوا لماذا

واعتقد ان الجميع متشوق لهذه الاستفادة الجمة

وكل عام وانتم بخير

تم تعديل هذه المشاركة بواسطة AboSara في 3 نوفمبر 2003 في 12:09

#7

مرحبا،،،

سأحاول قدر إستطاعتي، سأبدأ الموضع في منتدى الأسكس تحت عنوان الأسس العلمية لقواعد البيانات.

فبإسم الله نبدأ وعليه توكلنا.

تحياتي،،،

#8

استاذنا العزيز الهاجري

السلام عليكم ورحمة الله وبركاته

تحياتي اليك وكل سنة وانت طيب وجميع الاخوة بالمنتدي بمناسبة شهر رمضان الكريم

واضم صوتي الى صوتك ومرحبا بالاخ InternetMaster

ونحن فى الانتظار

هذا الموضوع مغلق.

مواضيع مشابهة