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

تعديل على كود عدم التكرار


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

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

لدى نموذج رئيسي وبه نموذج فرعى .. استخدم الكود التالى لاضافة بيانات الى الجدول الفرعى من النموذج الرئيسي :

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

 اسم الجدول المراد الاضافة به tbl_wared_motaba

وهذا هو الكود

Private Sub cmd_addsend_Click()
		On Error Resume Next
         Me.frm_wared_motaba.SetFocus
        
		 Dim rs As DAO.Recordset
         Set rs = CurrentDb.OpenRecordset("tbl_wared_motaba")
         rs.AddNew
         rs!id_emp_w = id_m
         rs!sn_user_Recv = sn_user_Recv
         rs!sn_user_Send = sn_user_Send
         rs!taxt_Tasera = taxt_Tasera
         rs!dd_end = dd_end
         rs!Date_End = Date_End
         rs!Date_start = Date_start
         rs.Update
         rs.close
         Me.frm_wared_motaba.Requery
End Sub

لقد حاولت التعديل لكن بات جميع المحاولات بالفشل

فهل من حل لمنع تكرار البيانات

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

السلام عليكم و رحمة الله تعالى و بركاته أستاذ محمد إن شاء الله تكون بخير:

تفضل جرب هذا الكود:

For i = 1 To DCount("*", "tbl_wared_motaba")
  If rs!id_emp_w = id_m And rs!sn_user_Recv = sn_user_Recv And rs!sn_user_Send = sn_user_Send And rs!taxt_Tasera = taxt_Tasera And rs!dd_end = dd_end And rs!Date_End = Date_End And rs!Date_start = Date_start Then
   x = 0
  End If
Next i

If x = 0 Then
         MsgBox ("لقد تم تسجيل هذه البيانات من قبل")
Else
On Error Resume Next
         Me.frm_wared_motaba.SetFocus
         Dim rs As DAO.Recordset
         Set rs = CurrentDb.OpenRecordset("tbl_wared_motaba")
         rs.AddNew
         rs!id_emp_w = id_m
         rs!sn_user_Recv = sn_user_Recv
         rs!sn_user_Send = sn_user_Send
         rs!taxt_Tasera = taxt_Tasera
         rs!dd_end = dd_end
         rs!Date_End = Date_End
         rs!Date_start = Date_start
         rs.Update
         rs.Close
         Me.frm_wared_motaba.Requery
MsgBox ("لقد تم تسجيل البيانات بنجاح")
End If

 

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

39 دقائق مضت, صالح حمادي said:

السلام عليكم و رحمة الله تعالى و بركاته أستاذ محمد إن شاء الله تكون بخير:

تفضل جرب هذا الكود:


For i = 1 To DCount("*", "tbl_wared_motaba")
  If rs!id_emp_w = id_m And rs!sn_user_Recv = sn_user_Recv And rs!sn_user_Send = sn_user_Send And rs!taxt_Tasera = taxt_Tasera And rs!dd_end = dd_end And rs!Date_End = Date_End And rs!Date_start = Date_start Then
   x = 0
  End If
Next i

If x = 0 Then
         MsgBox ("لقد تم تسجيل هذه البيانات من قبل")
Else
On Error Resume Next
         Me.frm_wared_motaba.SetFocus
         Dim rs As DAO.Recordset
         Set rs = CurrentDb.OpenRecordset("tbl_wared_motaba")
         rs.AddNew
         rs!id_emp_w = id_m
         rs!sn_user_Recv = sn_user_Recv
         rs!sn_user_Send = sn_user_Send
         rs!taxt_Tasera = taxt_Tasera
         rs!dd_end = dd_end
         rs!Date_End = Date_End
         rs!Date_start = Date_start
         rs.Update
         rs.Close
         Me.frm_wared_motaba.Requery
MsgBox ("لقد تم تسجيل البيانات بنجاح")
End If

 

شكرا جزيلا استاذ صالح وبارك الله فيك

للاسف الكود يظهر الرسالة فقط هذه "لقد تم تسجيل البيانات من قبل" ولا يضيف بيانات  .. علما بان الحقول غير منضمة والنموذج الفرعى مرتبط بالنموذج الرئيسي بعلاقة راس باطراف

انظر..

 

 

022.gif

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

أخي محمد أنت قلت لا أريد الإضافة في حال التكرار هذا ما فهته من شرحك أخي

و هل يقوم بالإضافة في حال عدم و جود التكرار؟

جرب إدخال سجل غير موجود و أطلعني على النتائج أستاذ محمد

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

12 دقائق مضت, صالح حمادي said:

أخي محمد أنت قلت لا أريد الإضافة في حال التكرار هذا ما فهته من شرحك أخي

و هل يقوم بالإضافة في حال عدم و جود التكرار؟

جرب إدخال سجل غير موجود و أطلعني على النتائج أستاذ محمد

تحياتى لك اخى صالح

تفضل مرفق جرب بنفسك

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

الفكرة انه لا اريد تكرار ارسال الوارد الى نفس الادارة اكثر من مرة واحدة وهى متمثالة فى الحقل هذا

sn_user_Recv 

المراسلات.rar

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

الحمد لله لقد توصلت إلى الكود الذي يؤدي الغرض حسب ما فهمت أنا:

On Error Resume Next
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("tbl_wared_motaba")
 x = 1
rs.MoveFirst
For I = 1 To DCount("*", "tbl_wared_motaba")
  If Nz(rs!id_emp_w, 0) = Nz(id_m, 0) And Nz(rs!sn_user_Recv, 0) = Nz(sn_user_Recv, 0) And Nz(rs!sn_user_Send, 0) = Nz(sn_user_Send, 0) And Nz(rs!taxt_Tasera, 0) = Nz(taxt_Tasera, 0) And Nz(rs!dd_end, 0) = Nz(dd_end, 0) And Nz(rs!Date_End, 0) = Nz(Date_End, 0) And Nz(rs!Date_start, 0) = Nz(Date_start, 0) Then
   x = 0
  End If
rs.MoveNext
Next I

If x = 0 Then
 msgBox ("لقد تم تسجيل هذه البيانات من قبل")
Else
         Me.frm_wared_motaba.SetFocus
         rs.AddNew
         rs!id_emp_w = id_m
         rs!sn_user_Recv = sn_user_Recv
         rs!sn_user_Send = sn_user_Send
         rs!taxt_Tasera = taxt_Tasera
         rs!dd_end = dd_end
         rs!Date_End = Date_End
         rs!Date_start = Date_start
         rs.Update
msgBox ("لقد تم تسجيل البيانات بنجاح")
End If
Me.Requery
Me.frm_wared_motaba.Requery
rs.close
Set rs = Nothing

 

المراسلات.rar

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

9 ساعات مضت, صالح حمادي said:

الحمد لله لقد توصلت إلى الكود الذي يؤدي الغرض حسب ما فهمت أنا:

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

اسعد الله صباحك بكل خير

 

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

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

 

 

الي حاب اعمله

هو عند النقر المزدوج ينقل لي اسم واحد فقط من الدواء

الكود المرفق بالقاعده هو لعدم تكرار نفس الكود

وهو فعال وممتاز

لكن اذا ممكن تساعدني لعدم تكرار نص الاسم بغض النظر عن رقم الكود

 

القاعده موجوده في هذا المشاركه

 

واسف من الاخ محمد سلامه عالمداخله

 

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

21 ساعات مضت, صالح حمادي said:

الحمد لله لقد توصلت إلى الكود الذي يؤدي الغرض حسب ما فهمت أنا:


On Error Resume Next
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("tbl_wared_motaba")
 x = 1
rs.MoveFirst
For I = 1 To DCount("*", "tbl_wared_motaba")
  If Nz(rs!id_emp_w, 0) = Nz(id_m, 0) And Nz(rs!sn_user_Recv, 0) = Nz(sn_user_Recv, 0) And Nz(rs!sn_user_Send, 0) = Nz(sn_user_Send, 0) And Nz(rs!taxt_Tasera, 0) = Nz(taxt_Tasera, 0) And Nz(rs!dd_end, 0) = Nz(dd_end, 0) And Nz(rs!Date_End, 0) = Nz(Date_End, 0) And Nz(rs!Date_start, 0) = Nz(Date_start, 0) Then
   x = 0
  End If
rs.MoveNext
Next I

If x = 0 Then
 msgBox ("لقد تم تسجيل هذه البيانات من قبل")
Else
         Me.frm_wared_motaba.SetFocus
         rs.AddNew
         rs!id_emp_w = id_m
         rs!sn_user_Recv = sn_user_Recv
         rs!sn_user_Send = sn_user_Send
         rs!taxt_Tasera = taxt_Tasera
         rs!dd_end = dd_end
         rs!Date_End = Date_End
         rs!Date_start = Date_start
         rs.Update
msgBox ("لقد تم تسجيل البيانات بنجاح")
End If
Me.Requery
Me.frm_wared_motaba.Requery
rs.close
Set rs = Nothing

 

المراسلات.rar

شكرا جزيلا اخي العزيز صالح حمادي

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

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

12 ساعات مضت, co2002co said:

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

اسعد الله صباحك بكل خير

 

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

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

 

 

الي حاب اعمله

هو عند النقر المزدوج ينقل لي اسم واحد فقط من الدواء

الكود المرفق بالقاعده هو لعدم تكرار نفس الكود

وهو فعال وممتاز

لكن اذا ممكن تساعدني لعدم تكرار نص الاسم بغض النظر عن رقم الكود

 

القاعده موجوده في هذا المشاركه

 

واسف من الاخ محمد سلامه عالمداخله

 

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

هل تريد تكرار الكود وعدم تكرار اسم الدواء؟؟

اذا كان نعم

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

تحياتي

 

تم تعديل بواسطه محمد سلامة
  • Like 1
رابط هذا التعليق
شارك

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

اريد عدم تكرار الاسم

 

7 ساعات مضت, محمد سلامة 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