Left(string, length)
الوظيفة: استخراج عدد محدد من الأحرف من بداية النص.
SELECT Left("محمد أحمد", 3) AS النتيجة
-- النتيجة: "محم"
مرجع شامل وتفاعلي لأهم الدوال المستخدمة في استعلامات آكسس مع أمثلة عملية
Left(string, length)
الوظيفة: استخراج عدد محدد من الأحرف من بداية النص.
SELECT Left("محمد أحمد", 3) AS النتيجة
-- النتيجة: "محم"
Right(string, length)
الوظيفة: استخراج عدد محدد من الأحرف من نهاية النص.
SELECT Right("محمد أحمد", 4) AS النتيجة
-- النتيجة: "أحمد"
Mid(string, start, length)
الوظيفة: استخراج جزء من النص بدءاً من موضع محدد.
SELECT Mid("قاعدة البيانات", 6, 8) AS النتيجة
-- النتيجة: "البيانات"
Len(string)
الوظيفة: حساب طول النص (عدد الأحرف).
SELECT Len("قاعدة البيانات") AS الطول
-- النتيجة: 12
Trim(string)
الوظيفة: إزالة المسافات من بداية ونهاية النص.
SELECT Trim(" مرحبا ") AS النتيجة
-- النتيجة: "مرحبا"
InStr(string, substring)
الوظيفة: البحث عن موضع أول ظهور لنص فرعي داخل النص.
SELECT InStr("قاعدة البيانات", "البيانات") AS الموضع
-- النتيجة: 6
Replace(string, find, replace)
الوظيفة: استبدال جزء من النص بجزء آخر.
SELECT Replace("قاعدة البيانات", "البيانات", "المعلومات") AS النتيجة
-- النتيجة: "قاعدة المعلومات"
Abs(number)
الوظيفة: إرجاع القيمة المطلقة للرقم (بدون إشارة سالبة).
SELECT Abs(-15) AS النتيجة
-- النتيجة: 15
Round(number, decimals)
الوظيفة: تقريب الرقم إلى عدد محدد من الخانات العشرية.
SELECT Round(15.456, 2) AS النتيجة
-- النتيجة: 15.46
Int(number)
الوظيفة: إزالة الجزء العشري والتقريب للأسفل لأقرب عدد صحيح.
SELECT Int(15.89) AS النتيجة
-- النتيجة: 15
Date()
الوظيفة: الحصول على التاريخ الحالي للنظام.
SELECT Date() AS التاريخ_الحالي
-- النتيجة: (مثال) 09/07/2025
Time()
الوظيفة: الحصول على الوقت الحالي للنظام.
SELECT Time() AS الوقت_الحالي
-- النتيجة: (مثال) 14:30:25
Now()
الوظيفة: الحصول على التاريخ والوقت الحاليين معاً.
SELECT Now() AS التاريخ_والوقت
-- النتيجة: (مثال) 09/07/2025 14:30:25
DateAdd(interval, number, date)
الوظيفة: إضافة فترة زمنية (يوم, شهر, سنة) إلى تاريخ محدد.
SELECT DateAdd("d", 30, Date()) AS بعد_30_يوم
-- يضيف 30 يوماً للتاريخ الحالي
DateDiff(interval, date1, date2)
الوظيفة: حساب الفرق الزمني بين تاريخين.
SELECT DateDiff("yyyy", [تاريخ_الميلاد], Date()) AS العمر
-- يحسب العمر بالسنوات
CStr(expression)
الوظيفة: تحويل أي قيمة إلى نوع بيانات نصي (String).
SELECT CStr(125) & " ريال" AS السعر_كنص
-- النتيجة: "125 ريال"
CInt(expression)
الوظيفة: تحويل قيمة إلى نوع بيانات رقم صحيح (Integer).
SELECT CInt("125.5") AS رقم_صحيح
-- النتيجة: 126 (يتم التقريب)
CDate(expression)
الوظيفة: تحويل نص أو رقم إلى نوع بيانات تاريخ (Date).
SELECT CDate("2025-07-09") AS تاريخ
-- النتيجة: 09/07/2025
IIf(condition, true_value, false_value)
الوظيفة: إرجاع قيمة إذا كان الشرط صحيحاً، وقيمة أخرى إذا كان خاطئاً.
SELECT IIf([الكمية] > 0, "متوفر", "غير متوفر") AS الحالة
-- يرجع "متوفر" لو الكمية أكبر من صفر
Switch(expr1, val1, expr2, val2, ...)
الوظيفة: تقييم سلسلة من الشروط وإرجاع القيمة المرتبطة بأول شرط صحيح.
SELECT Switch(
[الدرجة] >= 90, "ممتاز",
[الدرجة] >= 80, "جيد جداً"
) AS التقدير
IsNull(expression)
الوظيفة: التحقق إذا كانت القيمة فارغة (Null).
SELECT * FROM العملاء WHERE IsNull([الهاتف])
-- يرجع العملاء الذين ليس لديهم رقم هاتف
تستخدم هذه الدوال مع عبارة GROUP BY
لحساب إجماليات على
مجموعة من السجلات.
Sum(expression)
الوظيفة: حساب مجموع القيم في حقل رقمي.
SELECT Sum([الراتب]) FROM الموظفين
-- يرجع مجموع كل الرواتب
Count(expression)
الوظيفة: حساب عدد السجلات.
SELECT Count(*) FROM الموظفين
-- يرجع العدد الإجمالي للموظفين
Avg(expression)
الوظيفة: حساب المتوسط الحسابي للقيم.
SELECT Avg([الراتب]) FROM الموظفين
-- يرجع متوسط الرواتب
Max(expression)
/ Min(expression)
الوظيفة: إيجاد القيمة الأعلى أو الأدنى.
SELECT Max([الراتب]) AS اعلى_راتب FROM الموظفين
-- يرجع أعلى راتب في الجدول
تستخدم للبحث عن قيم أو حساب إجماليات في جدول أو استعلام آخر دون الحاجة لعمل ربط (Join).
DLookup(field, domain, criteria)
الوظيفة: البحث عن قيمة حقل معين في جدول بناءً على شرط.
DLookup("اسم_المنتج", "المنتجات", "ProductID = 5")
-- يرجع اسم المنتج الذي رقمه 5
DCount(field, domain, criteria)
الوظيفة: حساب عدد السجلات في جدول بناءً على شرط.
DCount("*", "الطلبات", "CustomerID = 'ALFKI'")
-- يرجع عدد طلبات العميل 'ALFKI'
DSum(field, domain, criteria)
الوظيفة: حساب مجموع قيم حقل في جدول بناءً على شرط.
DSum("المبلغ", "الفواتير", "تاريخ_الفاتورة >= #1/1/2024#")
-- يرجع مجموع الفواتير لعام 2024
Nz(expression, value_if_null)
الوظيفة: استبدال القيم الفارغة (Null) بقيمة افتراضية تحددها.
SELECT [الاسم], Nz([الملاحظات], "لا يوجد")
-- إذا كان حقل الملاحظات فارغاً، يعرض "لا يوجد"
Format(expression, format_string)
الوظيفة: تنسيق عرض الأرقام، التواريخ، والنصوص بشكل محدد.
SELECT Format(Now(), "dddd, d mmmm, yyyy")
-- النتيجة: "الأربعاء, 9 يوليو, 2025"
هذا المثال يدمج دوالاً متعددة لعرض معلومات الموظفين بشكل منسق ومحسوب.
SELECT
[الاسم_الأول] & " " & [الاسم_الأخير] AS الاسم_الكامل,
DateDiff("yyyy", [تاريخ_الميلاد], Date()) AS العمر,
IIf([الراتب] > 5000, "راتب مرتفع", "راتب عادي") AS تقييم_الراتب,
Format([تاريخ_التوظيف], "yyyy-mm-dd") AS تاريخ_توظيف_منسق,
DLookup("اسم_القسم", "الأقسام", "رمز_القسم = " & [ID_القسم]) AS القسم
FROM
الموظفون
WHERE
IsNull([تاريخ_الاستقالة]);
استخدم الفهرسة (Indexing): تأكد من وجود فهارس على الحقول التي تستخدمها بكثرة في شروط `WHERE` أو في دوال النطاق (مثل `DLookup`) لتسريع الاستعلامات بشكل كبير.
تعامل مع القيم الفارغة (Null): استخدم دوال `IsNull()` للتحقق من الفراغ أو `Nz()` لاستبدال القيم الفارغة بقيمة افتراضية (مثل صفر أو نص فارغ) لتجنب الأخطاء في العمليات الحسابية أو السلاسل النصية.
تجنب الدوال في `WHERE` على الحقول المفهرسة: تطبيق دالة على حقل في جملة `WHERE` (مثال: `WHERE Year([OrderDate]) = 2024`) يمنع قاعدة البيانات من استخدام الفهرس الخاص بهذا الحقل. الأفضل هو: `WHERE [OrderDate] >= #1/1/2024# AND [OrderDate] < #1/1/2025#`.
احذر من أنواع البيانات: تأكد من أنك تستخدم دالة التحويل المناسبة (مثل `CInt`, `CDate`) وأن البيانات متوافقة معها لتجنب أخطاء عدم تطابق الأنواع (Type Mismatch).