سؤال

أحاول منع المراجع الدائرية (أو حتى المتتالية) في بياناتي ، ويبدو أنها جزء يعمل فقط من الوقت.

في Access 2007 ، لدي الجدول التالي:

create table mfr (
    mfr_id                 Autonumber,
    mfr_nm                 Text(255),
    mfr_is_alias_for_id    Long Integer
)

أقوم باستيراد مجموعة من البيانات من Excel ، و MFR_NM هي واحدة من الأعمدة من ورقة العمل. لا يمكنني التحكم في كيفية إدخال البيانات في Excel ، لذلك أريد طريقة لالتقاط تهجئة بديلة باعتبارها نفس الشيء "حقًا". حتى الآن ، جيد جدًا (أعتقد ...).

لقد قمت الآن ببناء شكل من هذا الجدول. لقد حصلت على combobox للاسم المستعار-again ، حتى الآن ، جيد جدا. ومع ذلك ، عندما أقوم بإضافة هذا الرمز إلى حدث QuortuPdate ، تصبح الأمور "مثيرة للاهتمام" (تم حذف الأخطاء):

If Not IsNull(cboMfrAlias) Then
    If Not IsNull(DLookup("mfr_is_alias_for_id", "mfr", "mfr_id=" & cboMfrAlias)) Then
        MsgBox """Alias for"" must not also be an alias.", vbExclamation
        Cancel = True
    End If
End If

يعمل هذا تمامًا كما أتوقع عندما يكون النموذج في عرض النموذج ، ولكن إذا كنت في عرض ورقة البيانات ، يتبع MSGBox على الفور خطأ "لا يوجد سجل حالي" تم إنشاؤه هو ليس اشتعلت عن طريق التعامل مع الأخطاء داخل subpdate sub.

هل يمكنني التقاط هذا الخطأ؟ أين؟

هل كانت مفيدة؟

المحلول

يجب أن تقوم قائمة القائمة المنسدلة بتصفية الإدخالات التي هي الأسماء المستعارة. بمعنى آخر ، لا تعرض خيارًا لا يستطيع المستخدم القيام به.

يمكنك القيام بذلك عن طريق القضاء ببساطة من القائمة المنسدلة حيث لا يكون MFR_IS_ALIAS_FOR_ID فارغًا.

لقد قمت بتنفيذ هذا في أشكال مختلفة ويعمل بشكل جيد.

نصائح أخرى

أنا أتناول جزء الخطأ "لا سجل حالي" من سؤالك ، منذ فترة طويلة. بعد التحقق من Google للحصول على إجابة ، وجدت هذا حلقة الوصل الذي كان مفيدًا. ومع ذلك ، بدلاً من استخدام NZ () لتحويل الحقل الثنائي المزعج في استعلام إجمالي ، استخدمت troublesomefield: IIF([troublesomefield] IS NULL,NULL,[troublesomefield]) وهذا عمل على إبعاد الخطأ. لذا فإن الحل الخاص بي هو مجرد تباين صغير في الإجابة الأصلية التي وجدتها ، لكنها تدور حول الخطأ وتتيح لك الاحتفاظ بالخلفيات إذا كنت تريد ...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top