لا تظهر النتائج عند تشغيل استعلام في قاعدة بيانات Access وجداول ملقم SQL استعلام المراجع المرتبطة


تنطبق هذه المقالة إلى ملف Microsoft Access قاعدة بيانات (mdb.) أو ملف (.accdb) من قاعدة بيانات Microsoft Access.

متوسطة: يتطلب ماكرو الأساسية ترميز والمهارات إمكانية التشغيل المتداخل.

الأعراض


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

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

الحل البديل


للتغلب على هذه المشكلة، استخدم إحدى الطرق التالية:
  • إعادة كتابة الاستعلام

    يمكنك إعادة كتابة استعلام Microsoft Access استخدام الكلمة الأساسية مثل معايير الضم. يمكنك استخدام عامل التشغيل LIKE لمقارنة حقل إلى حقل آخر في الجداول المرتبطة من قواعد بيانات مختلفة بدلاً من استخدام ANSI الانضمام.

    على سبيل المثال، إذا كان الاستعلام الأصلي التالية، حيث يرتبط dbo_db1_table1 من SQL Server قاعدة البيانات DB1 و dbo_db2_table1، dbo_db2_table2 المرتبطة من قاعدة بيانات ملقم SQL DB2:
    SELECT dbo_db1_table1.db1_table1_col1, 
    dbo_db2_table1.db2_table1_col1,
    dbo_db2_table2.db2_table2_col1
    FROM
    (
    dbo_db1_table1 INNER JOIN dbo_db2_table1
    ON
    dbo_db1_table1.db1_table1_col2 = dbo_db2_table1.db2_table1_col2
    ) INNER JOIN dbo_db2_table2
    ON
    dbo_db2_table1.db2_table1_col3 = dbo_db2_table2.db2_table2_col3;

    إعادة صياغة الاستعلام كما يلي:
    SELECT dbo_db1_table1.db1_table1_col1, 
    dbo_db2_table1.db2_table1_col1,
    dbo_db2_table2.db2_table2_col1
    FROM
    dbo_db1_table1,
    dbo_db2_table1 INNER JOIN dbo_db2_table2
    ON
    dbo_db2_table1.db2_table1_col3 = dbo_db2_table2.db2_table2_col3;
    WHERE
    (((dbo_db1_table1.db1_table1_col2 LIKE dbo_db2_table1.db2_table1_col2));
    ملاحظة: هنا، يظهر كل من الانضمام إلى ANSI وبناء جملة ANSI غير الانضمام في نفس الاستعلام.
  • استخدام مشروع قاعدة بيانات Microsoft Access

    لتجنب حدوث المشكلة المذكورة في قسم "الأعراض" من هذه المقالة، استخدم مشروع قاعدة بيانات Microsoft Access بدلاً من قاعدة بيانات Microsoft Access. ارتباط جداول ملقم SQL المناسبة في مشروع قاعدة بيانات Microsoft Access، ثم قم بإنشاء إجراء مخزن لتضمين الاستعلام التالي (حيث تم ربط dbo_db1_table1 من SQL Server قاعدة البيانات DB1 و dbo_db2_table1، dbo_db2_table2 المرتبطة من قاعدة بيانات ملقم SQL DB2):
    SELECT dbo_db1_table1.db1_table1_col1, 
    dbo_db2_table1.db2_table1_col1,
    dbo_db2_table2.db2_table2_col1
    FROM
    (
    dbo_db1_table1 INNER JOIN dbo_db2_table1
    ON
    dbo_db1_table1.db1_table1_col2 = dbo_db2_table1.db2_table1_col2
    ) INNER JOIN dbo_db2_table2
    ON
    dbo_db2_table1.db2_table1_col3 = dbo_db2_table2.db2_table2_col3;

    ستظهر مجموعة النتائج عند تشغيل هذا الإجراء المخزن.
  • استيراد جداول ملقم SQL

    لتجنب حدوث المشكلة المذكورة في قسم "الأعراض" من هذه المقالة، استيراد جداول ملقم SQL لقاعدة بيانات Microsoft Access بدلاً من ربط جداول SQL Server بقاعدة بيانات Access.

    ملاحظة: إذا قمت باستيراد جداول ملقم SQL لقاعدة بيانات Access، لا يمكنك استخدام أحدث البيانات في الجدول الذي تم استيراده للجدول الذي تم استيراده يحتوي على اللقطة من البيانات عند استيراد الجدول.

مزيد من المعلومات


يمكنك تصفية البيانات في Microsoft Access باستخدام الكلمة الأساسية صلة في الاستعلامات. الكلمة الأساسية للصلة تصنف على أنها ANSI JOIN وغير ANSI JOIN. الانضمام إلى ANSI تستخدم الكلمات الأساسية للانضمام وما في الاستعلام. الانضمام ANSI لا يستخدم عبارة where في الاستعلام.

وصل ANSI غير كان أكثر تواترا قبل تطور ANSI 92 SQL وتم تكبير حجمها ل ANSI الانضمام. توصي Microsoft باستخدام ربط ANSI في الاستعلامات التي تستخدم لتصفية البيانات.

المراجع


لمزيد من المعلومات حول كيفية تشغيل "معالج تكبير الحجم"، انقر فوق تعليمات Microsoft Office Access
القائمة " تعليمات "، اكتب "معالج تكبير الحجم"
البحث عن مربع في الجزء "مساعدة" ومن ثم انقر فوق
بدء البحث لعرض الموضوع.


للحصول على معلومات إضافية، انقر فوق رقم المقالة التالي لعرضها في "قاعدة معارف Microsoft":
287414 لا يمكنك ربط الجداول في مشروع Microsoft Access باستخدام اسم مصدر بيانات ODBC (DSN)