المقال الرابع من السلسلة التفاعلية

أسرار الاستعلامات المتقدمة في مايكروسوفت أكسس: أنواعها، لغة SQL، ومُوَلّد الاستعلامات التفاعلي 2026

الدليل الاحترافي الكامل لكتابة استعلامات أكسس المتقدمة: استعلامات التحديد ذات المعايير المركبة، الاستعلامات الإجرائية (تحديث، حذف، إلحاق)، الجدولة المتقاطعة (Crosstab)، معايير التواريخ والنصوص، واستوديو تفاعلي يولد كود SQL وتعليمات شبكة التصميم QBE بضغطة زر.

1. خارطة أنواع الاستعلامات في محرك مايكروسوفت أكسس (ACE / Jet)

الاستعلامات (Queries) هي العقل المفكر لأي قاعدة بيانات أكسس؛ فهي ليست مجرد وسيلة لعرض البيانات بل محرك قوي للفرز والفلترة والحساب والتحويل والترحيل الآلي. يوفر أكسس 6 أنواع رئيسية:

استعلامات التحديد (Select)

جلب وتجميع السجلات من عدة جداول مرتبطة مع حساب الحقول التراكمية وتطبيق المعايير المنطقية.

استعلامات المعايير (Parameter)

استعلامات تفاعلية تطلب من المستخدم إدخال قيمة عند التشغيل أو تقرأ معاييرها مباشرة من عناصر شاشات النماذج.

الجدولة المتقاطعة (Crosstab)

تحويل السجلات إلى أعمدة تقاطعية ملخصة مع مجاميع الصفوف والأعمدة تماماً مثل تقارير Pivot Table.

استعلامات التحديث (Update)

تعديل دفعة ضخمة من السجلات بضغطة زر (مثل رفع أسعار تصنيف محدد بنسبة 10% أو ترحيل الفواتير).

استعلامات الإلحاق (Append)

نسخ وتغذية سجلات من جدول إلى آخر (مثل ترحيل الحركات الشهرية المنتهية إلى جدول الأرشيف الدائم).

استعلامات الحذف (Delete)

تفريغ السجلات المؤقتة أو حذف السجلات الملغاة بشروط محددة مع دعم التراجع في المعاملات.

2. معايير النصوص والتواريخ في أكسس: تريكات يجب معرفتها

محرك أكسس يمتلك صياغة محددة في معايير شبكة التصميم (QBE Criteria):

قواعد صياغة المعايير في أكسس:
  • التواريخ: تحاط دائماً بعلامة #، مثال: Between #2026-01-01# And #2026-12-31#
  • النصوص وحروف البدل (Wildcards): تستخدم علامة النجمة * بدلاً من % في وضع الـ Access QBE، مثال: Like "أحمد*" لجلب كل الأسماء التي تبدأ بأحمد.
  • فحص القيم الفارغة: Is Null أو Is Not Null (لا تكتب إطلاقاً = Null لأن القيمة الفارغة لا تساوي شيئاً!).
  • المعايير المرجعية للنماذج: [Forms]![frm_Sales]![txt_SearchCustomerID] لقراءة القيمة من الشاشة المفتوحة فوراً.

3. تشريح استعلام الجدولة المتقاطعة (Crosstab Query)

استعلام الجدولة المتقاطعة في أكسس ينفرد بتركيب لغوي خاص يبدأ بكلمة TRANSFORM. إليك الكود الكامل لإنشاء تقرير مبيعات سنوي يعرض كل شهر كعمود مستقل لكل مندوب:

Access SQL: Crosstab Query
TRANSFORM Sum(tbl_Invoices.NetTotal) AS MonthlySales
SELECT tbl_Employees.FullName AS SalesRep, Sum(tbl_Invoices.NetTotal) AS TotalYearSales
FROM tbl_Employees 
INNER JOIN tbl_Invoices ON tbl_Employees.EmployeeID = tbl_Invoices.SalesRepID
WHERE Year(tbl_Invoices.InvoiceDate) = 2026
GROUP BY tbl_Employees.FullName
PIVOT "شهر " & Format(tbl_Invoices.InvoiceDate, "mm");
أداة هندسية تفاعلية حصرية

مُنشئ ومُحاكي استعلامات أكسس التفاعلي (Access Query & SQL Builder Studio)

اختر نوع الاستعلام والغرض المطلوب أدناه، وستقوم الأداة بإنشاء كود لغة SQL القياسي المتوافق مع محرك أكسس، مع توضيح خطوات تطبيقه بصرياً داخل شبكة التصميم (QBE Grid).

استعلام تحديد مع فلترة التواريخ

Access SQL Code
-- كود SQL سيظهر هنا

4. أخطاء شائعة في كتابة استعلامات أكسس وحلولها

لماذا يظهر خطأ «Query is too complex» أحياناً في أكسس؟
يحدث هذا عادة عندما يحتوي الاستعلام على عدد كبير من المعايير المنطقية المتقاطعة (OR rows)، أو كثرة دوال IIf المتداخلة، أو ربط أكثر من 15 جدولاً في نفس الوقت. الحل هو تقسيم الاستعلام المعقد إلى استعلامين متتاليين (Nested Queries) أو بناء جدول مؤقت لحفظ النتائج الوسيطة.
لماذا تصبح بعض الاستعلامات في أكسس غير قابلة للتعديل (Read-Only)؟
يقفل أكسس إمكانية التعديل على نتائج الاستعلام في حالات محددة: إذا كان الاستعلام يحتوي على تجميع GROUP BY أو SUM، أو استخدام كلمة DISTINCT، أو الربط بين جداول لا تمتلك مفاتيح أساسية واضحة في علاقة 1-to-Many، أو عند استخدام استعلامات UNION.
أحمد الشيمي

م. أحمد الشيمي

مطور برمجيات واستشاري استعلامات قواعد البيانات والـ SQL

أمتلك خبرة عملية في تحسين سرعة استعلامات قواعد البيانات المعقدة، وبناء محركات التقارير التحليلية للشركات، ومعالجة ملايين السجلات بأعلى كفاءة زمنية.

تواصل لطلب استشارة أو تحسين أداء استعلاماتك

هل تعاني من بطء تقاريرك أو صعوبة صياغة استعلامات معقدة في أكسس؟

نساعدك في إعادة كتابة استعلاماتك بلغة SQL محسنة وإضافة الفهارس الذكية للحصول على تقارير فورية ودقيقة تنفذ في أجزاء من الثانية مهما كبر حجم البيانات.

تم النسخ بنجاح!