في بعض الأحيان، تكون عملية إنشاء الاستعلامات واستخدامها في Access مسألة بسيطة لتحديد الحقول من جدول، وربما تطبيق بعض المعايير، ثم عرض النتائج. ولكن ماذا لو تم نشر البيانات التي تحتاج إليها في أكثر من جدول واحد، كما هو الحال في كثير من الأحيان؟ لحسن الحظ، يمكنك إنشاء استعلام يجمع بين المعلومات من مصادر متعددة. يستكشف هذا الموضوع بعض السيناريوهات التي تسحب فيها البيانات من أكثر من جدول واحد، ويوضح كيفية القيام بذلك.
ماذا تريد أن تفعل؟
استخدام البيانات من جدول مرتبط لتحسين المعلومات الموجودة في الاستعلام الخاص بك
قد تظهر حالات حيث يعتمد فيها الاستعلام على جدول واحد يوفر لك المعلومات التي تحتاج إليها، ولكن سحب البيانات من جدول آخر قد يساعد على جعل نتائج الاستعلام أكثر وضوحاً ومفيدة بشكلٍ أكبر. على سبيل المثال، افترض أن لديك قائمة بمعرفات الموظفين التي تظهر في نتائج الاستعلام. تدرك أنه سيكون من الأفضل عرض اسم الموظف في النتائج، ولكن أسماء الموظفين موجودة في جدول آخر. للحصول على أسماء الموظفين بحيث تظهر في نتائج الاستعلام، أنت بحاجة لتضمين كلا الجدولين في الاستعلام الخاص بك.
استخدام "معالج الاستعلام" لإنشاء استعلام من جدول أساسي وجدول مرتبط
-
تأكد من أن الجداول لها علاقة محددة في النافذة "العلاقات".
كيف؟
-
من علامة التبويب أدوات قاعدة البيانات، في المجموعة إظهار/إخفاء، انقر فوق علاقات.
-
من علامة التبويب تصميم، في المجموعة علاقات، انقر فوق كافة العلاقات.
-
حدد الجداول التي يجب أن يكون لها علاقة محددة.
-
إذا كانت الجداول ظاهرة في نافذة "العلاقات"، تحقق للتأكد من تعريف علاقة مسبقاً.
تظهر العلاقة كخط يقوم بالتوصيل بين الجدولين في حقل مشترك. يمكنك النقر نقراً مزدوجاً فوق خط علاقة للاطلاع على الحقول المتصلة في الجداول بواسطة العلاقة.
-
إذا لم تكن الجداول ظاهرة في نافذة "العلاقات"، يجب أن تقوم بإضافتها.
من علامة التبويب تصميم، في المجموعة إظهار/إخفاء، انقر فوق أسماء الجداول.
انقر نقراً مزدوجاً فوق كل جدول من الجداول التي تريد عرضها، ثم انقر فوق إغلاق.
-
-
إذا لم تعثر على علاقة بين الجدولين، قم بإنشاء واحدة بسحب حقل من أحد الجداول إلى حقل في الجدول الآخر. يجب أن تحتوي الحقول التي تقوم فيها بإنشاء العلاقة بين الجدولين على أنواع بيانات متطابقة.
ملاحظة: يمكنك إنشاء علاقة بين حقل من نوع البيانات "رقم تلقائي" وحقل من نوع البيانات "رقم"، إذا كان هذا الحقل يحتوي على حجم حقل عدد صحيح طويل. غالباً ما ستكون هذه هي الحالة عند إنشاء علاقة واحد لأكثر.
يظهر مربع الحوار تحرير علاقات.
-
انقر فوق إنشاء لإنشاء العلاقة.
لمزيد من المعلومات حول الخيارات المتاحة لك عندما تقوم بإنشاء علاقة، راجع المقالة إنشاء علاقة أو تحريرها أو حذفها.
-
قم بإغلاق نافذة العلاقات.
-
-
على علامة التبويب إنشاء، في المجموعة استعلامات، انقر فوق معالج الاستعلامات.
-
في مربع الحوار استعلام جديد، انقر فوق معالج الاستعلامات البسيطة، ثم انقر فوق موافق.
-
في مربع التحرير والسرد جداول/استعلامات، انقر فوق الجدول الذي يحتوي على المعلومات الأساسية التي تريد تضمينها في الاستعلام الخاص بك.
-
في قائمة الحقول المتوفرة، انقر فوق الحقل الأول الذي تريد تضمينه في الاستعلام، ثم انقر فوق زر السهم الفردي لليمين لنقل ذلك الحقل إلى القائمة الحقول المحددة. قم بتنفيذ نفس الإجراء لكل حقل إضافي تريد تضمينه في الاستعلام من ذلك الجدول. يمكن أن تكون هذه الحقول هي الحقول التي تريد إرجاعها في إخراج الاستعلام، أو الحقول التي تريد استخدامها لتحديد الصفوف في الإخراج عن طريق تطبيق المعايير.
-
في مربع التحرير والسرد جداول/استعلامات، انقر فوق الجدول الذي يحتوي على البيانات المرتبطة التي تريد استخدامها لتحسين نتائج الاستعلام الخاص بك.
-
قم بإضافة الحقول التي تريد استخدامها لتحسين نتائج الاستعلام إلى القائمة الحقول المحددة ثم انقر فوق التالي.
-
ضمن هل تريد استعلام تفصيل أم استعلام ملخص؟، انقر فوق إما التفاصيل أو ملخص.
إذا كنت لا تريد أن يقوم الاستعلام الخاص بك بتنفيذ أي دالات تجميعية (Sum أو Avg أو Min أو Max أو Count أو StDev أو Var)، اختر استعلام تفصيل. إذا كنت تريد الاستعلام الخاص بك تنفيذ دالة تجميعية، فاختر استعلام ملخص. بعد قيامك بالاختيار، انقر فوق التالي.
-
انقر فوق إنهاء لعرض النتائج.
مثال يستخدم نموذج قاعدة بيانات Northwind
في المثال التالي، تستخدم "معالج الاستعلامات" لإنشاء استعلام يعرض قائمة بالطلبيات ورسوم الشحن لكل طلبية، واسم الموظف الذي قام بمعالجة كل طلبية.
ملاحظة: يتضمن هذا المثال تعديل نموذج قاعدة بيانات Northwind. قد تحتاج إلى إنشاء نسخة احتياطية من نموذج قاعدة بيانات Northwind ثم اتباع هذا المثال باستخدام هذه النسخة الاحتياطية.
استخدام "معالج الاستعلام" لإنشاء الاستعلام
-
افتح نموذج قاعدة بيانات Northwind. أغلق نموذج تسجيل الدخول.
-
على علامة التبويب إنشاء، في المجموعة استعلامات، انقر فوق معالج الاستعلامات.
-
في مربع الحوار استعلام جديد، انقر فوق معالج الاستعلامات البسيطة، ثم انقر فوق موافق.
-
في مربع التحرير والسرد جداول/استعلامات، انقر فوق الجدول: الطلبيات.
-
في قائمة الحقول المتوفرة، انقر نقراً مزدوجاً فوق معرف الطلبية لنقل ذلك الحقل إلى قائمة الحقول المحددة. انقر نقراً مزدوجاً فوق رسوم الشحن لنقل ذلك الحقل إلى قائمة الحقول المحددة.
-
في مربع التحرير والسرد جداول/استعلامات، انقر فوق الجدول: الموظفون.
-
في قائمة الحقول المتوفرة، انقر نقراً مزدوجاً فوق الاسم الأول لنقل ذلك الحقل إلى قائمة الحقول المحددة. انقر نقراً مزدوجاً فوق اسم العائلة لنقل ذلك الحقل إلى قائمة الحقول المحددة. انقر فوق التالي.
-
نظراً لأنك تقوم بإنشاء قائمة بكافة الطلبيات، فستحتاج إلى استخدام استعلام تفصيل. إذا كنت تجمع رسوم الشحن حسب الموظف أو تقوم بتنفيذ بعض الدالات التجميعية الأخرى، يمكنك استخدام استعلام ملخص. انقر فوق التفاصيل (يظهر كل حقل من كل سجل)، ثم انقر فوق التالي.
-
انقر فوق إنهاء لعرض النتائج.
يقوم الاستعلام بإرجاع قائمة بالطلبيات، بحيث يظهر لكل طلبية رسوم الشحن الخاصة بها والاسم الأول واسم العائلة للموظف الذي قام بمعالجتها.
توصيل البيانات في جدولين باستخدام العلاقات بينهما بواسطة جدول ثالث
غالباً ما تكون البيانات الموجودة في جدولين مرتبطة ببعضها البعض من خلال جدول ثالث. وعادةً ما تكون هذه هي الحالة نظراً لأن البيانات الموجودة بين أول جدولين مرتبطة في علاقة متعدد بمتعدد. غالباً، يعد تقسيم علاقة متعدد بمتعدد بين جدولين إلى علاقتين واحد لأكثر تتضمن ثلاثة جداول من الممارسات الجيدة في مجال تصميم قواعد البيانات الجيدة. يمكنك إجراء ذلك بإنشاء جدول ثالث، يسمى جدول موصِل أو جدول علاقة، الذي يحتوي مفتاح أساسي ومفتاح خارجي لكل من الجدولين الآخرين. يتم بعد ذلك إنشاء علاقة واحد لأكثر بين كل مفتاح خارجي في الجدول الموصِل والمفتاح الأساسي المقابل لأحد الجدولين الآخرين. في مثل هذه الحالات، تحتاج إلى تضمين كافة الثلاثة جداول في الاستعلام الخاص بك، حتى إذا كنت تريد استرداد البيانات من جدولين اثنين فقط من الثلاثة جداول.
إنشاء استعلام تحديد باستخدام جداول بينها علاقة متعدد بمتعدد
-
في علامة تبويب إنشاء، في مجموعة استعلامات، انقر فوق تصميم الاستعلام.
-
انقر نقرا مزدوجا فوق الجدولين اللذين يحتويان على البيانات التي تريد تضمينها في الاستعلام وكذلك جدول الوصل الذي يربطهما، ثم انقر فوق إغلاق.
تظهر كافة الثلاثة جداول في مساحة عمل تصميم الاستعلام، منضمة في الحقول المناسبة.
-
انقر نقراً مزدوجاً فوق كل حقل من الحقول التي تريد استخدامها في نتائج الاستعلام. يظهر كل حقل بعد ذلك في استعلام شبكة التصميم.
-
في شبكة تصميم الاستعلام، استخدم صف المعايير لإدخال معايير الحقل. لاستخدام معيار حقل دون عرض الحقل في نتائج الاستعلام، قم بإلغاء تحديد خانة الاختيار الموجودة في صف إظهار لهذا الحقل.
-
لفرز النتائج استناداً إلى القيم الموجودة في حقل، في شبكة تصميم الاستعلام، انقر فوق تصاعدي أو تنازلي (استناداً إلى الطريقة التي تريد فرز السجلات وفقاً لها) في صف الفرز لهذا الحقل.
-
في علامة التبويب تصميم، في مجموعة النتائج، انقر فوق تشغيل.
يعرض Access إخراج الاستعلام في طريقة عرض ورقة البيانات.
مثال يستخدم نموذج قاعدة بيانات Northwind
ملاحظة: يتضمن هذا المثال تعديل نموذج قاعدة بيانات Northwind. قد تحتاج إلى إنشاء نسخة احتياطية من نموذج قاعدة بيانات Northwind ثم اتباع هذا المثال باستخدام النسخة الاحتياطية.
افترض أن لديك فرصة جديدة: اكتشف مورد في الرياض موقعك على الويب، وقد يحتاج إلى القيام بأعمال تجارية معك. ومع ذلك، يمارس هذا المورد أعماله في الرياض وبالقرب من جدة فقط. ويقوم المورد بتوفير كل فئات منتجات الطعام التي تعمل أنت كوسيط لها. وهذا المورد عبارة عن شركة كبيرة نوعاً ما، ويريد الحصول على تأكيد بقدرتك على توفير إمكانية حصولهم على فرصة مبيعات متوقعة وكافية بحيث تكون صفقة قيّمة: بمكسب يصل إلى 2000000 ريال سنوياً في المبيعات على الأقل (حوالي 930000 دولار). هل يمكنك توفير السوق الذي يتطلبه هذا المورد؟
يمكنك العثور على البيانات التي تحتاج إليها للرد على هذا السؤال في مكانين: جدول "العملاء" وجدول "تفاصيل الطلبية". يتم ربط هذه الجداول ببعضها عن طريق جدول "الطلبيات". تم بالفعل تعريف العلاقات بين الجداول. في جدول "الطلبيات"، يمكن أن يكون لكل طلبية عميل واحد فقط، مرتبط بجدول "العملاء" في حقل "معرف العميل". يرتبط كل سجل في جدول "تفاصيل الطلبية" بطلبية واحدة فقط في جدول "الطلبيات"، في حقل معرف الطلبية. وبالتالي، يمكن أن يكون لعميل معين العديد من الطلبيات، كل منها يحتوي على العديد من تفاصيل الطلبية.
في هذا المثال، ستقوم بإنشاء استعلام جدولي يعرض إجمالي المبيعات لكل سنة، في مدينتي الرياض وجدة.
قم بإنشاء استعلام في طريقة العرض "تصميم".
-
افتح قاعدة بيانات Northwind. أغلق نموذج تسجيل الدخول.
-
في علامة تبويب إنشاء، في مجموعة استعلامات، انقر فوق تصميم الاستعلام.
-
انقر نقرا مزدوجا فوق العملاءوالطلبات ثمتفاصيل الطلب.
تظهر الثلاثة جداول في مساحة عمل تصميم الاستعلام.
-
في علامة التبويب "العملاء"، انقر نقراً مزدوجاً فوق الحقل "المدينة" لإضافته إلى شبكة الاستعلام.
-
في شبكة تصميم الاستعلام، في العمود المدينة، في صف المعايير، اكتب في ("الرياض"، "جدة"). يؤدي هذا إلى تضمين فقط تلك السجلات الموجود بها العميل بإحدى هاتين المدينتين في الاستعلام.
-
في جدول "تفاصيل الطلبية"، انقر نقراً مزدوجاً فوق حقلي "تاريخ الشحن" و"سعر الوحدة".
تتم إضافة الحقلين إلى شبكة تصميم الاستعلام.
-
في العمود تاريخ الشحن في شبكة تصميم الاستعلام، حدد صف الحقل . استبدل [تاريخ الشحن] ب Year: Format([ShippedDate],"yyyy"). يؤدي هذا إلى إنشاء اسم مستعار للحقل، Year، يسمح لك باستخدام جزء السنة فقط من القيمة في حقل تاريخ الشحن.
-
في عمود UnitPrice في شبكة تصميم الاستعلام، حدد صف الحقل . استبدل [UnitPrice] ب Sales: [Order Details].[ UnitPrice]*[Quantity]-[Order Details]. [UnitPrice]*[Quantity]*[Discount]. يؤدي هذا إلى إنشاء اسم مستعار للحقل، Sales، يحسب المبيعات لكل سجل.
-
ضمن علامة التبويب تصميم، في المجموعة نوع الاستعلام، انقر فوق جدولي.
يظهر صفان جديدان وهما إجمالي و جدولي في شبكة تصميم الاستعلام.
-
في عمود المدينة في شبكة تصميم الاستعلام، انقر فوق الصف جدولي، ثم انقر فوق عنوان الصف.
يؤدي ذلك إلى إظهار قيم المدينة كعناوين الصفوف (أي أن الاستعلام يقوم بإرجاع صف واحد لكل مدينة).
-
في عمود السنة، انقر فوق صف جدولي، ثم انقر فوق عنوان العمود.
يؤدي ذلك إلى إظهار قيم السنة كعناوين الأعمدة (أي أن الاستعلام يقوم بإرجاع عمود واحد لكل سنة).
-
في عمود المبيعات، انقر فوق صف جدولي، ثم انقر فوق القيمة.
يؤدي ذلك إلى إظهار قيم المبيعات في تقاطع من الصفوف والأعمدة (أي الاستعلام يقوم بإرجاع قيمة مبيعات واحدة لكل تركيبة من المدينة والسنة).
-
في عمود المبيعات، انقر فوق صف الإجماليات، ثم انقر فوق Sum.
يتسبب ذلك في قيام الاستعلام بجمع القيم في هذا العمود.
يمكنك ترك صف الإجماليات للعمودين الآخرين في القيمة الافتراضية لـ تجميع حسب، نظراً لأنك تريد عرض كل قيمة لهذه الأعمدة، وليست القيم التجميعية.
-
في علامة التبويب تصميم، في مجموعة النتائج، انقر فوق تشغيل.
لديك الآن استعلام يقوم بإرجاع إجمالي المبيعات حسب السنة في الرياض وجدة.
عرض جميع السجلات من جدولين متشابهين
في بعض الأحيان، ستحتاج إلى دمج بيانات من جدولين متطابقين في البنية، ولكن أحدها يوجد في قاعدة بيانات أخرى. برجاء مراعاة السيناريو التالي.
لنفترض أنك محلل يعمل باستخدام بيانات خاصة بطالب. وتقوم بالعمل على مبادرة مشاركة بيانات بين مدرستك ومدرسة أخرى، بحيث تتمكن المدرستين من تحسين المنهج الخاص بكل منهما. بالنسبة لبعض الأسئلة التي تحتاج إلى استكشافها، سيكون من الأفضل إلقاء نظرة على كافة السجلات من كلتا المدرستين معاً، بدلاً من فحص سجلات كل مدرسة بشكلٍ منفصل.
يمكنك استيراد بيانات المدرسة الأخرى إلى جداول جديدة في قاعدة البيانات الخاصة بك، ولكن في هذه الحالة لن تنعكس أي تغييرات يتم إجراؤها على بيانات المدرسة الأخرى على قاعدة البيانات الخاصة بك. وسيكون الحل الأفضل هو إنشاء ارتباط إلى الجداول الخاصة بالمدرسة الأخرى، ثم إنشاء الاستعلامات التي تعمل على دمج البيانات عندما تقوم بتشغيلها. وستتمكن من تحليل البيانات كمجموعة واحدة، بدلاً من إجراء عمليتي تحليل ومحاولة تفسير بيانات العمليتين وكأنهما عملية تحليل بيانات واحدة.
لعرض جميع السجلات من جدولين ببنية متطابقة، استخدم استعلام موحد.
لا يمكن عرض الاستعلامات الموحدة في طريقة عرض «التصميم». بل يمكنك إنشائها باستخدام أوامر SQL التي تقوم بإدخالها في علامة تبويب العنصر طريقة عرض SQL.
إنشاء استعلام موحد باستخدام جدولين
-
في علامة تبويب إنشاء، في مجموعة استعلامات، انقر فوق تصميم الاستعلام.
-
من علامة التبويب تصميم، في المجموعة نوع الاستعلام، انقر فوق توحيد.
يتم تبديل الاستعلام من طريقة عرض التصميم إلى طريقة عرض SQL. في هذه المرحلة، تظهر علامة تبويب عنصر طريقة عرض SQL فارغة.
-
في طريقة عرض SQL، اكتب SELECT، متبوعةً بقائمة من الحقول من الأول من الجداول التي تريدها في الاستعلام. يجب تضمين أسماء الحقول بين أقواس مربعة، ومفصولة بفواصل. عند الانتهاء من كتابة أسماء الحقول، اضغط على مفتاح الإدخال ENTER. سينتقل المؤشر سطر واحد لأسفل في طريقة عرض SQL.
-
اكتب FROM، متبوعاً باسم أول جدول تريده في الاستعلام. اضغط على مفتاح الإدخال Enter.
-
إذا كنت تريد تحديد معيار لحقل من الجدول الأول، اكتب WHERE، متبوعاً باسم الحقل، وعامل تشغيل المقارنة (عادةً علامة يساوي (=))، والمعيار. يمكنك إضافة معايير إضافية إلى نهاية عبارة WHERE باستخدام الكلمة الأساسية AND ونفس بناء الجملة المستخدم للمعيار الأول؛ على سبيل المثال، WHERE [ClassLevel] = "100" AND [CreditHours] > 2. عند الانتهاء من تحديد المعايير، اضغط على مفتاح الإدخال ENTER.
-
اكتب UNION، ثم اضغط على مفتاح الإدخال Enter.
-
اكتب SELECT، متبوعةً بقائمة من الحقول من الجدول الثاني الذي تريده في الاستعلام. يجب أن تقوم بتضمين نفس الحقول من هذا الجدول التي قمت بتضمينها من الجدول الأول، وبنفس الترتيب. يجب تضمين أسماء الحقول بين أقواس مربعة، ومفصولة بفواصل. عند الانتهاء من كتابة أسماء الحقول، اضغط على مفتاح الإدخال ENTER.
-
اكتب FROM، متبوعةً باسم الجدول الثاني الذي تريد تضمينه في الاستعلام. اضغط على مفتاح الإدخال Enter.
-
قم بإضافة عبارة WHERE، كما هو موضح في الخطوة 6 من هذا الإجراء إذا كنت ترغب في ذلك.
-
اكتب فاصلة منقوطة (؛) للإشارة إلى نهاية الاستعلام الخاص بك.
-
في علامة التبويب تصميم، في مجموعة النتائج، انقر فوق تشغيل.
تظهر النتائج في طريقة عرض «ورقة البيانات».