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

البيانات لا تحفظ عند التعديل بسبب شرط عدم تكرار المعلومات


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

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

قمت بإضافة كود في نموذج العملاء

يسمح بالحفظ فقط عن طريق زر حفظ

عدم السماح بتكرار المعلومات

Option Compare Database
Private msaved As Boolean

Private Sub btnSave_Click()
On Error GoTo btnSave_Click_Err

    On Error Resume Next
    msaved = True
.
.
.
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
If msaved = False Then
Cancel = True
Me.Undo
Cancel = False
End If
'للتأكد من عدم تكرار المعلومات
If DCount("[إسم العميل]", "العملاء", "[إسم العميل] = [forms]![العملاء]![إسم العميل]") >= 1 Then
Cancel = True
Me.Undo
MsgBox "إسم العميل الذي أدخلته موجود مسبقا", vbExclamation, "معلومات مكررة"
Me.العميل_إسم.SetFocus
End If
End Sub
Private Sub Form_current()
msaved = False
End Sub

المشكلة التي تواجهني الآن هي

لو كان العميل مسجل مسبقا وأريد تعديل بعض البيانات بالضغط على زر تعديل

عند الحفظ تظهر رسالة تكرار المعلومات

كيف يمكن تجاوز هذه المشكلة

بارك الله فيكم وفي علمكم

الفاتورة 8.rar

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

السلام عليكم

المشكلة نابعة من وقت الحدث  وهو قبل التحديث

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

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

شكرا سيدي أبوخليل على اهتمامك

بلا أنا أريد زيادة الضبط في الادخال وتجنب ما امكن من أخطاء

إذا تكرمت علينا بشرح الطريقة

لاتي مبتدأ

وهذا أول برنامج لي أصل فيه إلى هذا الحد

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

معذرة فأنا لم اطلع على المرفق بسبب الاصدار

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

 

والطريقة الفضلى لادخال البيانات انيصبح النموذج للادخال فقط

من خصائص النموذج / لسان التبويب بيانات /اجعل القيمة : ادخال بيانات=نعم

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

  ولا مانع من وضع الضوابط مثل الكود اعلاه

اما التعديل فشأنه مختلف ويمكن اجراء التعديل من نموذج آخر لايشتمل على هذا الكود

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

إذن سأقوم بإنشاء نموذجين

الأول : مهمته إدخال البيانات فقط بالضوابط التي أريدها

الثاني : مهمته تعديل البيانات

إعذرني على جهلي

ولكن ألا  يمكن تفادي إنشاء نموذجين يأديان نفس المهمة تقريبا

هذه هي صورة النموذج لدي

56b8a70601012_.PNG.e7bc16587835e8f4fc17c

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

بلى يمكن العمل على نموذج احد وانما  عرضت عليك  ما رأيته الافضل

جرب  :

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

من هذا يمكن ان نقول :

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

فالكود اعلاه يقول : اذا عدد اسم العميل في الجدول اكبر من او يساوي واحد بشرط ان اسم العميل في الجدول يساوي اسم العميل في النموذج . 

وزيادة  الشروط هكذا :

اذا عدد اسم العميل في الجدول اكبر من او يساوي واحد بشرط ان اسم العميل في الجدول يساوي اسم العميل في النموذج والعنوان في الجدول يساوي العنوان في النموذج والهاتف في الجدول يساوي الهاتف في النموذج  وهكذا ... 

اذا لم تتمكن من التطبيق

سأحاول ارفاق مثال من عندي 

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

أستذنا أبو خليل

لقد استمتعت بالمناقشة التي دارت بينك وبين الاستاذ رمهان

لكن صادفني هذا الكود للاستاذ رمهان

If Nz(DLookup("id", "[تنظيم الجدول]", "[كود اليوم]&[الفترة]&[القاعة]&[الدكتور]='" & كود_اليوم & الفترة & القاعة & الدكتور & "'"), 0) <> id Then Cancel = MsgBox("مكرر")

لم أستطع استيعاب بناء الجملة

إذا تكرمت علينا باستبدال العربية بالانكليزية

واعادة كتابة الكود

حتى نستوعبه

آآآآآآآآآآآآآآسف على كثرة الطلبات

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

أستذنا أبو خليل

لقد قمت بتطبيق المثال الأخير

If DLookup("رقم", "جدول", "[إسم العميل]='" & Forms![نموذج]![إسم العميل] & "'") <> رقم Then

Capture111.PNG.90f72c45404904c39d598a525

لكن المشكلة التي واجهتني هي

إذا كان إسم "Primary Key" في الجدول يتكون من مقطع واحد مثلا "رقم" اشتغل البرنامج عادي

أما إذا كان يتكون من مقطعين كمثل "رقم العميل" وهو الحاصل عندي

لا يشتغل البرنامج

ومهما غيرت لم أفلح

فمرة الشرط لا يشتغل ويسجل كل شيء

ومرة لا يسجل أي شيء

وأخرى بناء الكود يحتوي على خطأ

كما أني لا أستطيع تغير الاسم لأنه مرتبط ببيانات أخرى

 

هذا جزاء من لا يتبع القواعد في التسمية

أكاد أجن من هذا الكود

ساعدني من فضلك

بيانات مكررة.rar

تم تعديل بواسطه بوعبد الله محفوظ
رابط هذا التعليق
شارك

لا عليك أستاذنا الكريم

لقد وجدت الحل

رغم أنني جربته في المرة الأولى إلا أنه لم ينجح

وبعد إعادة بناء البرنامج من جديد نجحت التجربة

56bc7cbdab7df_.PNG.eee2ab74619e3f9ea135c

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

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



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

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

Important Information