حدد الاستعلامات في Access. إنشاء استعلامات في Microsoft Access

موضوع: إنشاء علاقات بين الجداول. إنشاء استعلام اختيار، مع معلمة واستعلام نهائي.

افتح قاعدة البيانات التي تم إنشاؤها في المعمل السابق مكتب عميد TF .

إنشاء علاقات بين الجداول

حدد كائنًا في نافذة قاعدة البيانات الجداول . انقر على الزر " مخطط بيانات "على شريط الأدوات أو قم بتنفيذ الأمر" خدمة »  « مخطط بيانات "باستخدام قائمة الأوامر. ستظهر نافذة على الشاشة: مخطط بيانات "والنافذة" إضافة الجداول "(الشكل 18).

أرز. 18. مربع حوار مخطط البيانات ومربع حوار إضافة جدول

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

انقل جميع الجداول إلى النافذة " مخطط بيانات " قم بتغيير حجم نوافذ الجدول بحيث يكون النص بأكمله مرئيًا (الشكل 19).

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

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

لإنشاء اتصال، انقر فوق الزر " يخلق ».

أرز. 19. ظهور مخطط بيانات قاعدة البيانات " مكتب عميد TF» قبل إجراء الاتصالات

أرز. 20. مربع حوار لتحديد معلمات الاتصال بين حقول الجدول

وكذلك بحسب مخطط البيانات يتم إنشاء الاتصالات بين الجداول المتبقية (الشكل 21).

أرز. 21. مخطط بيانات قاعدة البيانات " مكتب عميد TF»

قم بالرد عند إغلاق نافذة مخطط البيانات نعم على السؤال حول حفظ التخطيط.

يمكن تغيير العلاقات التي تم إنشاؤها بين جداول قاعدة البيانات.

لتغيير الاتصالات تحتاج إلى استدعاء النافذة " مخطط بيانات " بعد ذلك، ضع مؤشر الماوس على الاتصال الذي يحتاج إلى تغيير وانقر بزر الماوس الأيمن. ستظهر قائمة السياق (الشكل 22):

أرز. 22. قائمة سياق الاتصال

إذا قمت بتحديد الأمر " يمسح "، ثم بعد التأكيد سيتم حذف الاتصال. إذا كنت بحاجة إلى تغيير الاتصال، حدد الأمر " يتغير اتصال " بعد ذلك في النافذة التي تظهر " يتغير روابط " (في الجزء العلوي منه) حدد الحقول الموجودة في الجداول التي تريد ربطها وانقر على الزر " يخلق ».

الطلبات

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

سنقوم بتطوير الطلبات في الوضع مصمم .

في وصول يمكنك إنشاء أنواع الاستعلامات التالية:

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

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

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

    طلب تعديل . هذا استعلام يقوم بتعديل أو نقل سجلات متعددة في عملية واحدة. هناك أربعة أنواع من طلبات التغيير:

1. لحذف إدخال. يقوم هذا الاستعلام بحذف مجموعة من السجلات من جدول واحد أو أكثر.

2. لتحديث السجل. إجراء تغييرات عامة على مجموعة من السجلات في جدول واحد أو أكثر. يسمح لك بتغيير البيانات في الجداول.

3. لإضافة السجلات. إلحاق مجموعة من السجلات من جدول واحد أو أكثر بنهاية جدول واحد أو أكثر.

4. لإنشاء جدول. إنشاء جدول جديد من كل أو جزء من البيانات من جدول واحد أو أكثر.

    الطلبات SQL . تم إنشاؤها باستخدام تعليمات اللغة SQL ، مستعمل في ديسيبل .

أود أن أكون قادرًا على إنشاء استعلام ذي معلمات في MS Access 2003 وتمرير قيم عناصر نموذج معينة إلى هذا الاستعلام، ثم الحصول على مجموعة النتائج المقابلة وإجراء بعض الحسابات الأساسية معهم. سأرشدك بإيجاز إلى كيفية الحصول على معلمات الاستعلام لملء عناصر النموذج. إذا كنت بحاجة إلى استخدام VBA، فلا بأس.

5 إجابات

يمكن استخدام المراجع إلى عناصر التحكم في النموذج مباشرة في استعلامات Access، على الرغم من أنه من المهم تعريفها كمعلمات (وإلا فإن النتائج في أحدث الإصداراتيمكن أن يكون الوصول غير متوقع إذا كان موثوقًا به في السابق).

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

LastName = Forms!MyForm!LastName

المعلمات [!MyForm!] نص (255)؛ حدد tblCustomers.* من tblCustomers حيث tblCustomers.LastName=!;

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

من ناحية أخرى، إذا كنت تفعل شيئًا ما في التعليمات البرمجية، فما عليك سوى كتابة SQL بسرعة واستخدام القيمة الحرفية لعنصر التحكم في النموذج لإنشاء جملة WHERE.

هنا مقتطف من التعليمات البرمجية. يقوم بتحديث الجدول باستخدام المعلمة txtHospital:

تعيين db = CurrentDb تعيين qdf = db.QueryDefs("AddHospital") qdf.Parameters!txtHospital = Trim(Me.HospName) qdf.ReturnsRecords = False qdf.Execute dbFailOnError intResult = qdf.RecordsAffected

إليك مثال SQL:

المعلمات txtHospital Text(255); أدخل في قيم tblHospitals()

هناك ثلاث طرق تقليدية للتغلب على هذه المشكلة:

  1. قم بتعيين المعلمة إلى قيمة بحيث تتم مطالبة المستخدم بقيمة عند تشغيل الاستعلام.
  2. حقل الارتباط في النموذج (ربما يكون مخفيًا)
  3. أنشئ الاستعلام سريعًا ولا تستخدم المعلمات.

أعتقد أنه من الخطأ بالنسبة لي أن تضطر إلى إدخال شيء مثل [؟ أدخل رمز ISO الخاص بالبلد] أو روابط إلى الحقول في النموذج الخاص بك مثل: !! .

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

عادةً ما أختار الخيار الأخير، وأنشئ الاستعلام سريعًا، وأقوم بتحديث كائن الاستعلام حسب الحاجة. ومع ذلك، يعد هذا هجومًا شائعًا لحقن SQL (إما عن طريق الصدفة أو عن قصد عن طريق معرفة المستخدمين) وهو مجرد فاحش.

"Ed. Start - لاستكمال المثال خافت qryStartDate كتاريخ خافت qryEndDate كتاريخ qryStartDate = #2001-01-01# qryEndDate = #2010-01-01# "Ed. نهاية "QUOTEING "stallion": إن تمرير المعلمات إلى استعلام في VBA " أمر بسيط للغاية: "أولاً، سنقوم بتعيين بعض المتغيرات: Dim qdf As Querydef Dim rst As Recordset "ثم سنفتح الاستعلام: Set qdf = CurrentDB.QueryDefs(qryname) "الآن سنقوم بتعيين قيم للاستعلام باستخدام خيار المعلمات: qdf.Parameters(0) = qryStartDate qdf.Parameters(1) = qryEndDate "الآن سنقوم بتحويل querydef إلى مجموعة السجلات وتشغيلها Set rst = qdf.OpenRecordset "قم بتشغيل بعض التعليمات البرمجية على مجموعة السجلات" أغلق كافة الكائنات rst.Close qdf.Close Set rst = لا شيء Set qdf = لا شيء

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

تحرير أخيرًا كان لدي سبب لاستخدام هذا. وهنا الرمز الفعلي.

"... Dim qdf كـ DAO.QueryDef Dim prmOne كـ DAO.Parameter Dim prmTwo كـ DAO.Parameter Dim rst كمجموعة سجلات "... "افتح الاستعلام: Set qdf = db.QueryDefs("my_two_param_query") "تم استدعاء المعلمات param_one و "param_two" يربطان DAP.Parameters بالاستعلام Set prmOne = qdf.Parameters!param_one Set prmTwo = qdf.Parameters!param_two "تعيين قيم المعلمات prmOne = 1 prmTwo = 2 Set rst = qdf.OpenRecordset (dbOpenDynaset , _ dbSeeChanges) "... تعامل مع مجموعة السجلات كالمعتاد" تأكد من قيامك بالتنظيف بعد نفسك Set rst = Nothing Set prmOne = لا شيء Set prmTwo = لا شيء Set qdf = لا شيء

DoCmd.SetParameter "frontMthOffset"، -3 DoCmd.SetParameter "endMthOffset"، -2 DoCmd.OpenQuery "QryShowDifference_ValuesChangedBetweenSELECTEDMonths"

أين استعلام SQLيتضمن Access في الواقع SQL. على سبيل المثال

"اختر بلاه من mytable حيث dateoffset = "

كل شيء يعمل فقط!

لنأخذ مثالا. يبدو الطلب ذو المعلمات كما يلي:

حدد Tbl_Country.* من Tbl_Country حيث id_Country = _ [؟ أدخل رمز ISO الخاص بالبلد]

وترغب في أن تتمكن من الحصول على هذه القيمة ([؟ أدخل... البلد] واحد) من نموذج حيث لديك عناصر تحكم وبعض البيانات فيه. حسنًا... قد يكون ذلك ممكنًا، لكنه يتطلب بعض التطبيع في الكود.

قد يكون أحد الحلول هو تعيين بعض المنطق لعناصر تحكم النموذج، مثل fid_Country لعنصر التحكم، والذي قد يحمل قيمة id_Country. يمكن بعد ذلك تمثيل الاستعلام الخاص بك كسلسلة:

Qr = "اختر Tbl_Country.* من Tbl_Country حيث id_Country = "

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

تعتيم ctl كعنصر تحكم لكل ctl في Me.controls إذا instr(qr,"[" & ctl.name & "]")> 0 ثم qr = استبدال(qr,"[" & ctl.name & "]),ctl .القيمة) النهاية إذا كان التالي ط

في هذه الحالة، سيكون لديك استعلام محدث بالكامل، حيث يتم استبدال المعلمات ببيانات حقيقية. اعتمادًا على نوع fid_country (سلسلة، GUID، تاريخ، وما إلى ذلك) قد تحتاج إلى إضافة المزيد التنصيصأو عدم الحصول على الطلب النهائي مثل:

Qr = "اختر Tbl_Country.* من Tbl_Country حيث id_Country = ""GB"""

هذا استعلام متوافق تمامًا مع Access ويمكنك استخدامه لفتح مجموعة سجلات:

تعيين rsQuery = currentDb.openRecordset(qr)

أعتقد أنك انتهيت هنا.

يعد هذا الموضوع بالغ الأهمية عندما يكون هدفك هو تطوير تطبيقات Access. يجب أن تقدم للمستخدمين الطريقة القياسيةطلب البيانات منهم واجهة المستخدم الرسوميةليس فقط لتشغيل الاستعلامات، ولكن أيضًا لتصفية النماذج المستمرة (تمامًا كما يفعل Excel مع خيار "التصفية التلقائية") وإدارة خيارات التقرير. حظ سعيد!

موضوع: إنشاء علاقات بين الجداول. إنشاء استعلام اختيار، مع معلمة واستعلام نهائي.

افتح قاعدة البيانات التي تم إنشاؤها في المعمل السابق مكتب عميد TF .

إنشاء علاقات بين الجداول

حدد كائنًا في نافذة قاعدة البيانات الجداول . انقر على الزر " مخطط بيانات "على شريط الأدوات أو قم بتنفيذ الأمر" خدمة »  « مخطط بيانات "باستخدام قائمة الأوامر. ستظهر نافذة على الشاشة: مخطط بيانات "والنافذة" إضافة الجداول "(الشكل 18).

أرز. 18. مربع حوار مخطط البيانات ومربع حوار إضافة جدول

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

انقل جميع الجداول إلى النافذة " مخطط بيانات " قم بتغيير حجم نوافذ الجدول بحيث يكون النص بأكمله مرئيًا (الشكل 19).

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

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

لإنشاء اتصال، انقر فوق الزر " يخلق ».

أرز. 19. ظهور مخطط بيانات قاعدة البيانات " مكتب عميد TF» قبل إجراء الاتصالات

أرز. 20. مربع حوار لتحديد معلمات الاتصال بين حقول الجدول

وكذلك بحسب مخطط البيانات يتم إنشاء الاتصالات بين الجداول المتبقية (الشكل 21).

أرز. 21. مخطط بيانات قاعدة البيانات " مكتب عميد TF»

قم بالرد عند إغلاق نافذة مخطط البيانات نعم على السؤال حول حفظ التخطيط.

يمكن تغيير العلاقات التي تم إنشاؤها بين جداول قاعدة البيانات.

لتغيير الاتصالات تحتاج إلى استدعاء النافذة " مخطط بيانات " بعد ذلك، ضع مؤشر الماوس على الاتصال الذي يحتاج إلى تغيير وانقر بزر الماوس الأيمن. ستظهر قائمة السياق (الشكل 22):

أرز. 22. قائمة سياق الاتصال

إذا قمت بتحديد الأمر " يمسح "، ثم بعد التأكيد سيتم حذف الاتصال. إذا كنت بحاجة إلى تغيير الاتصال، حدد الأمر " يتغير اتصال " بعد ذلك في النافذة التي تظهر " يتغير روابط " (في الجزء العلوي منه) حدد الحقول الموجودة في الجداول التي تريد ربطها وانقر على الزر " يخلق ».

الطلبات

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

سنقوم بتطوير الطلبات في الوضع مصمم .

في وصول يمكنك إنشاء أنواع الاستعلامات التالية:

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

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

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

    طلب تعديل . هذا استعلام يقوم بتعديل أو نقل سجلات متعددة في عملية واحدة. هناك أربعة أنواع من طلبات التغيير:

1. لحذف إدخال. يقوم هذا الاستعلام بحذف مجموعة من السجلات من جدول واحد أو أكثر.

2. لتحديث السجل. إجراء تغييرات عامة على مجموعة من السجلات في جدول واحد أو أكثر. يسمح لك بتغيير البيانات في الجداول.

3. لإضافة السجلات. إلحاق مجموعة من السجلات من جدول واحد أو أكثر بنهاية جدول واحد أو أكثر.

4. لإنشاء جدول. إنشاء جدول جديد من كل أو جزء من البيانات من جدول واحد أو أكثر.

    الطلبات SQL . تم إنشاؤها باستخدام تعليمات اللغة SQL ، مستعمل في ديسيبل .

اليوم سنبدأ في النظر إلى تطبيق مثل - مدخل البرمجيات المرنة 2003 ، والتي يمكنها إنشاء قواعد البيانات الخاصة بها ( تنسيق ام دي بي)، بالإضافة إلى إنشاء تطبيقات العميل لقواعد البيانات القائمة على MS خادم قاعدة البيانات. موضوع مقال اليوم سيكون إنشاء استعلامات جديدة من Access، وهذا يعني استعلامات بسيطة ووظائف وطرق عرض وإجراءات متنوعة. هنا، يشير الاستعلام إلى كائنات قاعدة البيانات.

حول مايكروسوفت أكسس

مدخل البرمجيات المرنةبرمجةشركة مايكروسوفت، وهي نظام إدارة قواعد البيانات العلائقية. يتمتع بقدرات هائلة عند تنظيم قاعدة بيانات، وإنشاء تطبيق منفصل يمكنه التفاعل مع العديد من أنظمة إدارة قواعد البيانات الأخرى. الحل الأكثر شيوعًا لخادم العميل، حيث يكون العميل عبارة عن تطبيق مكتوب في Access ( لغة VBA والنماذج وأكثر من ذلك بكثير)، والخادم هو نظام إدارة قواعد البيانات (DBMS). مايكروسوفت SQLالخادم. ومع ذلك، يدعم Access أيضًا التفاعل مع أنظمة إدارة قواعد البيانات الأخرى، على سبيل المثال، MySql أو PostgreSQL. يمكننا أن نتحدث عن Access لفترة طويلة، ولكن الغرض من مقال اليوم هو على وجه التحديد إنشاء الاستعلامات ( أشياء) من الوصول.

دعنا ننتقل إلى التدريب والبدء بقاعدة بيانات MDB بسيطة، أي. كيفية إنشاء هذه الاستعلامات ذاتها.

إنشاء استعلامات في Microsoft Access 2003 - قاعدة بيانات MDB

أولا، افتح قاعدة البيانات، ثم انقر على الكائنات "الطلبات"واضغط على الزر "يخلق".

ملحوظة!هذا يعني أن لديك قاعدة بيانات بالفعل.

وستفتح أمامك نافذة جديدة لاختيار نوع الطلب.

دعونا نلقي نظرة على كل نوع من أنواع الطلبات هذه بمزيد من التفصيل.

أنواع الاستعلام في Access 2003 - MDB

البناء- يتم إنشاء طلب بناءً على المُنشئ، إذا جاز التعبير محرر الرسوم البيانيةولكن يمكنك التبديل إلى وضع SQL وكتابة نص الاستعلام كالمعتاد. مباشرة بعد الإطلاق، ستفتح لك نافذة لتحديد الجداول الضرورية أو الاستعلامات الموجودة، حيث يمكن أيضًا استخدام الاستعلامات الموجودة لتحديد البيانات الضرورية، كما لو كان "أداء".

إذا كنت لا تحب القيام بذلك في محرر رسومي، فيمكنك التبديل إلى وضع SQL عن طريق النقر فوق عنصر القائمة "منظر"، ثم "وضع SQL".

طلب بسيط- يمكن القول أن هذا هو نفس مجموعة البناء، فقط نوع مختلف قليلا وإمكانيات أقل.

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

إدخالات مكررة– كما يوحي الاسم، هذا بحث عن السجلات المكررة.

السجلات دون المرؤوسين- هذا بحث عن تلك السجلات المفقودة في جدول معين.

مع قواعد بيانات MDB، فهي كافية، لأنها نادرا ما تستخدم في المؤسسات، وعادة ما تستخدم المخطط التالي - يكتبون عميل منفصل، ويتم تخزين جميع البيانات على الخادم باستخدام نظام إدارة قواعد البيانات (DBMS) في حالتنا - هذا هو MS SQL Server، و العميل هو Access (.adp).

إنشاء استعلامات في Microsoft Access 2003 - قاعدة بيانات MS SQL Server

دعونا نلقي نظرة على إنشاء استعلامات جديدة من عميل Access استنادًا إلى MS SQL Server ( من المفترض أن لديك بالفعل عميل adp وقاعدة بيانات تعتمد على MS SQL Server).

ملحوظة! لا تعني هذه المقالة تعلم SQL، لذا بحلول الوقت الذي تقرأ فيه هذه المقالة، يجب أن تكون قد فهمت أساسيات SQL ومفهوم الكائنات الأساسية في قاعدة البيانات مثل: العرض والوظيفة والإجراء. إذا كنت جديدًا تمامًا في هذا الأمر، فمن المستحسن أولاً إتقان لغة SQL، نظرًا لأن العديد من المصطلحات أدناه لن تكون واضحة لك. مقالات مقترحة:

  • ما هي طرق العرض VIEWS في قواعد البيانات؟ ولماذا هم بحاجة؟

البداية هي نفسها، افتح المشروع، ثم انقر على الكائنات "الطلبات"واضغط على الزر "يخلق".

والآن بمزيد من التفاصيل.

أنواع الاستعلامات في Access 2003 - قاعدة بيانات MS SQL Server

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

اختر * من my_test_tabl_func(par1, par2 ……)

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

بعد ذلك، إذا كنت تريد إضافة معلمات واردة، يمكنك ببساطة وضع علامة @ واسم المتغير في الشرط، على سبيل المثال، كما يلي:

حدد * من الجدول حيث kod = @par

بعد على اللوحة في خصائص الوظيفة

على علامة التبويب "معلمات الوظيفة"ستظهر المعلمات التي حددتها، ويجب إرسالها بالترتيب المشار إليه هنا.

عرض المنشئ- هذا خلق فكرة عادية بين الناس العاديين "فيوها".

منشئ الإجراءات المخزنة– إنشاء إجراء باستخدام المُنشئ، المبدأ هو نفسه كما في الوظائف المذكورة أعلاه. اسمحوا لي أن أذكرك أن الإجراء عبارة عن مجموعة بيانات SQLسواء لأخذ العينات أو تغيير البيانات.

إدخال إجراء مخزن- هذا هو إنشاء إجراء باستخدام محرر النصوص، أي. إنشاء إجراء يدويا بحتة. في النهاية، نفس الشيء مثل استخدام المنشئ. عند إنشاء الكائنات في محرر النصتم بالفعل إنشاء قالب الإنشاء تلقائيًا عن طريق الوصول.

إدخال وظيفة العدديةيقوم بإنشاء دالة تُرجع قيمة. تم إنشاؤها باستخدام محرر النصوص.

إدخال وظيفة الجدوليقوم بإنشاء دالة تقوم بإرجاع مجموعة من السجلات. تبدو وكأنها وظيفة مدمجة.

من أجل التمييز بينها في عميل الوصول، لديهم أيقونات مختلفة، نفس تلك التي تراها عند إنشاء هذا الكائن أو ذاك.

عند إنشاء كل هذه الكائنات، يتم حفظها على الخادم، ويمكنك استخدامها ليس فقط من مشروع adp الخاص بك، ولكن أيضًا من العملاء الآخرين.

بالطبع، يمكنك إنشاء كل هذه الكائنات على الخادم باستخدام، على سبيل المثال، Enterprise Manager ( تم إهماله، والآن SQL Server استوديو الإدارة )، ولكننا اليوم نفكر في إمكانية إنشاء هذه الكائنات من عميل الوصول.

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

الغرض من العمل: دراسة تقنيات بناء واستخدام الاستعلامات لاختيار البيانات.

قبل التنفيذ العمل المختبريتحتاج إلى دراسة الأقسام التالية:

أنواع الطلبات؛

إنشاء استعلامات في وضع التصميم؛

قواعد لتسجيل شروط اختيار البيانات.

استخدام الوظائف المضمنة؛

إنشاء الحقول المحسوبة.

استخدام نماذج إدخال/إخراج البيانات؛

إنشاء استعلامات متقاطعة ونشطة.

المهمة 1: إنشاء استعلام بسيط.

1. افتح قاعدة البيانات معهد.

2. انقر داخل إطار قاعدة البيانات على كائن الاستعلامات.

3. في نافذة الاستعلامات، انقر فوق الزر إنشاء.

4. في نافذة استعلام جديد، حدد تصميم ثم انقر فوق موافق.

5. في نافذة إضافة جدول، أضف الجداول الأربعة جميعها وأغلق النافذة.

6. اضبط حجم وموقع نوافذ الجدول في مخطط البيانات.

7. اسحب أسماء الحقول المقابلة (اسم الكلية، المجموعة N، اسم التخصص، دفتر التقديرات N، الاسم الكامل) من نوافذ الجدول إلى نموذج الطلب الموجود أسفل مخطط البيانات، مع مراعاة ترتيبها المحدد. استخدم عمود نموذج واحدًا لكل حقل يجب تضمينه في التحديد.

8. قم بعرض التحديد عن طريق تنفيذ الأمر VIEW/Table Mode أو عن طريق النقر فوق زر شريط الأدوات عرض.

9. قم بالعودة إلى وضع مصمم الاستعلام إذا كان التحديد يحتوي على أخطاء وقم بتصحيح الاستعلام.

10. أغلق الطلب. سيظهر مربع حوار يطلب منك تأكيد ما إذا كنت تريد حفظه أم لا. اسم الاستعلام Select1.

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

1. في نافذة قاعدة البيانات، انسخ استعلام Select1 عن طريق سحب رمز الاستعلام أثناء الضغط على مفتاح Ctrl.

2. أعد تسمية الاستعلام إلى التحديد حسب التجاري. للقيام بذلك، انقر بزر الماوس الأيمن على اسم الطلب واختر قائمة السياقإعادة تسمية العنصر.

3. افتح الاستعلام في طريقة عرض التصميم. أضف الحقل التجاري إلى طلبك.

4. أدخل القيمة نعم في حقل شرط التحديد للحقل التجاري.

5. قم بتعطيل العرض عند مطالبتك بقيمة الحقل التجاري. للقيام بذلك، قم بإيقاف تشغيل مربع اختيار العرض لهذا الحقل.

6. استعرض التحديد بالنقر فوق الزر "تشغيل" الموجود على شريط الأدوات.

7. أغلق الطلب، مع حفظ تخطيط الطلب.

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


1. في نافذة قاعدة البيانات، انقر فوق الزر إنشاء وحدد خيار التصميم.

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

3. أدخل تعبير الصيغة في الحقل شرط التحديد لتاريخ الميلاد وفقًا للمهمة. استخدم أداة Access Expression Builder. للقيام بذلك، ضع المؤشر في الخلية المقابلة لجدول وصف الطلب وانقر على زر شريط الأدوات Build.

4. في نافذة Expression Builder، أدخل اسم الوظيفة DMax. للقيام بذلك، قم بتوسيع قائمة الوظائف في الجزء الأيمن من المنشئ وحدد الوظائف المضمنة. بعد ذلك، في النافذة الفرعية الوسطى، حدد فئة الوظيفة حسب المجموعة الفرعية، وفي النافذة الفرعية اليمنى، حدد وظيفة DMax(). ستظهر الوظيفة المقابلة في نافذة المنشئ الرئيسية مع الإشارة إلى الوسائط الخاصة بها.

5. قم بإزالة الوسيط الأول للوظيفة وأدخل مكانها اسم حقل تاريخ الميلاد، إما عن طريق الإدخال المباشر للوحة المفاتيح، أو عن طريق النقر على قائمة الجداول في الجزء الأيسر، ثم تحديد جدول الطالب والحقل فيه. في الحالة الأخيرة، تحتاج إلى إزالة الجزء غير المستخدم من سطر التعبير. بعد ذلك، أدخل قيم وسيطات الدالة المتبقية، بحيث تأخذ الدالة الشكل النهائي التالي: DMax("[Date of Birth]";"Student";"=851")

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

7. اعرض نتيجة عملك للمعلم.

المهمة 4.قم بإنشاء استعلام لحساب عدد الطلاب التجاريين في كل مجموعة.

1. إنشاء طلب جديدباستخدام جداول الكلية، المجموعة، الطالب.

3. اضبط شرط التحديد للعمود الثالث على نعم.

4. قم بتعيين العمودين الأول والثاني من النموذج للفرز بترتيب تصاعدي.

5. تعطيل عرض بيانات العمود الثالث.

6. أدخل الحقل التجاري في العمود الرابع واستبدل اسم العمود برقم التجاري. للقيام بذلك، يجب أن تحتوي الخلية التي تحتوي على اسم الحقل على: الرقم التجاري: تجاري (يتم الفصل بين أسماء الأعمدة الجديدة والقديمة بنقطتين)

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

8. قم بعرض التحديد الإجمالي بالنقر فوق زر شريط الأدوات "تشغيل" أو عن طريق تنفيذ أمر الاستعلام/التشغيل.

9. ارجع إلى وضع تصميم الاستعلام بالنقر فوق الزر عرض لوحة المعلومات.

10. احفظ الطلب مع إعطائه الاسم عد تجاري حسب المجموعات.

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

1. باستخدام المصمم، قم بإنشاء استعلام جديد باستخدام جداول الكلية والمجموعة والطلاب.

2. أدخل حقل اسم الكلية في العمود الأول من نموذج الطلب، وحقل المجموعة ن في العمود الثاني، والحقل التجاري في العمود الثالث.

3. قم بتنفيذ الأمر QUERY/Cross، أو انقر فوق زر شريط الأدوات "نوع الاستعلام" وحدد Cross من القائمة.

4. حدد القيم الموجودة في صف النموذج الجدولي عن طريق توسيع القائمة في الخلايا: للعمود الأول، عناوين الصفوف، للعمود الثاني – عناوين الأعمدة، للعمود الثالث – القيمة.

5. حدد وظيفة العد لعملية المجموعة في العمود الثالث.

6. قم بعرض العينة المتقاطعة بالنقر فوق الزر "تشغيل".

7. لإنشاء عمود ملخص، ارجع إلى وضع التصميم وأدخل حقلاً تجاريًا آخر في نموذج الطلب. أدخل اسم عمود الإجمالي قبل اسم هذا الحقل: في صف عملية المجموعة، حدد العدد، وفي الصف الجدولي، حدد عناوين الصفوف.

8. في وضع الجدول، قم بتقليل عرض أعمدة جدول التحديد. للقيام بذلك، حدد الأعمدة التي تحتوي على بيانات في مجموعات وقم بتشغيل الأمر FORMAT/Column Width/Fit to Data Width.

9. عرض التحديد المحرر وحفظ الطلب مع إعطائه الاسم عدد التجاريين حسب المجموعات والكليات.

10. يظهر الشكل 1 عرضًا تقريبيًا لعينة مقطعية.

رسم بياني 1. - أخذ عينات عشوائية من عدد طلاب التجارة حسب المجموعات والكليات.

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

1. باستخدام المصمم، قم بإنشاء استعلام جديد باستخدام جدول الطالب واحد.

2. أدخل كافة حقول الجدول في السطر الأول من نموذج الطلب.

3. أدخل النص في خلية السطر شرط التحديد لحقل المجموعة N: [أدخل رقم المجموعة]

4. قم بتشغيل الطلب وأدخل رقم إحدى المجموعات في مربع الحوار الذي يظهر. تصفح التحديد. احفظ الطلب وقم بتسميته الاستعلام بالمعلمة.

5. اعرض نتيجة عملك للمعلم.




قمة