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

التحقق من المدخلات ومنع التكرار بشرط تكرار 3 حقول معا


midomashakel

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

السلام عليكم

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

فشلت تماما في عمل قاعدة لمنع التكرار في حالة تكرار 3 حقول   الرقم ، التاريخ، رقم الموظف  طبقا للصورة

والملف المرفق

Capture2.JPG.b69f7e0113fc4b84e25ff3bbdd1649f8.JPG

التحقق من المدخلات ومنع التكرار.rar

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

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

 

تفضل:

Private Sub Command24_Click()
' مفتاح اضافة موظف اخر لنفس القرار

    Dim strSQL As String
    Dim intHow_Many As Integer
    
    strSQL = "[KararNom]='" & Me.KararNom & "'"
    strSQL = strSQL & " And [KararYear]='" & Me.KararYear & "'"
    strSQL = strSQL & " And [CompID]=" & Me.CompId
    intHow_Many = DCount("*", "TblKararat", strSQL)
    If intHow_Many > 0 Then
        MsgBox "لقد تم تسجيل هذا الموظف مسبقا"
        Exit Sub
    End If
    
DoCmd.RunCommand acCmdSaveRecord
Dim x As Integer
    If MsgBox("تم اضافة وحفظ بيانات الموظف للقرار بنجاح. هل تريد اضافة موظف لنفس القرار؟", vbYesNo, "تنبيه") = vbYes Then
       Dim N, Y, F
       N = Me.KararNom: Y = Me.KararYear:  F = Me.KararFrom
       DoCmd.GoToRecord , , acNext
       Me.KararNom = N: Me.KararYear = Y:   Me.KararFrom = F
       Me.CompId.SetFocus
    Else
       DoCmd.RunCommand acCmdRecordsGoToNext
       Me.KararNom.SetFocus
    End If
End Sub

 

جعفر

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

ما شاء الله عليك استاذ / جعفر

زادك الله من العلم

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

ان شاء الله اجرب وارد على حضرتك

شكر لتعبك ومجهودك مرة اخرى

في رعاية الله

 

طلب اخير

شرح لكود

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

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

 

تفضل:

    Dim strSQL As String
    Dim intHow_Many As Integer
    
	مشكلة اكثر من معيار ، هي الطريقة الصحيحة في كتابة الصيغة
	لذلك، خلينا نتعامل مع حقل واحد كل مرة، لنتفادى الخطأ
    strSQL = "[KararNom]='" & Me.KararNom & "'"					'نعمل اول معيار في المتغير strSQL
    strSQL = strSQL & " And [KararYear]='" & Me.KararYear & "'"	'نضيف معيار الحقل الثاني
    strSQL = strSQL & " And [CompID]=" & Me.CompId				'نضيف معيار الحقل الثالث

	الآن اصبح المتغير
	strSQL
	يحتوي على جميع المعايير، وبالصيغه الصحيحة، اذن فالنستعمله في الامر التالي
	كم عدد السجلات التي يوجد بها هذه المعايير
    intHow_Many = DCount("*", "TblKararat", strSQL)
    If intHow_Many > 0 Then
		اذا كان عدد السجلات اكثر من صفر، فمعناه ان اسم الموظف موجود مسبقا
		لذا، اوقف العملية واخبر المستخدم، ولا تحفظ السجل
        MsgBox "لقد تم تسجيل هذا الموظف مسبقا"
        Exit Sub
    End If

 

جعفر

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

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

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



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

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

Important Information