noneta قام بنشر ديسمبر 1, 2014 قام بنشر ديسمبر 1, 2014 السلام عليكم... اعزائي انا عندي قاعدة بيانات لمبيعات ولدي استعلام يقرأ مبيعات كل عميل قام بالشراء, ولكني احتاج ان يظهر لدي في الاستعلام جميع العملاء الذين قامو بالشراء والذين لم يقومو به, مافعلته هو استعلام الحاق ووضعت فيه اسماء جميع العملاء بالاعتماد على جدول لاسماء جميع العملاء, ولكن المشكلة هي في تكرار اسم العميل في كل مرة لتشغيل الاستعلام, مااحتاجه هو الحل لكي عندما اقوم بتشغيل استعلام الالحاق فإنه لايلحق اسماء العملاء الموجودين في الجدول الاساسي وانما فقط الذين لاتتواجد اسمائهم.
rudwan قام بنشر ديسمبر 3, 2014 قام بنشر ديسمبر 3, 2014 أخي الكريم حاول توضيح تفاصيل قاعدة البيانات عندك حتى نتمكن من فهم المطلوب ( اي تفاصيل الجداول و الحقول و تفاصيل الاستعلام ) 1
noneta قام بنشر ديسمبر 4, 2014 الكاتب قام بنشر ديسمبر 4, 2014 (معدل) أخي الكريم حاول توضيح تفاصيل قاعدة البيانات عندك حتى نتمكن من فهم المطلوب ( اي تفاصيل الجداول و الحقول و تفاصيل الاستعلام ) استاذ العزيز...انا مازلت هاوية في الاكسس وانا اعمل فعلا على قاعدة بيانات في وظيفتي الحالية وقمت بتطويرها كثيرا لكني لازلت احتاج المزيد, لذلك احتاج بعض المساعدة ووجدتها لديكم جزاكم الله الخير.. ارفقت مثال لقاعدة بيانات ارجو التعديل عليها.. مااحتاجه هو عند تشغيل استعلام الالحاق فانه يضيف فقد اسماء العملاء الغير موجودة في tb1 ولايكرر اسماء موجودة. منع التكرار باستخدام استعلام الحاق.rar تم تعديل ديسمبر 4, 2014 بواسطه noneta
علي المصري قام بنشر ديسمبر 4, 2014 قام بنشر ديسمبر 4, 2014 جربي التالي في وضع التصميم للجدول tbl1 وفي حقل cus_name خلي الفهرسة indexed قيمتها ( نعم بدون تكرار ) ( Yes (No Duplicates)
rudwan قام بنشر ديسمبر 4, 2014 قام بنشر ديسمبر 4, 2014 اعمل اسعلام جديد كما يلي design query wizard find unmached query wizard هذا المعالج يصمم لك استعلام بالفارق من جدولين اي السجلات الموجودة في جدول و غير الموجودة في الثاني سيظهر هنا معالج على عدة خطوات اختاري الجدول الأول ( الذي يحوي كل السجلات ) ثم في الخطوة الثانية اختاري الجدول الثاني ( الذي يحوي عدة سجلات فقط ) سيطلب هنا المعرف المشترك بينهما ( و هذا أمر ضروري جدا ) و هو هنا الحقل ID نتيجة الاستعلام المفروض أن تعطيكي الفارق بين الجدولين من هذا الاستعلام تعملي استعلام الحاق للسجل الأول هذا من ناحية الحل المطلوب , لكن من الناحية العملية هذه الطريقة غير مرغوبة برمجيا ( اي طريقة تكرار الجداول ) أعيدي صياغة قاعدة البيانات لتجنب تكرار الجداول 1
أفضل إجابة يوسف أحمد قام بنشر ديسمبر 4, 2014 أفضل إجابة قام بنشر ديسمبر 4, 2014 (معدل) السلام عليكم استاذ رضوان اشتقنا اليك وانا سعيد جداً برؤيتك فأنت ممن تعلمنا منه الكثير فجزاك عنا خير الجزاء اتفق مع الحلول المقدمة من الاستاذ علي و الاستاذ رضوان . ولي مشاركة ان سمحتوا لي : ربما يكون القصد من السؤال هو فقط طريقة الالحاق بدون تكرار على مثال لا يمثل البنية الحقيقة للبرنامج لأنه كما ذكر استاذ رضوان بأن التكرار غير مقبول عند تصميم البرامج. ايضاً رأيت بأن استعلام الالحاق به حقلين و واحد منهم حقل رقم تلقائي و هو يدرج كتسلسل بمجرد الحاق الاسم .. فلماذا نلحقه ؟ و قد يتسبب هذا في خطأ بسبب التكرار. عموماً : لتفادي التكرار يمكن استخدام استعلام فرعي كمعيار لحقل الاسم بالاستعلام الالحاقي كالتالي : Not In (select cus_name from tb1 where cus_name=cus) مرفق الملف بعد التعديل مع ملاحظة ازالة حقل الترقيم التلقائي . بالتوفيق للجميع منع التكرار باستخدام استعلام الحاق.rar تم تعديل ديسمبر 4, 2014 بواسطه yousef 1
rudwan قام بنشر ديسمبر 4, 2014 قام بنشر ديسمبر 4, 2014 أهلا و سهلا أستاذ يوسف حياك الله و بارك فيك طريقة أخرى للحل , لكن ايضا لايزال هناك خلل في تصميم البرنامج , و ننصح الأخت بمراجعة التصميم و لعل المطلوب يكمن في حل لآخر غير حل الاستعلام الالحاقي ان الاسم و خاصة الأسماء العربية من السهل جدا أن تختلف كتابتها من سجل لأخر و ذلك بوضع فراغ أو همزة أو ماشبه و بالتالي فانه لتفادي مثل هذا الخطأ , ينصح دائما باستخدام حقل معرف عبارة عن ID و ليس الاسم و جزاك الله خيرا 1
noneta قام بنشر ديسمبر 4, 2014 الكاتب قام بنشر ديسمبر 4, 2014 جربي التالي في وضع التصميم للجدول tbl1 وفي حقل cus_name خلي الفهرسة indexed قيمتها ( نعم بدون تكرار ) ( Yes (No Duplicates) استاذ علي .. اشكرك على مرورك ولكن هذه الطريقة لا استفاد منها لاني في عملي يتكرر لدي اسم العميل عند كل عملية بيع له.
noneta قام بنشر ديسمبر 4, 2014 الكاتب قام بنشر ديسمبر 4, 2014 السلام عليكم استاذ رضوان اشتقنا اليك وانا سعيد جداً برؤيتك فأنت ممن تعلمنا منه الكثير فجزاك عنا خير الجزاء اتفق مع الحلول المقدمة من الاستاذ علي و الاستاذ رضوان . ولي مشاركة ان سمحتوا لي : ربما يكون القصد من السؤال هو فقط طريقة الالحاق بدون تكرار على مثال لا يمثل البنية الحقيقة للبرنامج لأنه كما ذكر استاذ رضوان بأن التكرار غير مقبول عند تصميم البرامج. ايضاً رأيت بأن استعلام الالحاق به حقلين و واحد منهم حقل رقم تلقائي و هو يدرج كتسلسل بمجرد الحاق الاسم .. فلماذا نلحقه ؟ و قد يتسبب هذا في خطأ بسبب التكرار. عموماً : لتفادي التكرار يمكن استخدام استعلام فرعي كمعيار لحقل الاسم بالاستعلام الالحاقي كالتالي : Not In (select cus_name from tb1 where cus_name=cus) مرفق الملف بعد التعديل مع ملاحظة ازالة حقل الترقيم التلقائي . بالتوفيق للجميع اشكرك جزيل الشكر واشكر الاستاذ رضوان واستاذ علي.. احب التوضيح وايضا اطمع بالاستفادة من خبراتكم في ان قاعدة بياناتي هي للمبيعات وفي كل مرة يحدث عملية بيع للعميل فاني اقوم بادخال العملية بنفس اسم العميل المستخدم دوما. فهل هذه العملية خاطئة كتكرار..؟؟ وايضاً فاني ساستخدم استعلام الإلحاق وذلك لاني احتاج الى اظهار جميع العملاء المسجلين في الشركة سواء قامو بالشراء ام لا ولم اجد غير هذا الحل لانه من المزعج ادخالها وهي موجودة مسبقا في الجدول الرئيسي. استاذي العزيز يوسف..اطمع بتوضيح لهذه الدالة لاستفاد منها.
rudwan قام بنشر ديسمبر 4, 2014 قام بنشر ديسمبر 4, 2014 وفي كل مرة يحدث عملية بيع للعميل فاني اقوم بادخال العملية بنفس اسم العميل المستخدم دوما. فهل هذه العملية خاطئة كتكرار..؟؟ ليست خاطئة من حيث انها خطأ و لكن للسبب الذي ذكرته سابقا من الافضل استخدام رقم العميل و ليس اسمه لان الاسم قد يتغير , و قد تتم كتابته بطرق مختلفة مثلا : محمد أحمد محمد احمد بالنسبة للبرنامج الاسمين مختلفين , مع ان المستخدم يقصد نفس اسم العميل لذلك في عالم البرمجة يتم الاعتماد على حقل المعرف لكل جدول بيانات أساسي , مثل جدول الموظفين - العملاء - الموردين - الأصناف - .. الخ وايضاً فاني ساستخدم استعلام الإلحاق وذلك لاني احتاج الى اظهار جميع العملاء المسجلين في الشركة سواء قامو بالشراء ام لا ولم اجد غير هذا الحل لانه من المزعج ادخالها وهي موجودة مسبقا في الجدول الرئيسي ليس هذا هو الحل المناسب يمكنك انشاء جدول لجميع العملاء سواء قاموا بالشراء أم لم يقوموا , و من خلال استعلام بسيط يمكن معرفة العملاء الذين قاموا بالشراء فعلا ممن لم يقوموا بذلك لذلك , من الأفضل اعادة صياغة البرنامج ليكون أسهل و أقل تعقيدا 1
noneta قام بنشر ديسمبر 4, 2014 الكاتب قام بنشر ديسمبر 4, 2014 وفي كل مرة يحدث عملية بيع للعميل فاني اقوم بادخال العملية بنفس اسم العميل المستخدم دوما. فهل هذه العملية خاطئة كتكرار..؟؟ ليست خاطئة من حيث انها خطأ و لكن للسبب الذي ذكرته سابقا من الافضل استخدام رقم العميل و ليس اسمه لان الاسم قد يتغير , و قد تتم كتابته بطرق مختلفة مثلا : محمد أحمد محمد احمد بالنسبة للبرنامج الاسمين مختلفين , مع ان المستخدم يقصد نفس اسم العميل لذلك في عالم البرمجة يتم الاعتماد على حقل المعرف لكل جدول بيانات أساسي , مثل جدول الموظفين - العملاء - الموردين - الأصناف - .. الخ وايضاً فاني ساستخدم استعلام الإلحاق وذلك لاني احتاج الى اظهار جميع العملاء المسجلين في الشركة سواء قامو بالشراء ام لا ولم اجد غير هذا الحل لانه من المزعج ادخالها وهي موجودة مسبقا في الجدول الرئيسي ليس هذا هو الحل المناسب يمكنك انشاء جدول لجميع العملاء سواء قاموا بالشراء أم لم يقوموا , و من خلال استعلام بسيط يمكن معرفة العملاء الذين قاموا بالشراء فعلا ممن لم يقوموا بذلك لذلك , من الأفضل اعادة صياغة البرنامج ليكون أسهل و أقل تعقيدا اشكرك استاذ رضوان جزيل الشكر على التوضيح..
rudwan قام بنشر ديسمبر 4, 2014 قام بنشر ديسمبر 4, 2014 كما يمكنك تحميل قاعدة البيانات الشهيرة NorthWind و هي من نماذج برنامج الأكسس و تحميلها مجاني , فيها تطبيقات عديدة لما يختص بالمشتريات و المبيعات و الأصناف و المندوبين و الموظفين يمكن الاعتماد عليها مع تعديل بعض مكوناتها اذا دعت الحاجة لذلك و بالتوفيق
يوسف أحمد قام بنشر ديسمبر 4, 2014 قام بنشر ديسمبر 4, 2014 بارك الله في الجميع الطريقة التي وضعتها هي فقط لتوضيح كي يتم الحاق السجلات بدون تكرار وهي احدى الطرق ... و اتفق مع الاستاذ رضوان فيما ذكره بخصوص تصميم البرنامج .. بالنسبة للإستعلام الفرعي فهو استعلام داخلي ضمن الاستعلام الخارجي ( الرئيسي ) و تنتج عنه قيم تفحص الشرط للاستعلام الخارجي ( الرئيسي ) لمعرفة فيما اذا كان الشرط سيتحقق ام لا ينفذ الاستعلام الفرع اولاً ثم ينفذ الاستعلام الرئيسي .. بالتوفيق للجميع
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.