اذهب الي المحتوي
أوفيسنا

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

قام بنشر

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

اخواني عندي مشكله ماعرفت كيف احلها

جربت عدة طرق لكن بدون فايدة

 

وهي كيف  اجعل مجموع الاجمالي في النموذج الرئسيي يتحدث         بعد تحديث او تعديل الكمية في النموذج الفرعي

اريد الاجمالي في النموذج الرئيسي يتحدث مباشره بمجرد تحديث الكميه وقبل خروج المؤشر من حقل الكمية

ارجو المساعده 

بارك الله فيكم وجزاكم الله خير

AZIZ.accdb

قام بنشر

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

 

شغلك صح ، والنتيجة تتبدل لما تنتقل من السجل ، بمعنى آخر لما يتم حفظ السجل ،

فاذا كنت مستعجل عليه ، وعلى حدث بعد التحديث للحقل تقدر تكتب التالي لحفظ السجل والمفروض تطلع لك النتيجة :

if me.dirty then me.dirty=false

 

جعفر

 

  • Like 1
قام بنشر (معدل)

بارك الله فيك وجزاك خير أستاذي الغالي جعفر

جرت ماذكره لكن  ماشى معي

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

بعد مااغير الرقم مباشره قبل خروج المؤشر من حقل الكميه    وقبل اني انتقل للسجل اللي بعده 

 

 

تم تعديل بواسطه at_aziz
  • أفضل إجابة
قام بنشر

من زمان ما عامل الكود على حدث "عند التغيير" OnChange للحقل ، فأخذ مني بعض الوقت 🙂

اضفت حقل جديد txt41 باللون البرتقالي ، وممكن تعمله مخفي

image.png.9a0f5cbe886844d3f843dd64f0da7859.png

.

اذا اردنا ان نعمل تغيير في بيانات النموذج عند كل ضغطة زر على لوحة المفاتيح (الكيبورد) ، ممكن لغرض البحث ، او للحصول على مجموع عند ادخال كل رقم ، فلابد من استخدام حدث "عند التغيير" OnChange للحقل.

 

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

1. في حدث "عند التغيير" OnChange للحقل ، اكتب debug.print me.TXT4 ، ولاحظ النتائج في نافذة immediate في نافذة VBE ،

سترى ان آخر الازرار اللي ضغطت عليها لا تظهر قيمتها ، لأن me.TXT4 معناها قيمة الحقل المحفوظة في الجدول ،

بينما اذا اردنا ان نأخذ القيمة التي لم يتم حفظها الى الآن ، فيجب ان نستخدم me.TXT4.Text ،

لاحظ الفيديو التالي ، القيمة الاصلية المحفوظة في الجدول هي 15 :

1491.gif.878bbe411a9fbc120771e0d4629f7962.gif

.

2. على هذا الاساس ، عملت حقل جديد اسميته txt41 (باللون البرتقالي في الصورة اعلاه ، ويمكن عمله مخفي) ، بحيث نعطيه القيمة الغير محفوظة من الحقل TXT4 ، هكذا :

Me.txt41 = Me.TXT4.Text

3. وبعدها ممكن عمل المعادلة Me.TXT5 = TXT3 * txt41  ، حيث الحقل TXT5 سيحصل على القيمة الصحيحة من الحقل TXT4 ،

4. ولكي تظهر قيمة مجموع حقل TXT5 ، فيجب حفظ قيمة السجل ، فعليه عندنا مجموعة طرق ، منها :

    DoCmd.RunCommand acCmdSaveRecord
    If Me.Dirty Then Me.Dirty = False
    Me.Refresh (ولكنها ستسبب في نقل المؤشر الى اول سجل ، فيجب التعامل معاها بطرق برمجية اضافية)

    Me.Requery (ولكنها ستسبب في نقل المؤشر الى اول سجل ، فيجب التعامل معاها بطرق برمجية اضافية)

5. وبسبب اننا تدخلنا في حفظ السجل ، فالمؤشر سيرجع لأول الحقل كلما ضغطنا على زر على الكيبور ، يعني لما تريد تكتب 25 ، سيظهر لك 52 ،

لهذا السبب ، فيجب لما نضغط على اي زر ، يجب برمجيا ان نجعل المؤشر يذهب الى نهاية الحقل ، فيمكننا استعمال الامر SelStart ، والذي يجبر مكان المؤشر في الحقل ، فعندنا الطرق التالية لجعل المؤشر يذهب الى آخر الحقل :

    Me.TXT4.SelStart = Len(Me.TXT4)
    Me.TXT4.SelStart = vbKeyEnd

 

والكود يصبح:

Private Sub TXT4_Change()
On Error GoTo err_TXT4_Change

    Me.txt41 = IIf(Len(Me.TXT4.Text & "") = 0, 0, Me.TXT4.Text)

    Me.TXT5 = TXT3 * txt41

    DoCmd.RunCommand acCmdSaveRecord

    Me.TXT4.SelStart = Len(Me.TXT4)
 
Exit_TXT4_Change:

Exit Sub
err_TXT4_Change:


    If Err.Number = 94 Or Err.Number = 13 Then
 
        Me.TXT5 = 0
        DoCmd.RunCommand acCmdSaveRecord
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    
End Sub

 

جعفر

1491.AZIZ.accdb.zip

  • Thanks 1
قام بنشر
58 دقائق مضت, jjafferr said:

من زمان ما عامل الكود على حدث "عند التغيير" للحقل ، فأخذ مني بعض الوقت 🙂

اضفت حقل جديد txt41 باللون البرتقالي ، وممكن تعمله مخفي

بارك الله فيك وجزاك الله خير استاذي الغالي جعفر

هذا هو المطلوب

الف شكر لك والله يعطيك الصحة والعافيه🌹

قام بنشر
35 دقائق مضت, 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.

×
×
  • اضف...

Important Information