اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

عدم الحفظ عندما يكون احد حقول النموذج الفرعى فارغ


الحلبي
إذهب إلى أفضل إجابة Solved by ابوبسمله,

الردود الموصى بها

السلام عليكم ورحمة الله وبركاته

مرفق مثال صغير 

اريد عند عدم تسجيل بيانات فى احد الحقول النموذج الفرعى لا يحفظ السجل فى الجدول master

بمعنى عندى نموذج فرعى اسمه balancesub  لو ترك احد حقول هذا الفرعى فارغ لا يتم حفظه فى الجدول المسمى mster 

اما اذا سجل جميع البيانات يقوم بالحفظ بالجدول

جزاكم الله كل خير

عدم الحفظ.accdb

رابط هذا التعليق
شارك

8 ساعات مضت, ابوبسمله said:

اتفضل يادكتور محمد @الحلبي ان شاء الله يكون ما تريد

استاذى ومعلمى القدير / ابنى الاستاذ احمد

ايه الجمال ده الله يفتح عليك ويزيدك علم ـ جميل جدا جدا جدا جدا هذا الكود

اللهم بارك في استاذنا احمد وبارك فى اسرته الكريمة وعافيه فى صحته امين

كل الاحترام والتقدير لاستاذى

  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

شكرا لك أخي أبو بسملة 🙂 

وهذي إضافة بسيطة لنفس الكود في حال أردت ألا تلتغي البيانات .. وإنما يعطيك رسالة تنبيه لإكمال الحقول الناقصة 🙂 

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl As Control
For Each ctl In Me.Controls
    If ctl.ControlType = acTextBox Then
        If Len(ctl.Value & "") = 0 Then
           MsgBox "كمل شغلك :)"
            Cancel = True
        End If
    End If
Next ctl
End Sub

 

  • Like 4
رابط هذا التعليق
شارك

2 ساعات مضت, Moosak said:

هذي إضافة بسيطة لنفس الكود في حال أردت ألا تلتغي البيانات .. وإنما يعطيك رسالة تنبيه لإكمال الحقول الناقصة

اعتقد ان هذه الاضافة ينقصها شئ لان عند التجربة ظهرت لى الرسالة : اكمل شغلك عدة مرات بقدر عدد السجلات

وتظهر ايضا الرسالة عند اغلاق النموذج الرئيسى 

وهذا لايمنع من مشاركة الاستاذ والخبير القدير / الاستاذ موسى معنا وانا شخصيا لا يهمنى الحل قدر مساعدة بعضنا البعض

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

تحية طيبه لحضرتك وللمشاركة

  • Like 2
رابط هذا التعليق
شارك

2 ساعات مضت, الحلبي said:

اعتقد ان هذه الاضافة ينقصها شئ لان عند التجربة ظهرت لى الرسالة : اكمل شغلك عدة مرات بقدر عدد السجلات

كلامك صحيح

والسبب ان الرسالة داخل الحلقة التي تمر على حقول النموذج فاذا كان عدد الحقول الفارغة 1 تظهر رسالة واحد وان كان عدد الحقول الفارغة اكثر سوف تظهر بعدد الحقول

الحقيقة انا لم احمل المثال ولكن كفكرة بسيطة ممكن نجرب اضافة متغيير بسيط رقمي ونستفيد من قيمة المتغيير الافتراضية "0"

Dim x As Byte
Dim ctl As Control
For Each ctl In Me.Controls
    If ctl.ControlType = acTextBox Then
        If Len(ctl.Value & "") = 0 Then
            x = 1
           Cancel = True
        End If
    End If
Next ctl
If x <> 0 Then
MsgBox "كمل شغلك :)"
End If

كما اشرت انا لم اجرب المثال ولكن منطقيا ستكون الاجابة صحيحة

تحياتي

  • Like 5
رابط هذا التعليق
شارك

السلام عليكم 🙂

 

وبتعديل على كود اخوي موسى :

الرسالة تخبرك اي حقل فارغ ، تلغي عملية الحفظ ، ويكون التركيز على الحقل الفارغ :

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim ctl As Control
For Each ctl In Me.Controls
    If ctl.ControlType = acTextBox Then
        If Len(ctl.Value & "") = 0 Then
            MsgBox "رجاء تعبئة الحقل الفارغ " & ctl.name
            Cancel = True
            ctl.setfocus
            exit for
        End If
    End If
Next ctl
End Sub

.

وانا كذلك مثل اخوي خالد ، لم اقم بتجربة الكود 🙂

 

جعفر

  • Like 4
رابط هذا التعليق
شارك

منذ ساعه, jjafferr said:

وانا كذلك مثل اخوي خالد ، لم اقم بتجربة الكود 🙂

اهم شي كبسنا وجودك في الموضوع

طيب لو اردنا العمل بدون تكرار الرسائل وبدون متغيير

نضع

Exit For

عند اول مرور على حقل فارغ

ويكون كود الاستاذ موسى

Dim ctl As Control
For Each ctl In Me.Controls
    If ctl.ControlType = acTextBox Then
        If Len(ctl.Value & "") = 0 Then
           MsgBox "كمل شغلك :)"
            Cancel = True
            Exit For
        End If
    End If
Next ctl

تحياتي

  • Like 4
رابط هذا التعليق
شارك

الله .. الله .. ما أجمل هذي المدارسة بين الفطاحل 😄

وهذه إضافة من عندي 😁

يمكن الخروج من الكود أيضا بكتابة كلمة End  فقط والتركيز على الحقل الفارغ ( لندمج الأفكار 😉 )  فيصبح الكود هكذا :

Dim ctl As Control
For Each ctl In Me.Controls
    If ctl.ControlType = acTextBox Then
        If Len(ctl.Value & "") = 0 Then
            Cancel = True
            ctl.SetFocus
            MsgBox "رجاء تعبئة الحقل الفارغ " & ctl.name
            End
        End If
    End If
Next ctl

 

تم تعديل بواسطه Moosak
  • Like 3
رابط هذا التعليق
شارك

دكتور @الحلبي اسمح لنا ناخذ راحتنا شوي 🙂

كلنا نستعمل كود اخونا @ابوبسمله ، اللي اعاد ترويضه اخونا @Moosak ، واخونا @مبرمج متقاعد 🙂

 

طيب ايش رايكم في اخبارنا بجميع الحقول الفارغة ، وبرسالة واحدة :

Option Compare Database

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim I_am_Empty As String, Set_Focus_On_Me As Control

Dim ctl As Control
For Each ctl In Me.Controls
    If ctl.ControlType = acTextBox Then
        If Len(ctl.Value & "") = 0 Then
            I_am_Empty = I_am_Empty & vbCrLf & ctl.Name
            Set Set_Focus_On_Me = ctl
        End If
    End If
Next ctl

If Len(I_am_Empty & "") <> 0 Then
            Cancel = True
            MsgBox "رجاء تعبئة الحقول الفارغة التالية" & I_am_Empty
            Set_Focus_On_Me.SetFocus
            Set ctl = Nothing: Set Set_Focus_On_Me = Nothing
            Exit Sub
End If


End Sub

.

جعفر

 

 

عدم الحفظ.zip

  • Like 4
رابط هذا التعليق
شارك

17 دقائق مضت, Moosak said:

ملاحظة عمي خالد : الكود للحبيب @ابوبسمله 🙂 

الحقيقة اختلط الامر على فانا لم احمل المرفق ⬇️

2 ساعات مضت, مبرمج متقاعد said:

الحقيقة انا لم احمل المثال

لذا اعتذر منكم استاذي ومن اخي العزيز ابو بسملة

الحقيقة مواضيع دكتورنا الفاضل محمد حلبي لها طابع مختلف وتجذبني دائما

تحياتي

  • Like 2
رابط هذا التعليق
شارك

لأن العلم معينه لا ينضب هذي إضافة جديدة أخرى 😊

 

ماذا لو أردنا منه تلوين الخلايا الفارغة باللون الأصفر مثلا 😏 :

Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim I_am_Empty As String, Set_Focus_On_Me As Control

Dim ctl As Control
For Each ctl In Me.Controls
    If ctl.ControlType = acTextBox Then
    ctl.BackColor = vbWhite
        If Len(ctl.Value & "") = 0 Then
            I_am_Empty = I_am_Empty & vbCrLf & ctl.Name
            Set Set_Focus_On_Me = ctl
            ctl.BackColor = vbYellow
        End If
    End If
Next ctl

If Len(I_am_Empty & "") <> 0 Then
            Cancel = True
            MsgBox "رجاء تعبئة الحقول الفارغة التالية" & I_am_Empty
            Set_Focus_On_Me.SetFocus
            Exit Sub
End If

Set ctl = Nothing: Set Set_Focus_On_Me = Nothing
End Sub

بس المشكلة أنه يلون العمود كاملا وليس السطر الحالي فقط 😅

رابط هذا التعليق
شارك

12 ساعات مضت, الحلبي said:

ابنى الاستاذ احمد

ايه الجمال ده الله يفتح عليك ويزيدك علم ـ جميل جدا جدا جدا جدا هذا الكود

اللهم بارك في استاذنا احمد وبارك فى اسرته الكريمة وعافيه فى صحته امين

كل الاحترام والتقدير لاستاذى

اهلا ومرحبا والدى العزيز ابوشادى ده جمال طلتكم علينا ، اللهم آمين واياكم

اللهم آمين تسلم وجزاك الله كل خير

تقبل تحياتى

شوفت بقى اسئلتك بتجمع الحبايب كلهم بسم الله ماشاء الله الحبايب كلهم متجمعين يارب متجمعين دايما وصحبه ان شاء الله فزيارة بيت الله الحرام ورسول الله صلي الله عليه وسلم اللهم آمين

الله الله على الاضافات الرائعه من اساتذتى جزاكم الله عنا كل خير

تقبلوا تحياتى واحترامى وجزاكم الله عنا كل خير

رابط هذا التعليق
شارك

اخوانى الاعزاء والاحباب 

تغيبت عن المنتدى بضغ ساعات ارجع واجد كل هذه الحوارت والعبقريات فى سؤالى

فعلا انا محظوظ ومديون لهذا المنتدى بالكثير لانى تعلمت منه الكثير على يد هولاء  الخبراء الموجدين فى المشاركة

3 ساعات مضت, مبرمج متقاعد said:

الحقيقة انا لم احمل المثال ولكن كفكرة بسيطة ممكن نجرب اضافة متغيير بسيط رقمي ونستفيد من قيمة المتغيير الافتراضية "0"

هذه نظرة استاذنا الاستاذ/ خالد

2 ساعات مضت, jjafferr said:

لرسالة تخبرك اي حقل فارغ ، تلغي عملية الحفظ ، ويكون التركيز على الحقل الفارغ :

هذه نظرة استاذنا / الاستاذ جعف

51 دقائق مضت, Moosak said:

أن العلم معينه لا ينضب هذي إضافة جديدة أخرى 😊

وهذه نظرة استاذنا / الاستاذ موسى

منذ ساعه, مبرمج متقاعد said:

الحقيقة مواضيع دكتورنا الفاضل محمد حلبي لها طابع مختلف وتجذبني دائما

استاذنا ومعلمنا الاستاذ/ خالد طول عمرى اقول انك انسان محترم وذكى جدا جدا ( وانا بتاع موارد بشرية ) اشكرك على هذه الملاحظة وربنا يجزاك خير ولا يحرمنا ابدا من ابداعاتك

هذه افكار جميلة ولكن ينقصها التطبيق على المثال 

جميع الحلول والاكواد لا تعمل جيدا ( طبق على مثال ابو بسمله) 

عند الخروج من النموذج تخرج الرسالة مرة اخرى وتخرج معها رسالة اخرى تقول : لا يمكن حفظ التعديل الجاري 

يعجز لسانى عن شكركم جميعا ولاسوى الا ان اقول بارك الله فيكم وجعلكم خير اساتذه فعلا تعلمنا على ايدكم الكثير

انا مش عارف فين استاذنا ومعلمنا الاستاذ / احمد الفلاحجى هو فيــــــــــــــــــــــن

كل التقدير والاحترام لكم

 

 

 

 

 

رابط هذا التعليق
شارك

2 دقائق مضت, ابوبسمله said:

هههههههههههه كنت نايم يادكتور معلش بقى

انا عارف يااستاذ / احمد وعارف هذه مداعبة من تلميذ لاستاذه

انا عارف ان شغلك صعب جدا وانت شايل مسئولية كبيرة الله يعينك عليها

يجزاك كل خير وكل الاحترام والتقدير

  • Thanks 1
رابط هذا التعليق
شارك

17 دقائق مضت, jjafferr said:

وارفقت المرفق في مشاركتي السابقة

جرب حضرتك بنفسك فى مثال ابو بسمه وضع الكود

تلاحظ طهور رسالة التنبيه عند الخروج من النموذج

رابط هذا التعليق
شارك

1 ساعه مضت, الحلبي said:

تلاحظ طهور رسالة التنبيه عند الخروج من النموذج

اذا كان قصدك عند الخروج من النموذج ، وفيه حقول فارغة ، فالجواب نعم ، وهذا هو الهدف من الكود !!

 

جعفر

رابط هذا التعليق
شارك

38 دقائق مضت, jjafferr said:

اذا كان قصدك عند الخروج من النموذج ، وفيه حقول فارغة ، فالجواب نعم ، وهذا هو الهدف من الكود !!

تمام استاذ / جعفر 

الله يفتح ويبارك فيك

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information