توفر هذه المقالة العديد من الأمثلة على التعبيرات في Access. التعبير هو مجموعة من العوامل الرياضية أو المنطقية والثوابت والدالات وحقول الجدول وعناصر التحكم والخصائص المحسوبة في قيمة واحدة. يمكنك استخدام التعبيرات في Access لحساب القيم والتحقق من صحة البيانات وتعيين قيمة افتراضية.
في هذه المقالة
النماذج والتقارير
تعرض الجداول الموجودة في هذا القسم أمثلة للتعبيرات التي تحسب قيمة في عنصر التحكم الموجود في نموذج أو تقرير. لإنشاء عنصر تحكم محسوب، يمكنك إدخال تعبير في الخاصية ControlSource لعنصر التحكم، بدلاً من حقل جدول أو استعلام.
ملاحظة يمكنك أيضًا استخدام التعبيرات في نموذج أو تقرير عند تمييز البيانات باستخدام التنسيق الشرطي.
عمليات النص
تستخدم التعبيرات الموجودة في الجدول التالي العاملين & (علامة العطف) و+ (علامة الجمع) لدمج السلاسل النصية أو الدالات المضمّنة لمعالجة سلسلة نصية، أو بخلاف ذلك، تعمل على النص لإنشاء عنصر تحكم محسوب.
التعبير |
النتيجة |
---|---|
="N/A" |
يعرض غير متوفّر. |
=[FirstName] & " " & [LastName] |
يعرض القيم الموجودة في حقول جدول تسمى الاسم الأول واسم العائلة. في هذا المثال، يُستخدم العامل & لدمج حقل الاسم الأول وحرف المسافة (مُحاط بعلامات اقتباس) وحقل اسم العائلة. |
=Left([ProductName], 1) |
يستخدم الدالة Left لعرض الحرف الأول من قيمة حقل أو عنصر تحكم يُسمى ProductName. |
=Right([AssetCode], 2) |
يستخدم الدالة Right لعرض آخر حرفين من قيمة حقل أو عنصر تحكم يسمى AssetCode. |
=Trim([Address]) |
يستخدم الدالة Trim لعرض قيمة عنصر تحكم العنوان، مع إزالة أي مسافات بادئة أو لاحقة. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
يستخدم الدالة IIf لعرض قيم عناصر تحكم المدينة والرمز البريدي إذا كانت قيمة عنصر تحكم المنطقة فارغة؛ وإلا فسيتم عرض قيم عناصر تحكم المدينة والمنطقة والرمز البريدي مفصولة بمسافات. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
يستخدم القيمة Null (فارغة) والعامل + لعرض قيم عناصر تحكم المدينة والرمز البريدي، إذا كانت قيمة عنصر تحكم أو حقل المنطقة فارغة؛ وإلا فسيتم عرض قيم عناصر تحكم أو حقول المدينة والمنطقة والرمز البريدي مفصولة بمسافات. إنّ استخدام القيمة Null يعني أنه إذا كان أي مكون للتعبير فارغًا يكون التعبير بالكامل فارغًا أيضًا. يدعم العامل + استخدام القيمة Null، ولكن لا يدعمه العامل &. |
رؤوس الصفحات وتذييلاتها
يمكنك استخدام خصائص الصفحة والصفحات لعرض أرقام الصفحات في النماذج والتقارير أو طباعتها. تتوفر خصائص الصفحة والصفحات فقط أثناء معاينة الطباعة أو الطباعة، حيث لا تظهر في ورقة خصائص النموذج أو التقرير. عادةً، يمكنك استخدام هذه الخصائص بوضع مربع نص في قسم رأس أو تذييل النموذج أو التقرير ثم استخدام تعبير مثل التعبيرات التي تظهر في الجدول التالي.
للحصول على مزيد من المعلومات حول استخدام رؤوس الصفحات وتذييلاتها في النماذج والتقارير، راجع المقالة إدراج أرقام الصفحات في نموذج أو تقرير.
التعبير |
النتيجة |
---|---|
=[Page] |
1 |
="Page " & [Page] |
الصفحة 1 |
="Page " & [Page] & " of " & [Pages] |
صفحة 1 من 3 |
=[Page] & " of " & [Pages] & " Pages" |
صفحة 1 من 3 |
=[Page] & "/" & [Pages] & " Pages" |
1/3 صفحات |
=[Country/region] & " - " & [Page] |
المملكة المتحدة - 1 |
=Format([Page], "000") |
001 |
="Printed on: " & Date() |
تاريخ الطباعة: 12/31/17 |
العمليات الحسابية
يمكنك استخدام تعبيرات لإضافة القيم وطرحها وضربها وقسمتها في اثنين من عناصر التحكم أو الحقول أو أكثر. يمكنك أيضاً استخدام تعبيرات لإجراء عمليات حسابية على التواريخ. على سبيل المثال، لنفترض أنّ لديك حقل جدول تاريخ/وقت يسمى تاريخ إجراء الطلب. في الحقل أو عنصر التحكم المرتبط بالحقل، يقوم التعبير =[RequiredDate] - 2 قيمة تاريخ/وقت تساوي يومين قبل القيم الحالية في حقل تاريخ إجراء الطلب.
التعبير |
النتيجة |
---|---|
=[Subtotal]+[Freight] |
مجموع قيم عنصري تحكم أو حقلي الإجمالي الفرعي والشحن. |
=[RequiredDate]-[ShippedDate] |
الفاصل الزمني بين قيم تاريخ عنصري تحكم أو حقلي تاريخ إجراء الطلب وتاريخ الشحن. |
=[Price]*1.06 |
حاصل ضرب قيمة عنصر تحكم أو حقل و1.06 (إضافة 6 بالمئة لقيمة السعر). |
=[Quantity]*[Price] |
حاصل ضرب قيم عنصري تحكم أو حقلي الكمية والسعر. |
=[EmployeeTotal]/[CountryRegionTotal] |
ناتج قسمة قيم عنصري تحكم أو حقلي إجمالي الموظفين وإجمالي البلد/المنطقة. |
ملاحظة عند استخدام عامل حسابي (+ و- و* و/) في تعبير، وكانت قيمة أحد عناصر التحكم الموجودة في التعبير فارغة، ستكون نتيجة التعبير بالكامل فارغة، ويُعرف ذلك باستخدام القيمة Null. في حالة وجود قيمة فارغة في أي سجل من سجلات أحد عناصر التحكم التي تستخدمها في التعبير، يمكنك تجنب استخدام القيمة Null عن طريق تحويل القيمة الفارغة إلى الصفر باستخدام الدالة Nz، على سبيل المثال، =Nz([Subtotal])+Nz([Freight]).
القيم في عناصر التحكم الأخرى
في بعض الأحيان، تحتاج إلى القيمة الموجودة في مكان آخر، كما هو الحال في حقل أو عنصر تحكم في نموذج أو تقرير آخر. يمكنك استخدام تعبير لعرض القيمة من حقل أو عنصر تحكم آخر.
يسرد الجدول التالي أمثلة للتعبيرات التي يمكنك استخدامها في عناصر تحكم محسوبة في النماذج.
التعبير |
النتيجة |
---|---|
=Forms![Orders]![OrderID] |
قيمة عنصر التحكم OrderID في نموذج الطلبات. |
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] |
قيمة عنصر التحكم الإجمالي الفرعي للطلب في النموذج الفرعي المسمى النموذج الفرعي للطلبات في نموذج الطلبات. |
=Forms![Orders]![Orders Subform]![ProductID].Column(2) |
قيمة العمود الثالث في معرف المنتج، مربع قائمة متعدد الأعمدة في نموذج فرعي يسمى النموذج الفرعي للطلبات في نموذج الطلبات. (لاحظ أن 0 يشير إلى العمود الأول و1 يشير إلى العمود الثاني وهكذا.) |
=Forms![Orders]![Orders Subform]![Price] * 1.06 |
حاصل ضرب قيمة عنصر تحكم السعر في النموذج الفرعي المسمى «النموذج الفرعي للطلبات» في نموذج الطلبات و1,06 (إضافة 6% لقيمة عنصر تحكم السعر). |
=Parent![OrderID] |
قيمة عنصر التحكم معرف الطلب في النموذج الرئيسي أو الأصلي للنموذج الفرعي الحالي. |
توضح التعبيرات المذكورة في الجدول التالي بعض الطرق اللازمة لاستخدام عناصر تحكم محسوبة في التقارير. تشير التعبيرات إلى خاصية Report.
التعبير |
النتيجة |
---|---|
=Report![Invoice]![OrderID] |
قيمة عنصر التحكم المسمى "OrderID" في التقرير المسمى "الفاتورة". |
=Report![Summary]![Summary Subreport]![SalesTotal] |
قيمة عنصر تحكم إجمالي المبيعات في التقرير الفرعي المسمى "التقرير الفرعي للملخص" في تقرير الملخص. |
=Parent![OrderID] |
قيمة عنصر التحكم مُعرّف الطلب في التقرير الرئيسي أو الأصلي للتقرير الفرعي الحالي. |
عد القيم وجمعها وحساب متوسطها
يمكنك استخدام نوع دالة تسمى دالة تجميعية لحساب قيم أحد عناصر التحكم أو الحقول أو أكثر. على سبيل المثال، يمكنك حساب إجمالي مجموعة لتذييل المجموعة في تقرير أوإجمالي فرعي لطلب لعناصر السطر المضمنة في نموذج. يمكنك أيضًا حساب عدد العناصر الموجودة في حقل واحد أو أكثر أو حساب القيمة المتوسطة.
توضّح التعبيرات في الجدول التالي بعض الطرق اللازمة لاستخدام دالات مثل Avg وCount وSum.
التعبير |
الوصف |
---|---|
=Avg([Freight]) |
يستخدم الدالة Avg لعرض متوسط قيم حقل جدول أو عنصر تحكم يسمى "الشحن". |
=Count([OrderID]) |
يستخدم الدالة Count لعرض عدد السجلات في عنصر تحكم OrderID. |
=Sum([Sales]) |
يستخدم الدالة Sum لعرض مجموع قيم عنصر تحكم المبيعات. |
=Sum([Quantity]*[Price]) |
يستخدم الدالة Sum لعرض مجموع حاصل ضرب قيم عنصري تحكم الكمية والسعر. |
=[Sales]/Sum([Sales])*100 |
يعرض النسبة المئوية للمبيعات، التي تُحدَّد عن طريق قسمة قيمة عنصر تحكم المبيعات على مجموع كل قيم عنصر تحكم المبيعات. إذا قمتَ بتعيين الخاصية Format لعنصر التحكم على النسبة المئوية، فلا تُضمِّن *100 في التعبير. |
للحصول على مزيد من المعلومات حول استخدام الوظائف التجميعية وتجميع القيم الموجودة في الحقل والأعمدة، اطّلع على المقالات جمع البيانات باستخدام استعلام وحساب البيانات باستخدام استعلام وعرض إجمالي الأعمدة في ورقة بيانات باستخدام صف الإجماليات وعرض إجمالي الأعمدة في ورقة البيانات.
دالات SQL التجميعية
يمكنك استخدام نوع الدالة التي تسمى SQL أو دالة المجال التجميعية عندما تكون بحاجة إلى جمع القيم أو حسابها بشكل انتقائي. يتكوّن "المجال" من حقل واحد أو أكثر في جدول واحد أو أكثر، أو عنصر تحكم واحد أو أكثر في نموذج أو تقرير واحد أو أكثر. على سبيل المثال، يمكنك مطابقة القيم الموجودة في حقل جدول مع القيم الموجودة في عنصر التحكم في نموذج.
التعبير |
الوصف |
---|---|
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) |
يستخدم الدالة DLookup لعرض قيمة حقل اسم جهة الاتصال في جدول المورّدين حيث تطابق قيمة حقل مُعرف المورد في الجدول قيمة عنصر تحكم مُعرّف المورد في نموذج المورِّدين. |
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) |
يستخدم الدالة DLookup لإرجاع قيمة الحقل اسم جهة الاتصال في جدول المورّدين حيث تطابق قيمة حقل مُعرّف المورّد في الجدول قيمة عنصر التحكم مُعرّف المورّد في نموذج المورّدين الجديد. |
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") |
يستخدم الدالة DSum لإرجاع مجموع إجمالي القيم الموجودة في حقل كمية الطلب في جدول الطلبات حيث يكون مُعرّف العميل هو RATTC. |
=DCount("[Retired]","[Assets]","[Retired]=Yes") |
يستخدم الدالة DCount لإرجاع عدد القيم "نعم" في حقل المُستبعد(حقل نعم/لا) في جدول الأصول. |
عمليات التاريخ
يعد تعقب التواريخ والأوقات نشاطًا أساسيًّا لقاعدة البيانات. على سبيل المثال، يمكنك حساب عدد الأيام التي انقضت منذ تاريخ الفاتورة لتأخير الحسابات المدينة. يمكنك تنسيق التواريخ والأوقات بطرق عديدة، كما هو موضّح في الجدول التالي.
التعبير |
الوصف |
---|---|
=Date() |
يستخدم الدالة Date لعرض التاريخ الحالي بالصيغة mm-dd-yy، حيث يُمثِّل mm الشهر (من 1 إلى 12) وdd هو اليوم (من 1 إلى 31) وyy هو آخر رقمين من السنة (من 1980 إلى 2099). |
=Format(Now(), "ww") |
يستخدم الدالة Format لعرض رقم الأسبوع في السنة للتاريخ الحالي، حيث يُمثِّل ww الأسابيع من 1 إلى 53. |
=DatePart("yyyy", [OrderDate]) |
يستخدم الدالة DatePart لعرض السنة المكوَّنة من أربعة أرقام لقيمة عنصر التحكم OrderDate. |
=DateAdd("y", -10, [PromisedDate]) |
يستخدم الدالة DateAdd لعرض تاريخ يسبق قيمة عنصر التحكم PromisedDate بـ 10 أيام. |
=DateDiff("d", [OrderDate], [ShippedDate]) |
يستخدم الدالة DateDiff لعرض الفرق في عدد الأيام بين قيم عنصر التحكم OrderDate وShippedDate. |
=[InvoiceDate] + 30 |
يستخدم عمليات حسابية على تواريخ لحساب التاريخ بعد 30 يومًا من التاريخ الموجود في عنصر تحكم أو حقل InvoiceDate. |
الشروط الخاصة بقيمتين فقط
تستخدم أمثلة التعبيرات في الجدول التالي الدالة IIf لعرض إحدى القيمتين المحتملتين. تقوم بإدخال الدالة IIf في الوسيطات الثلاث التالية: الوسيطة الأولى هي تعبير يجب أن يرجع القيمة True أو False. وتُمثِّل الوسيطة الثانية القيمة المراد إرجاعها إذا كان التعبير صوابًا، والوسيطة الثالثة هي القيمة المراد إرجاعها إذا كان التعبير خطأ.
التعبير |
الوصف |
---|---|
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") |
يستخدم الدالة IIf (Immediate If) لعرض الرسالة "تم تأكيد الطلب" إذا كانت قيمة عنصر التحكم المؤكد هي Yes؛ وإلا، فسيتم عرض الرسالة "Order Not Confirmed." |
=IIf(IsNull([Country/region]), " ", [Country]) |
يستخدم الدالتين IIf وIsNull لعرض سلسلة فارغة إذا كانت قيمة عنصر تحكم المنطقة/البلد فارغة؛ وإلا، فسيتم عرض قيمة عنصر تحكم المنطقة/البلد. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
يستخدم الدالتين IIf وIsNull لعرض قيم عنصري تحكم المدينة والرمز البريدي إذا كانت قيمة عنصر تحكم المنطقة فارغة؛ وإلا فسيتم عرض قيم عناصر تحكم أو حقول المدينة والمنطقة والرمز البريدي. |
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
يستخدم الدالتين IIf وIsNull لعرض الرسالة "التحقّق من وجود تاريخ مفقود" إذا كانت نتيجة طرح تاريخ الشحن من تاريخ إجراء الطلب فارغة؛ وإلا، فسيتم عرض الفاصل الزمني بين قيم عنصري تحكم تاريخ إجراء الطلب وتاريخ الشحن. |
الاستعلامات وعوامل التصفية
يتضمن هذا القسم أمثلة للتعبيرات التي يمكنك استخدامها لإنشاء حقل محسوب في استعلام أو لتوفير معايير لاستعلام. الحقل المحسوب هو عمود في استعلام ينتج من تعبير. على سبيل المثال، يمكنك حساب قيمة أو جمع القيم النصية مثل الأسماء الاولي وأسماء العائلة أو تنسيق جزء من تاريخ.
يمكنك استخدام المعايير الموجودة في استعلام لتحديد السجلات التي تتعامل معها. على سبيل المثال، يمكنك استخدام العامل Between لتوفير تاريخ بدء وتاريخ انتهاء، كما يقصر نتائج الاستعلام على الطلبات التي تم شحنها بين هذه التواريخ.
فما يلي أمثلة للتعبيرات المستخدمة في الاستعلامات.
عمليات النص
تستخدم التعبيرات الموجودة في الجدول التالي العاملين & و+ لدمج السلاسل النصية أو استخدام الدالات المضمَّنة لتعمل على سلسلة نصية أو بخلاف ذلك تعمل على النص لإنشاء حقل محسوب.
التعبير |
الوصف |
---|---|
FullName: [FirstName] & " " & [LastName] |
ينشئ حقلاً يسمى الاسم بالكامل يعرض القيم في حقلي FirstName وLastName، مفصولة بمسافة. |
Address2: [City] & " " & [Region] & " " & [PostalCode] |
يُنشئ حقلاً يسمى Address2 يعرض القيم في حقول المدينة والمنطقة وPostalCode مفصولة بمسافات. |
ProductInitial: Left([ProductName], 1) |
ينشئ حقلاً يسمى الحرف الأول من المنتج ثم يستخدم الدالة Left لعرض الحرف الأول من قيمة حقل اسم المنتج في حقل الاسم الأول من المنتج. |
TypeCode: Right([AssetCode], 2) |
ينشئ حقلاً يسمى رمز النوع ثم يستخدم الدالة Right لعرض أول حرفين من القيم في الحقل رمز الأصل. |
AreaCode: Mid([Phone],2,3) |
ينشئ حقلاً يسمى رمز المنطقة ثم يستخدم الدالة Mid لعرض الثلاثة أحرف بداية من الحرف الثاني للقيمة الموجودة في حقل الهاتف. |
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 |
يضع تسمية للحقل المحسوب "السعر المحدد"، وتستخدم الدالة CCur لحساب إجماليات عنصر السطر باستخدام خصم مطبق. |
العمليات الحسابية
يمكنك استخدام تعبيرات لإضافة القيم وطرحها وضربها وقسمتها في اثنين من عناصر التحكم أو الحقول أو أكثر. يمكنك أيضاً إجراء عمليات حسابية على التواريخ. على سبيل المثال، لنفترض أنّ لديك حقل تاريخ/وقت يسمى تاريخ إجراء الطلب. يعرض التعبير =[RequiredDate] - 2 قيمة تاريخ/وقت تساوي يومين قبل القيمة الموجودة في الحقل تاريخ إجراء الطلب.
التعبير |
الوصف |
---|---|
PrimeFreight: [Freight] * 1.1 |
ينشئ حقلاً يسمى PrimeFreight ثم يعرض رسوم الشحن بالإضافة إلى 10 بالمئة في الحقل. |
OrderAmount: [Quantity] * [UnitPrice] |
ينشئ حقلاً يسمى OrderAmount، ثم يعرض حاصل ضرب القيم في حقلي الكمية وUnitPrice. |
LeadTime: [RequiredDate] - [ShippedDate] |
ينشئ حقلاً يسمى LeadTime ثم يعرض الفرق بين القيم في حقلي RequiredDate وShippedDate. |
TotalStock: [UnitsInStock]+[UnitsOnOrder] |
ينشئ حقلاً يسمى TotalStock ثم يعرض مجموع القيم في حقلي UnitsInStock وUnitsOnOrder. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
ينشئ حقلاً يسمى النسبة المئوية للشحن، ثم يعرض النسبة المئوية لرسوم الشحن في كل إجمالي فرعي. يستخدم هذا التعبير الدالة Sum لجمع القيم في حقل الشحن، ثم يقسم تلك الإجماليات على مجموع القيم في حقل الإجمالي الفرعي. لاستخدام هذا التعبير، يتعيّن عليك تحويل استعلام التحديد إلى استعلام الإجماليات لأنك تحتاج إلى استخدام الصف إجمالي في شبكة التصميم، ويجب عليك تعيين الخلية إجمالي لهذا الحقل على التعبير. للحصول على مزيد من المعلومات حول إنشاء استعلام إجماليات، راجع المقالة جمع البيانات باستخدام استعلام. إذا قمت بتعيين الخاصية Format للحقل على Percent، فلا تُضمن *100. |
للحصول على مزيد من المعلومات حول استخدام الوظائف التجميعية وتجميع القيم الموجودة في الحقل والأعمدة، اطّلع على المقالات جمع البيانات باستخدام استعلام وحساب البيانات باستخدام استعلام وعرض إجمالي الأعمدة في ورقة بيانات باستخدام صف الإجماليات وعرض إجمالي الأعمدة في ورقة البيانات.
عمليات التاريخ
تخزِّن كل قواعد البيانات تقريبًا التواريخ والأوقات وتتعقبها. يمكنك استخدام التواريخ والأوقات في Access بتعيين حقول التاريخ والوقت في الجداول على نوع بيانات التاريخ/الوقت. يمكن لبرنامج Access إجراء عمليات حسابية على التواريخ. على سبيل المثال، يمكنك حساب عدد الأيام التي انقضت منذ تاريخ الفاتورة لتأخير الحسابات المدينة.
التعبير |
الوصف |
---|---|
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) |
ينشئ حقلاً يسمى مدة التأخير، ثم يستخدم الدالة DateDiff لعرض عدد الأيام بين تاريخ الطلب وتاريخ الشحن. |
YearHired: DatePart("yyyy",[HireDate]) |
ينشئ حقلاً يسمى YearHired، ثم يستخدم الدالة DatePart لعرض السنة التي تم تعيين كل موظف فيها. |
MinusThirty: Date( )- 30 |
ينشئ حقلاً يسمى ناقص 30، ثم يستخدم الدالة Date لعرض التاريخ الذي يسبق التاريخ الحالي بثلاثين يومًا. |
دالات SQL التجميعية
تستخدم التعبيرات الموجودة في الجدول التالي دالات SQL (لغة الاستعلامات المركّبة) التي تجمع البيانات أو تلخصها. غالبًا ما ترى هذه الدالات (على سبيل المثال، Sum وCount وAvg) يشار إليها بالدالات التجميعية.
بالإضافة إلى الدالات التجميعية، يوفّر Access أيضًا دالات "المجال" التجميعية التي تستخدمها لجمع القيم أو حسابها بطريقة انتقائية. على سبيل المثال، يمكنك حساب عدد القيم الموجودة في نطاق معين فقط أو البحث عن قيمة من جدول آخر. تتضمن مجموعة دالات المجال التجميعية الدالة DSum والدالة DCount والدالة DAvg.
لحساب الإجماليات، ستحتاج غالباً إلى إنشاء استعلام إجماليات. على سبيل المثال، لتلخيص البيانات حسب المجموعة، تحتاج إلى استخدام استعلام إجماليات. لتمكين استعلام إجماليات من شبكة تصميم الاستعلام، انقر فوق الإجماليات في القائمة عرض.
التعبير |
الوصف |
---|---|
RowCount: Count(*) |
ينشئ حقلاً يسمى عدد الصفوف، ثم يستخدم الدالة Count لحساب عدد السجلات في الاستعلام، بما في ذلك السجلات التي تحتوي على حقول فارغة (خالية). |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
ينشئ حقلاً يسمى النسبة المئوية للشحن، ثم يحسب النسبة المئوية لرسوم الشحن في كل إجمالي فرعي عن طريق قسمة مجموع القيم الموجودة في حقل الشحن على مجموع القيم الموجودة في حقل الإجمالي الفرعي. (يستخدم هذا المثال الدالة Sum.) يجب عليك استخدام هذا التعبير مع استعلام الإجماليات. إذا قمتَ بتعيين الخاصية Format للحقل على Percent، فلا تُضمِّن *100. للحصول على مزيد من المعلومات حول إنشاء استعلام الإجماليات، راجع المقالة جمع البيانات باستخدام استعلام. |
AverageFreight: DAvg("[Freight]", "[Orders]") |
ينشئ حقلاً يسمى متوسط الشحن، ثم يستخدم الدالة DAvg لحساب متوسط الشحن في كل الطلبات المُجمّعة في استعلام الإجماليات. |
الحقول باستخدام البيانات المفقودة
تتعامل التعبيرات الموضّحة هنا مع الحقول التي تحتوي على معلومات قد تكون مفقودة، مثل تلك التي تحتوي على قيم فارغة(غير معروفة أو غير محدَّدة). تجد قيماً فارغة كثيراً، مثل سعر غير معروف لمنتج جديد أو قيمة نسي زميلك في العمل إضافتها إلى طلب. يمكن أن تكون القدرة على العثور على القيم الفارغة ومعالجتها جزءًا مهمًا من عمليات قاعدة البيانات، وتوضّح التعبيرات الموجودة في الجدول التالي بعض الطرق الشائعة للتعامل مع القيم الفارغة.
التعبير |
الوصف |
---|---|
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) |
ينشئ حقلاً يسمى البلد/المنطقة الحاليةK ثم يستخدم الدالتين IIf وIsNull لعرض سلسلة فارغة في هذا الحقل عندما يحتوي حقل البلد/المنطقة على قيمة فارغةK وبخلاف ذلك، يعرض محتويات حقل البلد/المنطقة. |
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
ينشئ حقلاً يسمى وقت الانتظار، ثم يستخدم الدالتين IIf وIsNull لعرض الرسالة التالية "التحقّق من وجود تاريخ مفقود" إذا كانت القيمة في حقل تاريخ إجراء الطلب أو حقل تاريخ الشحن فارغة؛ وبخلاف ذلك، سيتم عرض اختلاف التاريخ. |
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) |
ينشئ حقلاً يسمى مبيعات ستة أشهر، ثم يعرض مجموع القيم في حقلي مبيعات الربع الأول ومبيعات الربع الثاني باستخدام الدالة Nz لتحويل أي قيم فارغة إلى صفر. |
حقول محسوبة باستخدام الاستعلامات الفرعية
يمكنك استخدام استعلام متداخل، ويسمى أيضًا استعلامًا فرعيًّا، لإنشاء حقل محسوب. التعبير الموجود في الجدول التالي هو مثال للحقل المحسوب الذي ينتج عن استعلام فرعي.
التعبير |
الوصف |
---|---|
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) |
ينشئ حقلاً يسمى الفئة، ثم يعرض اسم الفئة، إذا كان مُعرّف الفئة من جدول الفئات هو نفسه مُعرّف الفئة من جدول المنتجات. |
مطابقة القيم النصية
توضّح أمثلة التعبيرات في هذا الجدول المعايير التي تتطابق مع كل القيم النصية أو جزء منها.
الحقل |
التعبير |
الوصف |
---|---|---|
مدينة الشحن |
"London" |
يعرض الطلبات المشحونة إلى الدوحة. |
مدينة الشحن |
"London" Or "Hedge End" |
يستخدم العامل Or لعرض الطلبات التي تم شحنها إلى لندن أو هيدج إند. |
بلد/منطقة الشحن |
In("Canada", "UK") |
يستخدم العامل In لعرض الطلبات التي تم شحنها إلى كندا أو المملكة المتحدة. |
بلد/منطقة الشحن |
Not "USA" |
يستخدم العامل Not لعرض الطلبات التي تم شحنها إلى البلدان/المناطق بخلاف الويات المتحدة الأمريكية. |
اسم المنتج |
Not Like "C*" |
يستخدم العامل Not وحرف البدل * لعرض المنتجات التي لا يبدأ اسمها بحرف "س". |
اسم الشركة |
>="N" |
يعرض الطلبات التي تم شحنها إلى الشركات التي تبدأ أسماؤها بأحد الحروف من N إلى Z. |
رمز المنتج |
Right([ProductCode], 2)="99" |
يستخدم الدالة Right لعرض الأوامر التي تحتوي على قيم رمز المنتج التي تنتهي بالرقم 99. |
اسم الشحن |
Like "S*" |
يعرض الطلبات التي تم شحنها إلى العملاء الذين تبدأ أسماؤهم بالحرف S. |
مطابقة معايير التاريخ
توضّح التعبيرات الموجودة في الجدول التالي استخدام التواريخ والدالات ذات الصلة في تعبيرات المعايير. للحصول على مزيد من المعلومات حول إدخال قيم تاريخ واستخدامها، راجع المقالة إدخال قيمة الوقت أو التاريخ.
الحقل |
التعبير |
الوصف |
---|---|---|
تاريخ الشحن |
#2/2/2017# |
يعرض الطلبات المشحونة في 2 فبراير 2017. |
تاريخ الشحن |
Date() |
يعرض الطلبات المشحونة اليوم. |
تاريخ إجراء الطلب |
Between Date( ) And DateAdd("m", 3, Date( )) |
يستخدم العامل Between...And والدالتين DateAdd وDate لعرض الطلبات المطلوبة بين تاريخ اليوم وثلاثة أشهر من تاريخ اليوم. |
تاريخ الطلب |
< Date( ) - 30 |
يستخدم الدالة Date لعرض الطلبات التي مضى عليها أكثر من 30 يومًا. |
تاريخ الطلب |
Year([OrderDate])=2017 |
يستخدم الدالة Year لعرض الطلبات التي لها تواريخ طلب في عام 2017. |
تاريخ الطلب |
DatePart("q", [OrderDate])=4 |
يستخدم الدالة DatePart لعرض طلبات الربع الرابع من التقويم. |
تاريخ الطلب |
DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 |
يستخدم الدالات DateSerial وYear وMonth لعرض طلبات آخر يوم من كل شهر. |
تاريخ الطلب |
Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) |
يستخدم الدالتين Year وMonth والعامل And لعرض طلبات الشهر والسنة الحاليين. |
تاريخ الشحن |
Between #1/5/2017# And #1/10/2017# |
يستخدم العامل Between...And لعرض الطلبات التي تم شحنها في موعد لا يقل عن يوم 5 يناير 2017 لا يتجاوز يوم 10 يناير 2017. |
تاريخ إجراء الطلب |
Between Date( ) And DateAdd("M", 3, Date( )) |
يستخدم العامل Between...And لعرض الطلبات المطلوبة بين تاريخ اليوم وثلاثة أشهر من تاريخ اليوم. |
تاريخ الميلاد |
Month([BirthDate])=Month(Date()) |
يستخدم الدالتين Month وDate لعرض الموظفين الذين تقع أعياد ميلادهم في هذا الشهر. |
العثور على البيانات المفقودة
تعمل التعبيرات الموجودة في الحقل التالي مع الحقول التي قد تحتوي على معلومات مفقودة — تلك التي قد تحتوي على قيمة فارغة أو سلسلة فارغة. تمثل القيمة الفارغة عدم وجود معلومات، ولا تمثل قيمة صفرية أو أي قيمة على الإطلاق. يدعم Access فكرة عدم وجود معلومات لأن هذا المفهوم أساسي لتكامل قاعدة البيانات. في الحياة الواقعية، المعلومات غالباً ما تكون مفقودة، حتي لو مؤقتاً فقط (على سبيل المثال، سعر غير محدد بعد لمنتج جديد). ومن ثمَّ، يجب أن تكون قاعدة البيانات التي تُمثِّل كيانًا حقيقيًّا، كشركة مثلاً، قادرة على تسجيل المعلومات على أنها مفقودة. يمكنك استخدام الدالة IsNull لتحديد ما إذا كان الحقل أو عنصر التحكم يحتوي على قيمة فارغة، ويمكنك استخدام الدالة Nz لتحويل قيمة فارغة إلى الصفر.
الحقل |
التعبير |
الوصف |
---|---|---|
منطقة الشحن |
Is Null |
يعرض طلبات العملاء الذين يكون حقل منطقة الشحن لديهم فارغ (مفقود). |
منطقة الشحن |
Is Not Null |
يعرض طلبات العملاء الذين يكون حقل منطقة الشحن لديهم على قيمة. |
فاكس |
"" |
يعرض طلبات العملاء الذين ليس لديهم جهاز فاكس، وتم الإشارة إليهم بقيمة سلسلة فارغة في حقل الفاكس بدلاً من قيمة فارغة (مفقودة). |
مطابقة أنماط السجل باستخدام Like
يوفّر العامل Like قدرًا كبيرًا من المرونة عندما تحاول مطابقة الصفوف التي تتبع نمطًا، لأنّه يمكنك استخدام Like مع أحرف البدل وتحديد أنماط يطابقها Access. على سبيل المثال، يطابق حرف البدل * (علامة النجمة) سلسلة من الحروف من أي نوع، ويُسهّل عملية البحث عن كل الأسماء التي تبدأ بحرف. على سبيل المثال، يمكنك استخدام التعبير Like "S*" للبحث عن كل الأسماء التي بدأت بالحرف "س". للحصول على مزيد من المعلومات، راجع المقالة مثل عامل التشغيل.
الحقل |
التعبير |
الوصف |
---|---|---|
اسم الشحن |
Like "S*" |
البحث عن كل السجلات في الحقل اسم الشحن التي تبدأ بالحرف س. |
اسم الشحن |
Like "*Imports" |
البحث عن كل السجلات في الحقل اسم الشحن التي تبدأ بالكلمة «استيراد». |
اسم الشحن |
Like "[A-D]*" |
يبحث عن كل السجلات الموجودة في حقل اسم الشحن الذي يبدأ بالأحرف "أ" أو "ب" أو "ت" أو "ث". |
اسم الشحن |
Like "*ar*" |
يبحث عن كل السجلات الموجودة في حقل اسم الشحن الذي يتضمن تسلسل الحروف "ar". |
اسم الشحن |
Like "منزل بيطار؟" |
البحث عن كل السجلات في حقل اسم الشحن التي تتضمن «منزل» في الجزء الأول من القيمة وسلسلة مكونة من خمسة أحرف الأحرف الأربعة الأولى «بيطار» والحرف الأخير غير معروف. |
اسم الشحن |
Not Like "A*" |
يبحث عن كل السجلات في حقل اسم الشحن الذي لا يبدأ بالحرف "أ". |
مطابقة الصفوف باستخدام دالات SQL
يمكنك استخدام SQL أو دالة المجال التجميعية عندما تكون بحاجة إلى جمع القيم أو عدها أو حساب متوسطها بشكل انتقائي. على سبيل المثال، قد لا ترغب إلا في حساب تلك القيم التي تقع ضمن نطاق معيّن أو التي يتم تقييمها على "نعم". في أحيان أخرى، فقد تحتاج إلى البحث عن قيمة من جدول آخر حيث يمكنك عرضه. تستخدم أمثلة التعبيرات المذكورة في الجدول التالي دالات المجال التجميعية لإجراء عملية حسابية على مجموعة من القيم، وتستخدم النتيجة كمعايير الاستعلام.
الحقل |
التعبير |
الوصف |
---|---|---|
الشحن |
> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) |
يستخدم الدالتين DStDev وDAvg لعرض كل الطلبات التي تتخطى تكلفة شحنها المتوسط بالإضافة إلى الانحراف المعياري لتكلفة الشحن. |
الكمية |
> DAvg("[Quantity]", "[Order Details]") |
تستخدم الدالة DAvg لعرض المنتجات المطلوبة بكميات أكبر من متوسط كمية الطلب. |
مطابقة الحقول باستخدام الاستعلامات الفرعية
يمكنك استخدام استعلام فرعي، معروف أيضًا باستعلام متداخل، لحساب قيمة لاستخدامها كمعيار. تطابق أمثلة التعبيرات المذكورة في الجدول التالي الصفوف استنادًا إلى النتائج التي تم إرجاعها بواسطة الاستعلام الفرعي.
الحقل |
التعبير |
يعرض |
---|---|---|
سعر الوحدة |
(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") |
المنتجات التي يماثل سعرها سعر شراب الينسون. |
وحدة السعر |
>(SELECT AVG([UnitPrice]) FROM [Products]) |
المنتجات التي لها سعر وحدة أعلى من المتوسط. |
الراتب |
> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) |
مرتب مندوبين المبيعات الأعلى من كل الموظفين بالمسمى الوظيفي «مدير» أو «نائب رئيس». |
OrderTotal: [UnitPrice] * [Quantity] |
> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) |
الطلبات التي تكون الإجماليات فيها أكبر من متوسط قيمة الطلب. |
استعلامات التحديث
يمكنك استخدام استعلام تحديث لتعديل البيانات في حقل واحد أو أكثر في قاعدة البيانات. على سبيل المثال، يمكنك استبدال القيم أو حذفها بالكامل. يوضح هذا الجدول بعض الطرق لاستخدام تعبيرات في استعلامات التحديث. يمكنك استخدام هذه التعبيرات في صف تحديث إلى في شبكة تصميم الاستعلام الخاص بالحقل الذي تريد تحديثه.
للحصول على مزيد من المعلومات حول إنشاء استعلامات تحديث، راجع المقالة إنشاء استعلام تحديث وتشغيله.
الحقل |
التعبير |
النتيجة |
---|---|---|
العنوان |
"Salesperson" |
تغيير قيمة النص إلى مندوب مبيعات. |
بداية المشروع |
#8/10/17# |
يُغيّر قيمة التاريخ إلى 10 أغسطس 2017. |
مستبعَد |
Yes |
تغيير قيمة "لا" في حقل نعم/لا إلى "نعم". |
PartNumber |
"PN" & [PartNumber] |
إضافة "ب ن" إلى بداية كل رقم جزء محدد. |
إجمالي صنف السطر |
[UnitPrice] * [Quantity] |
حساب حاصل ضرب سعر الوحدة والكمية. |
الشحن |
[Freight] * 1.5 |
زيادة رسوم الشحن بمقدار 50%. |
المبيعات |
DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) |
عندما تتطابق قيم مُعرف المنتج في الجدول الحالي مع قيم مُعرف المنتج في جدول تفاصيل الطلب، يمكنك تحديث إجماليات المبيعات استنادًا إلى حاصل ضرب قيمتي الكمية وسعر الوحدة. |
الرمز البريدي للشحن |
Right([ShipPostalCode], 5) |
يقتطع الحروف الموجودة في أقصى اليسار، مع ترك الأحرف الخمسة الموجودة في أقصى اليمين. |
سعر الوحدة |
Nz([UnitPrice]) |
يُغيّر قيمة فارغة (غير معروفة أو غير محدّدة) إلى قيمة صفرية (0) في حقل سعر الوحدة. |
عبارات SQL
لغة الاستعلامات المركبة أو SQL هي عن لغة الاستعلام التي يستخدمها Access. يمكن التعبير عن كل استعلام تقوم بإنشائه في طريقة عرض تصميم الاستعلام أيضاً باستخدام SQL. للاطلاع على عبارة SQL لأي استعلام، انقر فوق طريقة عرض SQL في القائمة عرض. يعرض الجدول التالي أمثلة لعبارات SQL التي تستخدم تعبيرًا.
عبارة SQL التي تستخدم تعبيرًا |
النتيجة |
---|---|
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; |
يعرض القيم في حقلي FirstName وLastName للموظفين الذين يحملون اسم العائلة "Danseglio". |
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; |
عرض القيم الموجودة في حقلي معرف المنتج واسم المنتج في جدول المنتجات للسجلات التي تتطابق فيها قيمة معرف الفئة وقيمة معرف الفئة المحددة في نموذج منتجات جديدة مفتوح. |
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; |
حساب متوسط السعر المحدد للطلبات التي بها قيمة في الحقل السعر المحدد أكبر من 1000 وعرضه في حقل يسمى «متوسط السعر المحدد». |
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; |
في الحقل الذي يحمل الاسم مُعرّف عدد المنتجات، يتم عرض العدد الإجمالي للمنتجات للفئات التي تضم أكثر من 10 منتجات. |
تعبيرات الجدول
الطريقتان الأكثر شيوعاً لاستخدام تعبيرات في الجداول هما تعيين قيمة افتراضية وإنشاء قاعدة التحقق من الصحة.
القيم الافتراضية للحقل
عندما تقوم بتصميم قاعدة بيانات، قد تريد تعيين قيمة افتراضية على حقل أو عنصر تحكم. يوفر Access بع ذلك القيمة الافتراضية عند إنشاء سجل جديد يحتوي على الحقل أو عند إنشاء كائن يحتوي على عنصر التحكم. تُمثِّل التعبيرات الموجودة في الجدول التالي أمثلة للقيم الافتراضية الخاصة بحقل أو عنصر تحكم. إذا كان عنصر التحكم مرتبطًا بحقل في جدول، وكان الحقل يتضمن قيمة افتراضية، فإنّ القيمة الافتراضية لعنصر التحكم يكون لها الأسبقية.
الحقل |
التعبير |
قيمة الخقل الافتراضية |
---|---|---|
الكمية |
1 |
1 |
المنطقة |
"MT" |
MT |
المنطقة |
"New York, N.Y." |
الرياض (لاحظ أنّه يجب إحاطة القيمة بعلامات اقتباس إذا تضمنت علامات ترقيم.) |
فاكس |
"" |
سلسلة فارغة للإشارة إلى أنّ هذا الحقل يجب أن يكون فارغًا، بشكل افتراضي، بدلاً من أن يحتوي على قيمة فارغة |
تاريخ الطلب |
Date( ) |
تاريخ اليوم |
تاريخ الاستحقاق |
Date() + 60 |
التاريخ بعد 60 يومًا من اليوم |
قواعد التحقّق من صحة الحقل
يمكنك إنشاء قاعدة التحقّق من الصحة لحقل أو عنصر تحكم باستخدام تعبير. يفرض Access بعد ذلك القاعدة عند إدخال بيانات في الحقل أو عنصر التحكم. لإنشاء قاعدة التحقّق من الصحة، يمكنك تعديل خاصية ValidationRule للحقل أو عنصر التحكم. يتعين عليك أيضًا إعداد الخاصية ValidationText، التي تحمل النص الذي يعرضه Access عندما يتم خرق قاعدة التحقّق من الصحة. إذا لم تقم بتعيين الخاصية ValidationText، فإنّ Access سيعرض رسالة خطأ افتراضية.
توضّح الأمثلة الموجودة في الجدول التالي تعبيرات قاعدة التحقّق من الصحة للخاصية ValidationRule والنص المقترن بالخاصية ValidationText.
خاصية ValidationRule |
خاصية ValidationText |
---|---|
<> 0 |
أدخل قيمة غير صفرية. |
0 Or > 100 |
يجب أن تكون القيمة 0 أو أكبر من 100. |
Like "K???" |
يجب أن تتكوّن القيمة من أربعة أحرف، وتبدأ بالحرف "K". |
< #1/1/2017# |
أدخل تاريخاً سابقاً للتاريخ 2017/1/1. |
>= #1/1/2017# And < #1/1/2008# |
يجب أن يكون التاريخ في عام 2017. |
للحصول على مزيد من المعلومات حول التحقّق من صحة البيانات، راجع المقالة إنشاء قاعدة التحقّق من الصحة للتحقّق من صحة البيانات في الحقل.
تعبيرات الماكرو
قد ترغب أحياناً في تنفيذ إجراء أو سلسلة من الإجراءات في ماكرو فقط إذا كان الشرط المحدد صحيحاً. على سبيل المثال، افترض أنّك تريد القيام بإجراء للتشغيل فقط عندما تكون قيمة مربع النص "عدّاد" 10. يمكنك استخدام تعبير لتعريف الشرط في كتلة If:
[Counter]=10
كما هو الحال مع الخاصية ValidationRule ، التعبير في كتلة If هو تعبير شرطي. يجب أن يتم تعيينها على قيمة True أو False. لا يتم تنفيذ الإجراء إلا عندما يكون الشرط صوابًا.
استخدم هذا التعبير لتنفيذ الإجراء |
إذا |
---|---|
[City]="Paris" |
باريس هي قيمة المدينة في الحقل في النموذج الذي تم تشغيل الماكرو منه. |
DCount("[OrderID]", "Orders") > 35 |
هناك أكثر من 35 إدخالاً في حقل OrderID من جدول الطلبات. |
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 |
هناك أكثر من ثلاثة إدخالات في جدول تفاصيل الطلب الذي يتطابق فيه حقل مُعرّف الطلب للجدول مع حقل مُعرّف الطلب في نموذج الطلبات. |
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# |
إنّ قيمة حقل تاريخ الشحن في النموذج الذي يتم تشغيل الماكرو منه لا يقل عن 2 فبراير 2017 ولا يتجاوز 2 مارس 2017. |
Forms![Products]![UnitsInStock] < 5 |
إنّ قيمة حقل UnitsInStock في نموذج المنتجات أقل من 5. |
IsNull([FirstName]) |
إنّ قيمة FirstName في النموذج الذي يتم تشغيل الماكرو منه فارغة (ليس لها قيمة). هذا التعبير يساوي [FirstName] Is Null. |
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 |
إنّ القيمة الموجودة في حقل البلد/المنطقة في النموذج الذي يتم تشغيل الماكرو منه هي المملكة المتحدة، وتكون القيمة في حقل إجمالي الطلبات في نموذج إجمالي المبيعات أكبر من 100. |
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 |
أن القيمة الموجودة في حقل البلد/المنطقة في النموذج الذي يتم تشغيل الماكرو منه هي الإمارات أو قطر أو اليمن والرمز البريدي لا يتكون من 5 أحرف. |
MsgBox("Confirm changes?",1)=1 |
انقر فوق موافق في مربع الحوار الذي تعرضه الدالة MsgBox. إذا نقرت فوق إلغاء في مربع الحوار، يتجاهل Access الإجراء. |