ms-access شرح - هل هناك طريقة لتجاوز تحديث السجل التلقائي لنماذج أسيس 2007 التي تم إنشاؤها باستخدام "معالج النماذج"؟





اكواد vba (5)


لماذا تريد؟ يعمل أسيس على أساس قياسي حسب السجل. ليس مثل إكسيل الذي يحفظ جدول البيانات فقط عند اختيار الحفظ أو الخروج.

يبدو أن لديك شكل مستمر مع سجلات متعددة على الشاشة. والطريقة الوحيدة للقيام بذلك هي استخدام جدول "مؤقت" وحفظ محتويات الجدول "المؤقت" إلى الجدول الدائم بمجرد استعدادك. ومع ذلك فإنك سوف تفقد القدرة على تحديد ما إذا كان شخص آخر قد غيرت السجلات إلا إذا كنت تفعل الكثير من العمل.

أنا جديد في أسيس فبا، وأنشأت نموذجا باستخدام "معالج النماذج" الذي يعرض السجلات في جدول. هذا قطعة من الكعكة.

السلوك الذي أحصل عليه مع النموذج، على الرغم من ذلك، هو أن التحديثات إلى السجلات تحدث تلقائيا عند التحرك حول السجلات.

ما أود هو أن تحدث التحديثات فقط عندما أضغط على زر "تحديث" الذي وضعته في النموذج.

يبدو أنني يمكن بناء النموذج من الصفر، تحديث كافة (غير محدود) عناصر التحكم برمجيا، ثم تحديث السجل من عناصر التحكم برمجيا، ولكن هذا يبدو الكثير من العمل.

هل هناك طريقة "لإيقاف" سلوك التحديث التلقائي من داخل أسيس أو باستخدام التعليمات البرمجية فبا؟

شكر!




كما اقترح روبرت، يمكنك تجنب حفظ سجل تغير عن طريق إلغاء الحدث قبل التحديث. سوف تبدو التعليمات البرمجية شيئا من هذا القبيل:

Private Sub Form_BeforeUpdate(Cancel As Integer)
    Me.Undo
    Cancel = True
End Sub

ومع ذلك، فإن هذا النهج يتطلب منك تجاهل أي تغييرات قمت بها إلى السجل قبل أن تتمكن من التحرك قبالة ذلك. دون Me.Undo ، يمكنك إلغاء التحديث، ولكن أسيس لن تسمح لك للانتقال إلى سجل مختلف. يجب عليك حفظ أو تجاهل التغييرات على السجل الحالي قبل الانتقال إلى آخر.

إذا كنت ترغب في الانتقال إلى سجل آخر ولكن لا تجاهل التغييرات أولا، أعتقد أنك بحاجة إلى محاولة مجموعة سجلات منفصلة. انها مجموعة سجلات أدو تقوم بإنشائها في الذاكرة، وليس منضما إلى أي مصدر بيانات. يمكنك إضافة زر أمر لحفظ التغييرات على الأمر. إذا كان يبدو مفيدا، راجع هذه المقالة من قبل داني ليساندريني في قاعدة بيانات المجلة: إنشاء سجلات في الذاكرة أدو




هل هناك طريقة "لإيقاف" سلوك التحديث التلقائي من داخل أسيس أو باستخدام التعليمات البرمجية فبا؟

يمكنك محاولة إلغاء الحدث Form.BeforeUpdate ، ما لم يتم تعيين علامة. عند النقر فوق الزر، تعيين العلم تعيين Form.Dirty إلى Form.Dirty (لحفظ البيانات) ثم قم بإلغاء تحديد العلامة في معالج الحدث Form.BeforeUpdate .




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




أعلم أن هذا السؤال قديم جدًا ، لكنني أود إضافة بضع نقاط ، تم حذفها بشكل غريب:

  1. يمكنك النقر بزر الماوس الأيمن فوق الاستعلام في الحاوية ، والنقر فوق خصائص ، وملء ذلك مع الوصف الخاص بك. النص الذي تقوم بإدخاله بهذه الطريقة يمكن الوصول إليه أيضًا في طريقة عرض التصميم ، في خاصية Descrption
  2. كل حقل يمكن توثيقه كذلك. فقط تأكد من أن نافذة الخصائص مفتوحة ، ثم انقر فوق حقل الاستعلام الذي تريد توثيقه ، وقم بتعبئة الوصف (أعلى قليل جدًا من خاصية التنسيق المعروفة)

إنه لأمر محزن بعض الشيء أن أي منتج (أعرفه) يوثق أوصاف وتعبيرات حقول الاستعلام هذه.





ms-access forms ms-access-2007 access-vba