عند استخدام Microsoft Access، غالبا ما تحتاج إلى العمل مع القيم غير الموجودة مباشرة في بياناتك. على سبيل المثال، قد ترغب في حساب ضريبة المبيعات على أحد الطلبات، أو حساب القيمة الإجمالية للطلب نفسه. يمكنك حساب هذه القيم باستخدام التعبيرات. لاستخدام التعبيرات، يمكنك كتابتها باستخدام بناء جملة صحيح. "بناء الجملة" هو مجموعة القواعد التي يتم بها التجميع الصحيح للكلمات والرموز في التعبير. في البداية، من الصعب قراءة التعبيرات في Access. ولكم مع الفهم الجيد لبناء جملة التعبير والقليل من التدريب، يصبح الأمر أسهل بكثير.
في هذه المقالة
- نظرة عامة على التعبيرات
- مكونات التعبيرات
- العناصر والمجموعات والخصائص
- المعرّفات
- الدالات وعوامل التشغيل والثوابت والقيم
- يبلغ حد التداخل للتعبيرات في قاعدة بيانات على ويب 65
نظرة عامة على التعبيرات
التعبير عبارة عن مجموعة تتألف من كل العناصر التالية أو من بعض منها: الدالات المضمنة أو المُعرفة من قبل المستخدم والمعرّفات وعوامل التشغيل والقيم والثوابت. ويتم تقييم كل تعبير إلى قيمة مفردة.
على سبيل المثال، يحتوي التعبير التالي على المكونات الشائعة:
=Sum([Purchase Price])*0.08
-
Sum()هي دالة مضمنة -
[Purchase Price]هو معرف -
*هو عامل تشغيل رياضي -
0.08ثابت
يمكن استخدام هذا التعبير في مربع نص داخل تذييل نموذج أو تذييل تقرير لحساب ضريبة المبيعات لمجموعة من العناصر.
بإمكان التعبيرات أن تكون أكثر تعقيداً أو أكثر بساطة من هذا المثال. على سبيل المثال، يتكون هذا التعبير المنطقي من عامل تشغيل وثابت فقط:
>0
يعرض هذا التعبير:
-
Trueعندما تتم مقارنتها بعدد أكبر من 0. -
Falseعندما تتم مقارنتها بعدد أقل من 0.
يمكنك استخدام هذا التعبير في الخاصية قاعدة التحقق من الصحة لحقل الجدول أو عنصر التحكم للتأكد من إدخال القيم الموجبة فقط. يتم استخدام التعبيرات في عدة أماكن لإجراء العمليات الحسابية أو التعامل مع الأحرف أو اختبار البيانات. تحتوي الجداول والاستعلامات والنماذج والتقارير ووحدات الماكرو جميعها على خصائص تقبل تعبير ما. على سبيل المثال، يمكنك استخدام تعبيرات في خصائص مصدر عنصر التحكم والقيمة الافتراضية لعنصر تحكم. يمكنك أيضاً استخدام تعبيرات في الخاصية قاعدة التحقق من صحة لحقل جدول.
مكونات التعبيرات
لإنشاء تعبير، عليك بدمج المعرفات باستخدام الدالات وعوامل التشغيل والثوابت والقيم. يجب أن يحتوي أي تعبير صحيح على دالة واحدة على الأقل أو معرّف واحد على الأقل، ويمكن أن يحتوي أيضاً على ثوابت أو عوامل تشغيل. يمكنك أيضا استخدام تعبير كجزء من تعبير آخر — عادة كوسيطة لدالة. وهذا يسمى تداخل تعبير.
المعرفات النموذج العام هو:
[Collection name]![Object name].[Property name]يتعين عليك فقط تحديد أجزاء كافية في المعرف لجعله فريداً في سياق التعبير. ليس من غير المألوف أن يتخذ المعرف الشكل
[Object name].الدالات النموذج العام هو:
Function(argument, argument)عادة تكون إحدى الوسيطات عبارة عن معرف أو تعبير. لا تحتاج بعض الدالات إلى وسيطات. قبل استخدام دالة معينة، راجع بناء الجملة الخاص بهذه الدالة. لمزيد من المعلومات، راجع الدالات (مرتبة حسب الفئة).
عوامل التشغيل النموذج العام هو:
Identifier operator identifierهناك استثناءات لهذا النموذج كما هو مفصل في المقطع عوامل التشغيل.
الثوابت النموذج العام هو:
Identifier comparison_operator constantالقيم يمكن أن تحدث القيم في العديد من المواقع داخل تعبير ما.
العناصر والمجموعات والخصائص
تُعرف كل الجداول والاستعلامات والنماذج والتقارير والحقول الموجودة في قاعدة بيانات Access، تُعرف بشكلٍ فردي بعناصر. ولكل عنصر اسم. بعض العناصر يكون لديها اسم بالفعل، مثل جدول "جهات الاتصال" في قاعدة بيانات تم إنشاؤها من القالب "جهات اتصال Microsoft Office Access". عند إنشاء عنصر جديد، يجب أن تمنحه اسماً.
تُعرف المجموعة التي تحتوي على كل الأعضاء من نوع معين من العناصر بالمجموعة. على سبيل المثال، تجمع كل الجداول الموجودة في قاعدة بيانات معينة يعتبر "مجموعة". يمكن أن تكون بعض العناصر الموجودة في مجموعة معينة في قاعدة بياناتك هي أيضاً مجموعات تحتوي على عناصر أخرى. فعلى سبيل المثال، يعتبر عنصر الجدول مجموعة تحتوي على عناصر الحقول.
وللعناصر خصائص تصف سمات العنصر وتوفر الطريقة لتغييرها. على سبيل المثال، توجد لدى عنصر الاستعلام خاصية طريقة العرض الافتراضية التي تصف الاستعلام كما تسمح لك بتحديد طريقة ظهوره ووقت تشغيله.
يوضح الرسم التخطيطي التالي العلاقة بين المجموعات والعناصر والخصائص:
|
3 خاصية A 2 كائن 1 مجموعة |
|---|
المعرّفات
عند استخدام عنصر أو مجموعة أو خاصية في تعبير، يمكنك الإشارة إلى أي واحد منها باستخدام المعرّف. يتضمن معرف اسم العنصر الذي يتم تعريفه بالإضافة إلى اسم العنصر الذي ينتمي إليه. على سبيل المثال، يتضمن المعرف لحقل اسم الحقل واسم الجدول الذي ينتمي إليه الحقل. مثال على هذا النوع من المعرف:
[Customers]![BirthDate]
في بعض الحالات، يعمل اسم العنصر بحد ذاته كمعرف. ينطبق هذا الأمر عندما يكون اسم العنصر فريداً في سياق التعبير الذي تقوم بإنشائه. ويصبح باقي المعرف متضمناً في السياق. على سبيل المثال، إذا كنت تصمم استعلاماً يستخدم جدولاً واحداً فقط، فستعمل أسماء الحقول وحدها كمعرفات، وذلك لأن أسماء الحقول في أي جدول يجب أن تكون فريدة في هذا الجدول. ولأنك تستخدم جدولاً واحداً فقط، يكون اسم الجدول مضمناً في أي معرّف تستخدمه في الاستعلام للإشارة إلى حقل ما.
في حالات أخرى، يجب أن تكون أجزاء المعرّف صريحة لكي يعمل المرجع. ينطبق هذا الأمر عندما لا يكون المعرف فريداً في سياق التعبير. وعند وجود التباس، يجب أن تكون هناك أجزاء صريحة في المعرف تكفي لجعله فريداً في السياق. على سبيل المثال، بفرض أنك تقوم بتصميم استعلام يستخدم جدول باسم "المنتجات" وجدول آخر باسم "الطلبات"، وكلا الجدولين يحتويان على حقل باسم ProductID. في هذه الحالة، فإن المعرف الذي تستخدمه في الاستعلام للإشارة إلى الحقل ProductID يجب أن يشتمل على اسم الجدول بالإضافة إلى اسم الحقل. على سبيل المثال:
[Products]![ProductID]
عوامل تشغيل المعرف هناك ثلاثة عوامل تشغيل يمكن استخدامها في المعرف:
- عامل تشغيل الانفجار (
!) - عامل تشغيل النقطة (
.) - عامل تشغيل الأقواس المربعة (
[ ])
يمكن استخدام عوامل التشغيل هذه عن طريق إحاطة كل جزء من المعرف بأقواس مربعة، ثم ضمها باستخدام إما عامل التشغيل "علامة التعجب" أو عامل التشغيل "النقطة". على سبيل المثال، يمكن التعبير عن معرف لحقل يسمى اسم العائلة في جدول يسمى "الموظفون" ك [Employees]![Last Name]. يخبر عامل التشغيل "علامة التعجب" Access بأن ما يلي هو عنصر ينتمي إلى المجموعة التي تسبق عامل التشغيل "علامة التعجب". في هذه الحالة، يعتبر [اسم العائلة] عنصر حقل ينتمي إلى المجموعة [الموظفون]، والتي تعتبر بحد ذاتها عنصر جدول.
طبقاً للقواعد، ليس من الضروري دائماً كتابة الأقواس المربعة حول المعرف أو المعرف الجزئي. إذا لم تكن هناك مسافات أو أحرف خاصة أخرى في المعرف، يضيف Access الأقواس تلقائياً عندما يقرأ التعبير. ومع ذلك، من الممارسات الجيدة كتابة الأقواس بنفسك - وهذا يساعدك على تجنب الأخطاء، ويعمل أيضا كدليل مرئي على أن جزءا معينا من التعبير هو معرف.
الدالات وعوامل التشغيل والثوابت والقيم
لإنشاء تعبير، تحتاج إلى أكثر من المعرفات - تحتاج إلى تنفيذ إجراء من نوع ما. يمكنك استخدام الدالات وعوامل التشغيل والثوابت لتنفيذ إجراءات معينة في التعبير.
الدالات
الدالة هي إجراء يمكن استخدامه في تعبير ما. بعض الدالات مثل "التاريخ" لا تتطلب أي إدخال لكي تعمل. غير أن معظم الدالات تتطلب إدخالاً يسمى الوسيطات.
في المثال في بداية هذه المقالة، تستخدم الدالة DatePart وسيطتين: وسيطة فاصل زمني، بقيمة "yyyy" ووسيطة تاريخ، بقيمة [Customers]![BirthDate]. تتطلب الدالة DatePart هاتين الوسيطتين (الفاصل الزمني والتاريخ) على الأقل، ولكن يمكن أن تقبل ما يصل إلى أربع وسيطات.
تعرض القائمة التالية بعض الدالات شائعة الاستخدام في التعبيرات. انقر فوق ارتباط كل دالة للحصول على مزيد من المعلومات حول بناء الجملة المستخدم مع تلك الدالة.
يتم استخدام الدالة Date لإدراج التاريخ الحالي للنظام في تعبير ما. ويتم استخدامها بشكل شائع مع الدالة "Format"، كما يمكن استخدامها أيضاً مع معرفات الحقول التي تحتوي على بيانات التاريخ/الوقت.
=Date()يتم استخدام الدالة DatePart لتحديد جزء من تاريخ أو استخراجه - عادة ما يكون تاريخا يتم الحصول عليه من معرف حقل، ولكن في بعض الأحيان قيمة تاريخ يتم إرجاعها بواسطة دالة أخرى، مثل التاريخ.
DatePart ( "yyyy", Date())يتم استخدام الدالة DateDiff لتحديد الفرق بين تاريخين - عادة بين تاريخ يتم الحصول عليه من معرف حقل وتاريخ يتم الحصول عليه باستخدام الدالة Date.
=DateDiff("d", Now(), [Orders].[ReceiveBefore])-10يتم استخدام الدالة Format لتطبيق تنسيق ما على معرّف وعلى نتائج دالة أخرى.
Format([Date],"ww")=Format(Now(),"ww")-1يتم استخدام الدالة IIf لتقييم تعبير على أنه صحيح أو خاطئ، ثم إرجاع قيمة واحدة إذا تم تقييم التعبير على أنه صحيح، وقيمة مختلفة إذا تم تقييم التعبير على أنه خطأ.
=IIf([CountryRegion]="Italy", "Italian", "Some other language")يتم استخدام الدالة InStr للبحث عن موضع حرف أو سلسلة داخل سلسلة أخرى. ويتم عادة الحصول على السلسلة التي يتم البحث عنها من معرف حقل.
InStr(1,[IPAddress],".")يتم استخدام الدالات Left وMid وRight لاستخراج الأحرف من السلسلة، بداية من الحرف الموجود في أقصى اليسار (Left) أو من موضع محدد في الوسط (Mid) أو من الحرف في أقصى اليمين (Right). كما يتم استخدامها بشكل شائع مع الدالة InStr. ويتم عادة الحصول على السلسلة التي تستخرج هذه الدالات الأحرف منها من معرف حقل.
Left([ProductName], 1) Right([AssetCode], 2) Mid([Phone],2,3)
للحصول على قائمة بالدالات، راجع الدالات (مرتبة حسب الفئة).
عوامل التشغيل
عامل التشغيل هو كلمة أو رمز يدل على علاقة معينة حسابية أو منطقية بين عناصر التعبير الأخرى. يمكن أن تكون عوامل التشغيل:
-
حسابي، مثل علامة الجمع (
+). -
المقارنة، مثل علامة التساوي (
=). -
منطقي، مثل
Not. -
التسلسل، مثل
&. -
خاص، مثل
Like.
يتم استخدام عوامل التشغيل بشكلٍ عام لتوضيح علاقة بين معرفين. تصف الجداول التالية عوامل التشغيل التي يمكن استخدامها في تعبيرات Access.
يتم استخدام عوامل التشغيل الحسابية لحساب قيمة من رقمين أو أكثر أو لتغيير علامة عدد من الموجب إلى السالب.
| عامل التشغيل | الغرض | مثال |
|---|---|---|
+ |
جمع رقمين. | [Subtotal]+[SalesTax] |
- |
العثور على الفرق بين رقمين أو توضيح القيمة السالبة لرقم. | [Price]-[Discount] |
* |
ضرب رقمين. | [Quantity]*[Price] |
/ |
قسمة الرقم الأول على الرقم الثاني. | [Total]/[ItemCount] |
\ |
تقريب كلا الرقمين إلى رقمين صحيحين، وقسمة الرقم الأول على الرقم الثاني، ثم اقتطاع النتيجة لتصبح عدداً صحيحاً. | [Registered]\[Rooms] |
Mod |
قسمة الرقم الأول على الرقم الثاني وإرجاع الباقي فقط. | [Registered] Mod [Rooms] |
^ |
رفع رقم إلى قوة الأس. | رقم^الأس |
مقارنة
يتم استخدام عوامل تشغيل المقارنة لمقارنة القيم وإرجاع نتيجة إما أن تكون بالقيمة صواب أو بالقيمة خطأ أو بالقيمة "Null" (قيمة غير معروفة).
| عامل التشغيل | الغرض |
|---|---|
< |
تحديد ما إذا كانت القيمة الأولى أصغر من القيمة الثانية. |
<= |
تحديد ما إذا كانت القيمة الأولى أصغر من القيمة الثانية أو مساوية لها. |
> |
تحديد ما إذا كانت القيمة الأولى أكبر من القيمة الثانية. |
>= |
تحديد ما إذا كانت القيمة الأولى أكبر من القيمة الثانية أو مساوية لها. |
= |
تحديد ما إذا كانت القيمة الأولى تساوي القيمة الثانية. |
<> |
تحديد ما إذا كانت القيمة الأولى لا تساوي القيمة الثانية. |
في جميع الحالات، إذا كانت القيمة الأولى أو القيمة الثانية هي Null، فإن النتيجة هي أيضا Null. لأن Null يمثل قيمة غير معروفة، فإن نتيجة أي مقارنة مع Null غير معروفة أيضا.
الدالات المنطقية
يمكنك استخدام عوامل التشغيل المنطقية لتجميع قيمتين وإرجاع نتيجة ستكون إما بالقيمة صواب أو خطأ أو قيمة فارغة. ويمكن أن يشار إلى عوامل التشغيل المنطقية أيضاً كعوامل التشغيل المنطقية Boolean.
| عامل التشغيل | الاستخدام | الوصف |
|---|---|---|
And |
Expr1 وExpr2 | True عندما يكون كل من Expr1 وExpr2 بالقيمة صواب. |
Or |
Expr1 أو Expr2 | True عندما يكون أي من Expr1 أو Expr2 بالقيمة صواب. |
Eqv |
Expr1 Eqv Expr2 | True عندما يكون كل من Expr1 وExpr2 بالقيمة صواب أو كل من Expr1 وExpr2 بالقيمة خطأ. |
Not |
Not Expr | يكون بالقيمة صواب عندما يكون Expr بالقيمة خطأ. |
Xor |
Expr1 Xor Expr2 | يكون بالقيمة صواب عندما يكون أي من Expr1 أو Expr2 بالقيمة صواب، ولكن ليس كلاهما. |
التسلسل
يمكنك استخدام عوامل تشغيل التسلسل لدمج قيمتين نصيتين في سلسلة واحدة.
| عامل التشغيل | الاستخدام | الوصف |
|---|---|---|
& |
سلسلة 1 وسلسلة 2 | دمج سلسلتين لتكوين سلسلة واحدة. |
+ |
سلسلة 1 + سلسلة 2 | دمج سلسلتين لتكوين سلسلة واحدة ونشر القيم الفارغة. |
خاص
يمكنك استخدام عوامل التشغيل الخاصة كما هو موضح في الجدول التالي.
| عامل التشغيل | الوصف | لمزيد من المعلومات |
|---|---|---|
Is Null or Is Not Null |
تحديد ما إذا كانت القيمة Null أو ليست Null. | |
Like "pattern" |
يطابق قيم السلسلة باستخدام عوامل تشغيل ?أحرف البدل و *. |
عامل التشغيل Like |
Between val1 And val2 |
تحديد ما إذا كانت قيمة رقمية أو قيمة تاريخ توجد ضمن نطاق معين. | عامل التشغيل Between...And |
In(string1,string2...) |
تحديد ما إذا كانت قيمة سلسلة موجودة داخل مجموعة من قيم السلسلة. | عامل التشغيل In |
الثوابت
الثابت هو قيمة معروفة لا تتغير ويمكن استخدامها في تعبير. هناك أربعة ثوابت شائعة الاستخدام في Access:
-
Trueيشير إلى شيء صحيح منطقيا. -
Falseيشير إلى شيء خطأ منطقيا. -
Nullيشير إلى عدم وجود قيمة معروفة. -
"" (empty string)يشير إلى قيمة معروفة بأنها فارغة.
يمكن استخدام الثوابت كوسيطات لدالة، ويمكن استخدامها في تعبير كجزء من معيار. على سبيل المثال، يمكنك استخدام ثابت السلسلة الفارغة ("") كجزء من معيار لعمود في استعلام لتقييم قيم الحقل لهذا العمود، عن طريق إدخال ما يلي كمعيار: <>"". في هذا المثال، <> هو عامل تشغيل وهو "" ثابت. وباستخدامهما معاً، يوضحان أن المعرف الذي تم تطبيقهما عليه يجب مقارنته بسلسلة فارغة. يكون التعبير الناتج بالقيمة صواب عندما تكون قيمة المعرف أي شيء ما عدا سلسلة فارغة.
كن حذرا عند استخدام Null الثابت. في معظم الحالات، سيؤدي استخدام Null جنبا إلى جنب مع عامل المقارنة إلى حدوث خطأ. إذا كنت تريد مقارنة قيمة ب Null في تعبير، فاستخدم Is Null عامل التشغيل أو Is Not Null .
القيم
يمكنك استخدام قيم حرفية في التعبيرات الخاصة بك، مثل الرقم 1254 أو السلسلة "أدخل رقماً بين 1 و10". يمكنك أيضاً استخدام القيم الرقمية، التي قد تكون سلسلة من الأرقام تتضمن علامة ونقطة عشرية، إذا لزم الأمر. في حالة عدم وجود علامة، يفترض Access قيمة موجبة. لجعل قيمة سالبة، قم بتضمين علامة الطرح (-). يمكنك أيضاً استخدام الرمز العلمية. للقيام بذلك، اكتب "E" أو "e" وعلامة الأس (مثال: 1.0E-6).
عند استخدام سلاسل نصية، ضعها ضمن علامات اقتباس لضمان قيام Access بتفسيرها بطريقة صحيحة. في بعض الحالات، يقوم Access بتوفير علامات الاقتباس نيابة عنك. على سبيل المثال، عندما تكتب نصاً في تعبير لقاعدة تحقق من الصحة أو لمعايير استعلام، يقوم Access بإحاطة السلاسل النصية بعلامات اقتباس تلقائياً.
على سبيل المثال، إذا كتبت النص Paris، فسيعرض Access "باريس" في التعبير. إذا كنت تريد أن ينتج تعبير سلسلة محاطة بالفعل بعلامات اقتباس، يمكنك إحاطة السلسلة المتداخلة إما بعلامات اقتباس مفردة (') أو ضمن ثلاث مجموعات من علامات الاقتباس المزدوجة ("). على سبيل المثال، التعبيرات التالية مكافئة:
Forms![Contacts]![City]. DefaultValue = ' "Paris" '
Forms![Contacts]![City].DefaultValue = " " "Paris" " "
لاستخدام قيم التاريخ/الوقت، قم بإحاطة القيم بعلامات الجنيه (#). على سبيل المثال، #7-3-17# و#7-مارس-17# و#7-مارس-2017# هي كلها قيم تاريخ/وقت صالحة. عندما يصادف Access قيمة تاريخ/وقت صالحة مضمّنة بين أحرف #، سيعاملها تلقائياً كنوع بيانات تاريخ/وقت.
يبلغ حد التداخل للتعبيرات في قاعدة بيانات على ويب 65
لن تعمل التعبيرات المتداخلة بعمق أكثر من 65 مستوى في المستعرض، لذلك يجب ألا تستخدم أي تعبيرات من هذا القبيل في قاعدة بيانات Access على الويب. لن تتلقى أي رسائل خطأ - لن يعمل التعبير فقط.
يمكن أن يؤدي استخدام &ANDعوامل التشغيل و و إلى OR إنشاء مستويات تداخل إضافية على الخادم لا تنعكس في عميل Access. على سبيل المثال، "a" & "b" & "c" التعبير غير متداخل في منشئ التعبير، ولكن في SharePoint يصبح concatenate.Db("a", concatenate.Db("b", "c") ). تنشئ هذه الترجمة مستوى واحداً من التداخل. يمكن أن يؤدي استخدام العديد من عوامل التشغيل المتتالية &ANDأو أو OR في تعبير واحد إلى تجاوز حد تداخل الخادم البالغ 65، وعند هذه النقطة لن يعمل التعبير في المستعرض.
استخدام منشئ التعبيرمقدمة حول التعبيراتإنشاء تعبيرأمثلة على التعبيرات