توفر هذه المقالة أمثلة للتعبيرات في Access. يجمع التعبير بين العوامل الرياضية أو المنطقية والثوابت والدالات وحقول الجدول وعناصر التحكم والخصائص في قيمة واحدة. يمكنك استخدام التعبيرات في Access لحساب القيم والتحقق من صحة البيانات وتعيين القيم الافتراضية.
في هذه المقالة
النماذج والتقارير
جميع تعبيرات النماذج والتقارير
| العمليات النصية؛ القيم في عناصر التحكم الأخرى؛ عمليات التاريخ | الرؤوس والتذييلات؛ عد القيم وجمعها وحساب متوسطها؛ الشروط الخاصة بقيمتين فقط | العمليات الحسابية. دالات SQL التجميعية |
|---|
الاستعلامات وعوامل التصفية
جميع تعبيرات الاستعلام وعامل التصفية
الجداول
| القيم الافتراضية للحقل | قواعد التحقّق من صحة الحقل |
|---|
وحدات الماكرو
النماذج والتقارير
توضح الجداول الموجودة في هذا القسم التعبيرات التي تحسب قيمة في عنصر تحكم في نموذج أو تقرير. لإنشاء عنصر تحكم محسوب، أدخل تعبيرا في ControlSource خاصية عنصر التحكم بدلا من حقل جدول أو استعلام.
ملاحظة
يمكنك أيضا استخدام التعبيرات في نموذج أو تقرير عند تمييز البيانات باستخدام التنسيق الشرطي.
عمليات النص
تستخدم التعبيرات الموجودة في الجدول التالي عاملي & التشغيل (علامة العطف) و + (علامة الجمع) لدمج السلاسل النصية أو استخدام الدالات المضمنة للعمل مع النص أو بمعنى آخر إنشاء عنصر تحكم محسوب.
| التعبير | النتيجة |
|---|---|
="N/A" |
يعرض غير متوفّر. |
=[FirstName] & " " & [LastName] |
يعرض القيم الموجودة في حقول جدول تسمى الاسم الأول واسم العائلة. في هذا المثال، & يستخدم عامل التشغيل لدمج حقل الاسم الأول وحرف المسافة (محاط بعلامات اقتباس) وحقل اسم العائلة. |
=Left([ProductName], 1) |
يستخدم الدالة Left لعرض الحرف الأول من القيمة في حقل أو عنصر تحكم يسمى ProductName. |
=Right([AssetCode], 2) |
يستخدم الدالة Right لعرض آخر حرفين من القيمة في حقل أو عنصر تحكم يسمى AssetCode. |
=Trim([Address]) |
يستخدم الدالة Trim لعرض قيمة Address عنصر التحكم بعد إزالة المسافات البادئة واللاحقة. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
يستخدم الدالة IIf لعرض قيم City عناصر التحكم And PostalCode إذا Region كان عنصر التحكم فارغا. وإلا، فإنه يعرض قيم City، Regionوعناصر PostalCode التحكم، مفصولة بمسافات. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
يستخدم عامل + التشغيل والنشر الفارغ لعرض قيم City عناصر تحكم And PostalCode إذا كانت القيمة في Region الحقل أو عنصر التحكم فارغة. وإلا، فإنه يعرض قيم City، Regionوالحقول PostalCode أو عناصر التحكم، مفصولة بمسافات. يعني استخدام القيمة Null أنه إذا كان أي جزء من التعبير فارغا، يكون التعبير بالكامل فارغا. يدعم + عامل التشغيل النشر الفارغ، ولكن & عامل التشغيل لا يدعم ذلك. |
رؤوس الصفحات وتذييلاتها
استخدم الخصائص Page And Pages لعرض أرقام الصفحات أو طباعتها في نماذج أو تقارير. تتوفر هذه الخصائص فقط أثناء الطباعة أو معاينة الطباعة، بحيث لا تظهر على ورقة الخصائص للنموذج أو التقرير. عادة ما تضع مربع نص في مقطع رأس أو تذييل النموذج أو التقرير ثم تستخدم تعبيرا مثل التعبيرات التي تظهر في الجدول التالي.
للحصول على مزيد من المعلومات حول استخدام رؤوس الصفحات وتذييلاتها في النماذج والتقارير، راجع المقالة إدراج أرقام الصفحات في نموذج أو تقرير.
| التعبير | النتيجة |
|---|---|
=[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] |
ناتج قسمة قيم عنصري تحكم أو حقلي إجمالي الموظفين وإجمالي البلد/المنطقة. |
ملاحظة
عند استخدام عامل تشغيل حسابي (+ ، -، *، أو /) في تعبير وكان أحد عناصر التحكم فارغا، تكون نتيجة التعبير بالكامل فارغة. يعرف هذا باسم النشر الفارغ. إذا كان عنصر التحكم يحتوي على قيمة فارغة، يمكنك تجنب النشر الفارغ باستخدام الدالة 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 |
يعرض النسبة المئوية للمبيعات عن طريق قسمة قيمة عنصر Sales التحكم على مجموع كل القيم في عنصر التحكم Sales . إذا قمت بتعيين Format خاصية عنصر التحكم إلى Percent، فلا تقم بتضمينه *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 لتوفير تاريخ بدء وتاريخ انتهاء، كما يقصر نتائج الاستعلام على الطلبات التي تم شحنها بين هذه التواريخ.
توفر المقاطع التالية أمثلة للتعبيرات المستخدمة في الاستعلامات.
عمليات النص في الاستعلامات
تستخدم التعبيرات الموجودة في الجدول التالي عوامل & التشغيل And + لدمج السلاسل النصية أو استخدام الدالات المضمنة للعمل في سلسلة نصية أو العمل على نص لإنشاء حقل محسوب.
| التعبير | الوصف |
|---|---|
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 |
ينشئ حقلا يسمى FreightPercentage، ثم يعرض النسبة المئوية لرسوم الشحن في كل إجمالي فرعي. يستخدم هذا التعبير الدالة Sum لجمع القيم في Freight الحقل ثم يقسم تلك الإجماليات على مجموع القيم في الحقل Subtotal . لاستخدام هذا التعبير، قم بتحويل استعلام التحديد إلى استعلام إجماليات. يجب استخدام صف الإجمالي في شبكة التصميم وتعيين خلية الإجمالي لهذا الحقل إلى Expression. لمزيد من المعلومات حول إنشاء استعلام الإجماليات، راجع بيانات المجموع باستخدام استعلام. إذا قمت بتعيين 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 |
ينشئ حقلا يسمى FreightPercentage، ثم يحسب النسبة المئوية لرسوم الشحن في كل إجمالي فرعي عن طريق قسمة مجموع القيم الموجودة في الحقل Freight على مجموع القيم الموجودة في الحقل Subtotal . يستخدم هذا المثال الدالة 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 Operator.
| الحقل | التعبير | الوصف |
|---|---|---|
| اسم الشحن | Like "S*" |
البحث عن كل السجلات في الحقل اسم الشحن التي تبدأ بالحرف س. |
| اسم الشحن | Like "*Imports" |
البحث عن كل السجلات في الحقل اسم الشحن التي تبدأ بالكلمة «استيراد». |
| اسم الشحن | Like "[A-D]*" |
يبحث عن كل السجلات الموجودة في حقل اسم الشحن الذي يبدأ بالأحرف "أ" أو "ب" أو "ت" أو "ث". |
| اسم الشحن | Like "*ar*" |
يبحث عن كل السجلات الموجودة في حقل اسم الشحن الذي يتضمن تسلسل الحروف "ar". |
| اسم الشحن | Like "Maison Dewe?" |
البحث عن كل السجلات في حقل اسم الشحن التي تتضمن «منزل» في الجزء الأول من القيمة وسلسلة مكونة من خمسة أحرف الأحرف الأربعة الأولى «بيطار» والحرف الأخير غير معروف. |
| اسم الشحن | 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]) |
الطلبات التي تكون الإجماليات فيها أكبر من متوسط قيمة الطلب. |
استعلامات التحديث
استخدم استعلام تحديث لتعديل البيانات في حقل واحد أو أكثر في قاعدة البيانات. على سبيل المثال، يمكنك استبدال القيم أو حذفها بالكامل. يوضح هذا الجدول بعض الطرق لاستخدام تعبيرات في استعلامات التحديث. استخدم هذه التعبيرات في Update To الصف الموجود في شبكة تصميم الاستعلام للحقل الذي تريد تحديثه.
للحصول على مزيد من المعلومات حول إنشاء استعلامات تحديث، راجع المقالة إنشاء استعلام تحديث وتشغيله.
| الحقل | التعبير | النتيجة |
|---|---|---|
| العنوان | "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. يمكنك استخدام تعبير لتحديد الشرط في كتلة إذا:
[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 الإجراء. |