لقد لاحظت عند الضغط على زر يسار يذهب التركيز يمين وكذلك العكس ، فهذا لتصحيح التركيز
عملت لك تعديلات عدة منها تحديث المجاميع من جديد عندما تقوم بالتراجع عند تعديلات الحقل.
المثال_03.accdb
عزيزي الاختبارات يفضل أن تتم على مثال السائل مع تنوع البيانات وخيارات الإعدادات الإقليمية ولحقل تاريخ فقط بدون وقت.
أما الوقت فهذا حكاية أخرى وله دوال أخرى للتعامل معه ليس المجال هنا لذكرها وحتى لا نفقد التركيز أو نقع في الخلط.
شكرا لكم.
أخي @النجاشي لم أنسى موضوعك وأنا أعمل عليه ولكن أوده أن يخرج بأفضل صورة مع أخذ اعتبارات حجم البيانات.
قد أنتهي منه بالكثير 24 ساعة وربما أقل.
الأفكار كثيرة ، ننتهي من إحداها ثم تطرأ نقاط جديدة نضطر أن نبدأ من جديد، العملية مرهقة.
أما إذا اكتفيت بالمشاركة السابقة فهنيئا لك، وسأنزل عملي بموضوع جديد.
حياك الله عزيزي ، مشكلتي أن الأكسس عندي قديم أعتقد ٢٠٠٧ ولا أستطيع فتح قاعدة البيانات ، إن استطعت ترفع لي نسخة لإصدار ٢٠٠٧ أكون لك شاكرا ، لأني أنا أحتاجها كذلك لعمل بعض التجارب عليها.
جرب أخي هذا الحدث فقد يكفيك عناء تكرار الكود عشر مرات.
طبعا يمكنكم وضع المزيد من الفحص لتفادي أخطاء التشغيل.
ولا تنسى تفعيل خاصية النموذج Key Preview
Private Sub Form_KeyPress(KeyAscii As Integer)
With Screen.ActiveControl
If .ControlSource Like "Day*" Then
DoCmd.RunSQL "UPDATE table_BAIN SET " & .ControlSource & " = " & .Value & " WHERE ID_Time = " & Me.ID_Time
End If
End With
End Sub
وأخمن أن التحديث لن يتم بخاصية Value كون القيمة لا تزال في طور التحديث وعليه حاول تبديل الخاصية إلى Text
طريقة استخدمها مع تكرار حدث ما وحتى أتفادى أخطاء الأسماء استخدم بعض التعديل على الكود (وهذا لا يعني كود المهندس قاسم به خطأ).
لم أستطع أن أفتح قاعدة البيانات والتعديل مباشرة في محرر المنتدى.
With Me.ActiveControl
DoCmd.RunSQL "UPDATE table_BAIN SET " & .Name & " = " & .Value & " WHERE ID_Time = " & Me.ID_Time
End With
صممت لك دالة تتعامل معها كدوال الإكسل ، لا تحتاج لعمل زر ، فقط اكتب الدالة في الخلية الأولى واسحبها للأخير كما العادة.
كذك لا تحتاج إلى صفحة بيانات المحافظات.
الرقم _القومى_02.xlsm
طيب أين دورك أخي @عبدالله بشير عبدالله في الحل؟
الأخ @lionheart نبه إلى جزئية من الكود.
والأخ @عبدالفتاح في بي اكسيل نبه إلى جزئية أخرى.
وأنا بعد رفع مثال السائل أصلحت أكثر من جزئية.
ومع كل الملاحظات هذه لا وجود لحل لمعالجة البيانات، كل ما ذكر محاولات وقف رسائل الخطأ فقط.
ملاحظاتي:
- أن يغلق هذا الموضوع كون رسالة الخطأ اختفت 🙂 .
- يفتح موضوع آخر يشرح فيه السائل المطلوب من إجراء الإضافة والتعديل ويضغ مثالا لبيانات أكثر ويحتوي على نتيجة "يدوية" مفترضة بعد إجراء الإضافة أو التعديل.
- أن ينبه الأخ الزميل @lionheart بالالتزام بالكتابة باللغة العربية كون المنتدى عربي والأعضاء عرب وكثير من الأعضاء لا يجيدون الإنجليزية.
- أن يلتزم بعض الأعضاء عند الكتابة بعرض حلولهم وأن يتركوا التعليقات غير النافعة.
- أن يمتنع من ينوي مهاجمتي على ردي هذا ويبدل هجومه بدعوة صالحة لي وللزملاء الذين يحاولون التصدي "بصدق" لحل مشاكلهم.
عزيزي كما لا يخفى عليكم أن أساس قيمة حقل التاريخ والوقت ما هو إلا رقمي وما نراه نحن إلا تنسيقا نصيا لقيمته الرقمية ، وأنا الحقيقة لا أحول رقمي إلى رقمي بل أهرب من تاثير التنسيق النصي على قيمة التاريخ الرقمية كاحتراز حتى لا أقع كما غيري في مشكلات عدم نجاح المقارنات.
بالطبع لا بد أن يكون نوع الحقل/الصندوق "تاريخ" وإلا سنضطر إلى استخدام دالة وسيطة وهي CDate قبل استخدام دالة CLng.