توفر هذه المقالة أمثلة على التعبيرات في Access. يجمع التعبير بين عوامل التشغيل الرياضية أو المنطقية والثوابت والوظائف وحقول الجدول وعناصر التحكم والخصائص في قيمة واحدة. يمكنك استخدام التعبيرات في Access لحساب القيم والتحقق من صحة البيانات وتعيين القيم الافتراضية.
في هذه المقالة
النماذج والتقارير
جميع تعبيرات النماذج والتقارير
| عمليات النص؛ القيم في عناصر التحكم الأخرى؛ عمليات التاريخ | الرؤوس والتذييلات؛ عدد القيم ومجموعها ومتوسطها؛ شروط قيمتين فقط | العمليات الحسابية؛ دالات SQL التجميعية |
|---|
الاستعلامات وعوامل التصفية
جميع تعبيرات الاستعلام وعامل التصفية
الجداول
| القيم الافتراضية للحقل | قواعد التحقّق من صحة الحقل |
|---|
وحدات الماكرو
النماذج والتقارير
تعرض الجداول الموجودة في هذا القسم التعبيرات التي تحسب قيمة في عنصر تحكم في نموذج أو تقرير. لإنشاء عنصر تحكم محسوب، أدخل تعبيرا في ControlSource خاصية عنصر التحكم بدلا من حقل جدول أو استعلام.
ملاحظة
يمكنك أيضا استخدام التعبيرات في نموذج أو تقرير عند تمييز البيانات بتنسيق شرطي.
عمليات النص
تستخدم & التعبيرات الموجودة في الجدول التالي عاملي التشغيل (علامة العطف) و + (بالإضافة إلى) لدمج السلاسل النصية، أو استخدام الدالات المضمنة للعمل مع النص، أو إنشاء عنصر تحكم محسوب.
| التعبير | النتيجة |
|---|---|
="N/A" |
يعرض غير متوفّر. |
=[FirstName] & " " & [LastName] |
يعرض القيم الموجودة في حقول جدول تسمى الاسم الأول واسم العائلة. في هذا المثال، & يتم استخدام عامل التشغيل لدمج حقل 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 عناصر التحكم و PostalCode إذا كان Region عنصر التحكم فارغا. وإلا، فإنه يعرض قيم CityRegionعناصر التحكم و و PostalCode مفصولة بمسافات. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
+ يستخدم عامل التشغيل ونشر القيم الخالية لعرض قيم City عناصر التحكم و PostalCode إذا كانت القيمة الموجودة في Region الحقل أو عنصر التحكم فارغة. وإلا، فإنه يعرض قيم CityRegionو و و PostalCode و عناصر التحكم، مفصولة بمسافات. يعني النشر الفارغ أنه إذا كان أي جزء من التعبير فارغا، يكون التعبير بأكمله فارغا.
+ يدعم عامل التشغيل الانتشار الفارغ، ولكن & عامل التشغيل لا يدعم ذلك. |
رؤوس الصفحات وتذييلاتها
استخدم الخاصيتين Page و 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 بإرجاع قيمة تاريخ/وقت تساوي يومين قبل القيم الحالية في الحقل RequiredDate.
| التعبير | النتيجة |
|---|---|
=[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) لعرض الرسالة "Order Confirmed" إذا كانت قيمة عنصر التحكم Confirmed هي 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 بإرجاع قيمة التاريخ/الوقت التي تساوي يومين قبل القيمة في الحقل RequiredDate.
| التعبير | الوصف |
|---|---|
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 يستخدم عامل التشغيل وحرف * البدل لعرض المنتجات التي لا تبدأ أسماؤها ب C. |
| اسم الشركة | >="N" |
يعرض الطلبات التي يتم شحنها إلى الشركات التي تبدأ أسماؤها بالأحرف N من خلال Z. |
| رمز المنتج | Right([ProductCode], 2)="99" |
يستخدم الدالة Right لعرض الطلبات بقيم ProductCode التي تنتهي ب 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*" للعثور على جميع الأسماء التي تبدأ بالحرف 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. يمكنك استخدام تعبير لتعريف الشرط في كتلة 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 الإجراء. |