ACC: كيفية إنشاء قيم عليا N لكل استعلام المجموعة

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

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

الطريقة الثانية المذكورة في هذا المقال يفترض أن تكون مألوفة مع Visual Basic for Applications بواسطة إنشاء تطبيقات Microsoft Access استخدام أدوات البرمجة المتوفرة مع Microsoft Access. لمزيد من المعلومات حول Visual Basic for Applications الرجاء الرجوع إلى الإصدار الخاص بك من دليل "إنشاء تطبيقات مع Microsoft Access".
معلومات أخرى
لسرد العلوي N العناصر فقط داخل مجموعة في استعلام، يجب عليك تحديد معايير التي بقراءة العمود التجميع في الاستعلام بشكل حيوي ويقوم بتحديد عمود عنصر إلى القيم العليا N داخل كل مجموعة. الطريقة الأولى يستخدم استعلام فرعي SQL بشكل حيوي إنشاء قائمة بالعناصر N العلوي لكل مجموعة ويستخدم ثم هذه القائمة كمعايير عمود العنصر باستخدام عامل التشغيل IN. الطريقة الثانية يستخدم دالة معرفة من قبل المستخدم لإرجاع العنصر Nth داخل مجموعة محددة ثم يُستخدم مع > = عامل التشغيل لإرجاع Nth العناصر أكبر.

الطريقة الأولى

يظهر المثال التالي كيفية إنشاء استعلام في قاعدة بيانات نموذج Northwind يعرض الوحدات_بالمخزن ثلاثة العلوي لكل معرف_الفئة. الاستعلام يستخدم استعلام فرعي SQL التي تقوم بإرجاع الوحدات_بالمخزن ثلاثة العلوي إعطاء معرف_الفئة معينة, ومن ثم يستخدم عامل التشغيل IN لتحديد السجلات في الاستعلام الرئيسي.

ملاحظة: في المثال، المعايير في الخطوة 5 تسطير أسفل السطر (_) في نهاية سطر يتم استخدام حرف متابعة سطر. قم بإزالة تسطير أسفل السطر "من نهاية السطر عند إعادة إنشاء المعايير.

  1. افتح نموذج قاعدة البيانات Northwind.mdb.
  2. انقر فوق علامة التبويب استعلامات ثم انقر فوق جديد.
  3. انقر فوق طريقة العرض "تصميم" ثم انقر فوق موافق.
  4. في مربع الحوار "إظهار جدول" ، أضف في الفئات والمنتجات الجداول ثم انقر فوق إغلاق.
  5. أضف الحقول التالية إلى شبكة تصميم الاستعلام:
    حقل : CategoryName
    الفرز: تصاعدي

    الحقل: ProductName

    الحقل: الوحدات_بالمخزن
    الفرز: تنازلي
    المعايير: في (تحديد أعلى 3 [UnitsInStock] من المنتجات Where _
    [معرف_الفئة] = [فئات]. [معرف_الفئة] ترتيب حسب تنازلي [UnitsInStock])
  6. تشغيل الاستعلام. لاحظ أن الاستعلام تقوم بإرجاع العلوي الوحدات_بالمخزن ثلاث لكل فئة.

الطريقة الثانية

يوضح المثال التالي كيفية إنشاء استعلام في قاعدة بيانات نموذج Northwind التي تعرض في آخر خمسة الطلبات لكل العملاء. الاستعلام يستخدم دالة معايير تسمى NthInGroup() إرجاع OrderDate خامس الأكثر حداثة إعطاء معرف العميل معينة. باستخدام > = عامل التشغيل مع هذه الدالة تقوم بإرجاع كافة الطلبات التي تم طلبها في أو بعد OrderDate خامس الأحدث لكل عميل:

  1. افتح نموذج قاعدة البيانات Northwind.mdb.
  2. إنشاء وحدة نمطية جديدة ثم قم بإضافة السطر التالي Declarations المقطع إذا لم تكن هناك:
    الخيار Explicit
  3. إنشاء الإجراء التالي:
          Function NthInGroup(GroupID, N)      ' Returns the Nth Item in GroupID for use as a Top N per group      ' query criteria.      Static LastGroupId, LastNthInGroup      Dim ItemName, GroupIDName, GDC, SearchTable      Dim SQL As String, rs As Recordset, db As DATABASE      If (LastGroupId = GroupID) Then         ' Returned saved result if function is called with the         ' same GroupID more than once in a row.         NthInGroup = LastNthInGroup      Else         ' Set the SQL statement parameters. These are the only items         ' that need to be customized in this function.         ' Set to Item field name.         ItemName = "OrderDate"         ' Set to Group ID field name.         GroupIDName = "CustomerID"         ' GroupID Delimiter Character:         ' For Text use "'" (Note that this is a quotation mark, a space,         ' an apostrophe, a space, and then a quotation mark. The spaces         ' are necessary for SQL statements), Date "#", Numeric ""         GDC = "'"         ' Set to search table.         SearchTable = "Orders"         ' Build a Top N SQL statement dynamically given N and         ' GroupID as parameters. Note that the sort is by the         ' item in descending order, in order to get the Top N         ' largest items.         SQL = "Select Top " & N & " [" & ItemName & "] "         SQL = SQL & "From [" & SearchTable & "] "         SQL = SQL & "Where [" & GroupIDName & "]=" & GDC & GroupID & GDC _            & " "         SQL = SQL & "Order By [" & ItemName & "] Desc"         ' Open up recordset on Top N SQL statement and read the         ' last record to get the smallest item in the Top N.         Set db = CurrentDb()         Set rs = db.OpenRecordset(SQL)         If (rs.BOF And rs.EOF) Then            ' No matches found, return a null.            LastNthInGroup = Null            LastGroupId = GroupID            NthInGroup = LastNthInGroup            Else               ' Return the smallest Top N item in the group.               rs.MoveLast               LastNthInGroup = rs(ItemName)               LastGroupId = GroupID               NthInGroup = LastNthInGroup             End If          End If       End Function						
  4. ترجمة في الوحدة النمطية ومن ثم إغلاق ثم قم بحفظ الوحدة النمطية كـ basTopN.
  5. انقر فوق علامة التبويب استعلامات ثم انقر فوق جديد.
  6. انقر فوق طريقة العرض "تصميم" ثم انقر فوق موافق.
  7. في مربع الحوار "إظهار جدول" ، أضف على العملاء "و" جداول الطلبات. انقر فوق إغلاق.
  8. أضف الحقول التالية إلى شبكة تصميم الاستعلام:
    حقل : معرف العميل
    الفرز: تصاعدي


    الحقل: OrderID

    الحقل: تاريخ ترتيب
    الفرز: تنازلي
    المعايير: > = NthInGroup([Customers].[CustomerID],5)
  9. تشغيل الاستعلام. لاحظ أن كافة العملاء الذين لديهم الطلبات الخمسة الأقل تقوم الاستعلام بإرجاع الطلبات أحدث خمسة. بالنسبة للعملاء مع الطلبات أقل من خمسة الاستعلام بإرجاع كافة الطلبات.
مراجع
لمزيد من المعلومات حول استعلامات فرعية البحث عن الاستعلامات الفرعية ثم الاستعلامات الفرعية SQL باستخدام فهرس التعليمات الخاص بـ Microsoft Access 97.

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 153747 - آخر مراجعة: 12/04/2015 15:04:18 - المراجعة: 3.3

Microsoft Access 95 Standard Edition, Microsoft Access 97 Standard Edition

  • kbnosurvey kbarchive kbmt kbhowto kbprogramming KB153747 KbMtar
تعليقات