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

إلغاء الحفظ التلقائي عند الانتقال بين السجلات

بدأه Cha3iR في 8 سبتمبر 2012 · 21 رد · 5,249 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوة الافاضل

عند ادخال بيانات في سجل يتم حفظه مباشرة بمجرد الانتقال الى السجل التالي أو السابق

مطلوب كود يمكن من منع عملية الحفظ إلا بأمر من المستخدم .

تفاصيل السيناريو ..

وضعت بضع شروط على زر الحفظ يفرض ملأ بعض الحقول حتى تتاح خاصية الحفظ في حال عدم ملأ أحد الحقول المحدد ملؤها لا يتم الحفظ

الأمور إلى هنا سليم تمام التمام

لكن في حال حاول المستخدم إضافة سجل جديد ولم يملأ جميع الحقول أو أحد تلك التي سبق أن فرض ملؤها من أجل الحفظ لا يتم الحفظ بالطبع

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

فأتمنى من أساتذة المنتدى المساعدة إن أمكن

#2

ضع في حدث BeforeUpdate للنموذج الكود التالي

If MsgBox("Do you want to save changes?", vbYesNo) = vbNo Then 
Cancel = True 
Me.Undo 
End If
1

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#3

يارك الله فيك أخي فيصل

"اللهم ارزقه الجنة وبارك له في صحته"

المقترح الذي تفضلت به يحل المشكل الى حد بعيد لكن في حالة قام باضافة أي سجل جديد ولم يملأ جميع الحقول التي من المفروض ملأها ومن تم حاول تخطي السجل أو العودة الى السجلات السابقة ستواجهه الرسالة التي مفادها حفظ التغييرات من عدمه في حالة اختار الحفظ مع العلم أنه لم يملأ جميع الحقول المفروض ملؤها سيتم الحفظ رغم ذلك وهذا هو المشكل الذي منه انطلقنا

أنا جد متفق مع هذا الحل لو كنت أنا المستخدم لكن بما أنني لست أنا. فعلي كمصمم أن أسد كل الثغرات

أكرر شكري و امتناني

#5

بسم الله الرحمن الرحيم

شكراً جزيلاً أخى و أستاذى فيصل الحربي .. لكن الرابط يتحدث عن Text واحد بعينة ولا أعتقد أن صاحب المشاركة يقصد هذا

أخى الكريم Cha3iR كنا نرجوا أن تضع مثال... لكن إليك تطبيق بمثال على عدم ترك آى Text فارغ عند الحفظ

راجع المثال جيداً و حاول تطبيقة و يمكنك أيضاً إن كان لديك العديد من النماذج أن تضعة فى موديول و تستدعية أينما كنت

Empty rec.rar

بالتوفيق

تم تعديل هذه المشاركة بواسطة bakkar2000 في 8 سبتمبر 2012 في 22:48

2
#6

أشكر كل من تفاعل مع طلبي

الشكر موصول لك أخي فيصل و bakkar2000

تم بفضل الله التوصل إلى حل يعد من السهل الممتنع

كان يكفي وضع الكود كامل هو موصى به من مايكروسوفت أكسس

فكان الحل كالتالي للفائدة

Private Sub Commande43_Click()
On Error GoTo Err_Commande43_Click


    DoCmd.GoToRecord , , acPrevious

Exit_Commande43_Click:
    Exit Sub

Err_Commande43_Click:

    Exit Sub

Err_Commande38_Click:
    MsgBox Err.Description
    Resume Exit_Commande38_Click
#7

بسم الله الرحمن الرحيم

أخى Cha3iR نحمد الله أنك وجدت ضالتك لكن كودك يحتاج لتصحيح أنظر معى..

Private Sub Commande43_Click() 
On Error GoTo Err_Commande43_Click 


    DoCmd.GoToRecord , , acPrevious 

Exit_Commande43_Click: 
    Exit Sub 

Err_Commande43_Click: 

    Exit Sub

الكود حتى هذه اللحظة جيد و لكن لنكمل الكود

Err_Commande38_Click: 
    MsgBox Err.Description 
    Resume Exit_Commande38_Click

أنت تتحدث للـ Commende43 كما أنت كاتب و لكنك وضعت هذه الجملة للـ Commande38

فعند التنفيذ سوف تجد رسالة الخطأ هذه post-148704-050559100 1347166902_thumb.p

لذ وجب تغيير الإسم فى الكود الثانى إلى Commande43

بالتوفيق

المرفقات
9-9-2012 6-58-50 AM.png

تم تعديل هذه المشاركة بواسطة bakkar2000 في 9 سبتمبر 2012 في 08:11

#8

مشكور أخي بكر على المتابعة ودقة الملاحظة بالفعل ما تفضلت به من ملاحظات في محلها

الكود حتى اللحظة ما زال ناقص أما هذا ,,

Private Sub Commande43_Click()
On Error GoTo Err_Commande43_Click


    DoCmd.GoToRecord , , acPrevious

Exit_Commande43_Click:
    Exit Sub

Err_Commande43_Click:
    MsgBox Err.Description
    Resume Exit_Commande43_Click

End Sub

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

#9
bakkar2000 كتب:

بسم الله الرحمن الرحيم

شكراً جزيلاً أخى و أستاذى فيصل الحربي .. لكن الرابط يتحدث عن Text واحد بعينة ولا أعتقد أن صاحب المشاركة يقصد هذا

أخى الكريم Cha3iR كنا نرجوا أن تضع مثال... لكن إليك تطبيق بمثال على عدم ترك آى Text فارغ عند الحفظ

راجع المثال جيداً و حاول تطبيقة و يمكنك أيضاً إن كان لديك العديد من النماذج أن تضعة فى موديول و تستدعية أينما كنت

Empty rec.rar

بالتوفيق

بالمناسبة المثال الذي أرفقته غاية في روعة والدقة

والجميل فيه هذا الكود

    Dim Ct As Control
    For Each Ct In Me

        If Ct.Tag = "AhmedHassan" Then
        If Not IsNull(Ct) Or Ct <> "" Then Ct.BackColor = vbWhite
        If IsNull(Ct) Or Ct = "" Then
        MsgBox "Please Complet UR empty Data in " & Ct.Name
           Ct.SetFocus
           Ct.BackColor = vbRed
           Exit Sub
    End If
    End If
    Next Ct

أحاول في هذه الآثناء تحويله الى وحدة نمطية حتى أستغله في باقي النمادج بالاضافة الى البحث عن شرط يشكل قاسم مشترك بين الحقول غير الشرط Tag لأن هذا الشرط عندي متغير وبالتالي لن يصلح

#10

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

#11

أتمنى أن يتم التعديل على المرفق

Empty rec Up.rar

#13

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

صراحة أتعبتكم معي لكن مشاركتكم هي فرج هذا التعب إن شاء الله

#14

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

#15

من خصائص النموذج يمكنك منع اضافة سجل جديد

** مشاركتي هذه من الموبايل **

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#16

تفضل اخي الكريم

الملف بعد التعديل

تم رفع الملف المعدل الجديد

post-15367-057335500 1347280166_thumb.gi

za-Empty_rec_END.rar

آسفه على الخطأ الغير مقصود في رفع الملف

المرفقات
X1.gif

تم تعديل هذه المشاركة بواسطة zahrah في 10 سبتمبر 2012 في 15:31

1
#17
فيصل الحربي كتب:

من خصائص النموذج يمكنك منع اضافة سجل جديد

** مشاركتي هذه من الموبايل **

مشكور أخي فيصل على تواصل تواصلك معنا

حين نمنع من خصائص النموذج إضافة سجل فلن نتمكن من اضافة أي سجل حتى بعد النقر على زر الاضافة وليس فقط عند المعاينة أو التصفح

#18
zahrah كتب:

تفضل اخي الكريم

الملف بعد التعديل

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

لربما أعدت رفع الملف الأول عن طريق الخطأ ..

#19
Cha3iR كتب:

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

لربما أعدت رفع الملف الأول عن طريق الخطأ ..

بارك الله بك اخي الكريم

على التنبيه واسفه على الخطأ الغير مقصود في رفع الملف المعدل

هذا هو الملف المعدل

post-15367-079199400 1347280037_thumb.gi

za-Empty_rec_END.rar

المرفقات
X1.gif
1
#20

شكرا جزيلا لك أم عهود كالعادة كما عهدناك زهرة المنتدى وكل المنتديات

أنا جد ممتن لك على تطبيق الفكرة التي كانت خيوطها متشابكة برأسي

ولله الحمد تم الحل بفضل الله وجهودكم الحتيتة على تقديم المساعدة

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

الشكر موصول الى كافة أعضاء منتديات الفريق العربي للبرمجة

#21

تحية طيبة للجميع وبعد

اضف حقل منطقي True/Falseالى الجدول وليكن مثلاً MZ

القيمة الافتراضية MZ= False

ضع مفتاح تخزين ومفتاح خروج

عند الضغط على مفتاح تخزين MZ=True

وعند الضغط على مفتاح خروج يتم حذف جميع السجلات التي تأخذ القيمة False

بالتوفيق

[يمين]

إذا كـان تـرك الـدين يعــنــي تقــدمــاً

فـيا نفــس مـوتــي قبــل أن تتقـدمــي

[/يمين]

#22

بارك الله فيك أخي كمال على اثراء هذا الموضوع بحلك

جاري مراجعة ما تفضلت به لأنه رغم كل المحاولات إلا وتظهر ثغرة جديدة

وبالتالي تولد محاولة جديدة إلى أن نصل الغاية بإذن الله

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

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

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

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

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