الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مطلوب تطبيق دالة if على نموذج بسيط

بدأه LEDOLEDO في 13 يوليو 2010 · 2 رد · 871 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوه الخبراء الافاضل

المطلوب في هذا المرفق هو الآتي

عندما اقوم بتطبيق دالة if على النموذج عن طريق زر الامر يقوم بتطبيقها على سجل منفرد وليس كل السجلات

المطلوب المساعده في تعديل هذا المثال ليقوم زر الامر بتطبيق الدالة على جميع السجلات مرة واحده من خلال ضغطه زر واحده

مع الشكر

q.rar

#2

الأخ الكريم،

لديك على الأقل طريقتان، كما في الكود التالي:

Private Sub Command6_Click()
    With Me.RecordsetClone
        .MoveFirst
        While Not .EOF
            .Edit
            .Fields("number1") = IIf(UCase(.Fields("name1")) = "W", 1, 2)
            .Update
            .MoveNext
        Wend
    End With

'    أو هذا الكود
'    DoCmd.SetWarnings False
'    DoCmd.RunSQL "UPDATE Table1 SET number1 = IIf(UCase(name1) = 'W', 1, 2)"
'    Me.Requery
'    DoCmd.SetWarnings True
End Sub

والملف المرفق يحوي التعديل...

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

نسخة مجموعة السجلات تمثلها الخاصية RecordsetClone للنموذج.

الانتقال إلى السجل الأول عبر الطريقة MoveFirst لمجموعة السجلات.

الدوران على كل السجلات عبر العبارة While.

الانتقال إلى السجل التالي في بعد كل دورة عبر الطريقة MoveNext لمجموعة السجلات.

فحص الشرط عبر الدالة IIf.

من أجل تحديث حقل في مجموعة السجلات، نحتاج إلى استخدام الطريقتين Edit وUpdate قبل وبعد تعيين القيمة على التوالي.

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

والله أعلم.

q.rar

1
#3

لك كل التحية والتقدير على المسانده اخي

تم تعديل هذه المشاركة بواسطة LEDOLEDO في 14 يوليو 2010 في 07:19

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…