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

منع تكرار الأسم في نفس التاريخ


lyla

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

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

قرأت عن هذا الموضوع:

http://www.officena.net/ib/index.php?showtopic=1724

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

مثال على المطلوب:

http://www.geocities.com/art_rtu/db10.zip

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

حل مبسط

اولاً: يتم عمل حقلي الاسم والتاريخ مفتاح اساسي Primary Key اي مفتاح مركب

وطريقة عمله تجديها بالرابط التالي:

http://www.officena.net/ib/index.php?showt...=261&hl=primary

ثانياً: يتم وضع الكود التالي داخل النموذج الذي تريدي ان تظهر به الرسالة:

بوضع الكود التالي عن حدث الخطأ On Error للنموذج

Private Sub Form_Error(DataErr As Integer, Response As Integer)
Dim DATAERRCONTINUE
Select Case DataErr
Case Is = 3022
MsgBox "تم تكرار التاريخ والاسم"
Response = DATAERRCONTINUE
End Select
End Sub

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

السلام عليكم

فيه كود آخر لكن غير مبسط :pp:

If (Eval("DLookUp(""[txtnum]"",""[t_data]"",""[txtnum] =form![txtnum]and [txtdate] =form![txtdate]"") Is Not Null")) Then
 Dim txt2 As Variant
  Dim txt3 As Variant
   Dim txt4 As Variant
   
   txt2 = DLookup("[txtnum]", "t_data", "[txtnum]=[forms]![f_data]![txtnum]and [txtdate] =form![txtdate]")
  txt3 = DLookup("[txtdate]", "t_data", "[txtdate]=[forms]![f_data]![txtdate]and [txtdate] =form![txtdate]")
   txt4 = DFirst("[recnum]", "t_data", "[txtnum]=[forms]![f_data]![txtnum]and [txtdate] =form![txtdate]")
       Beep
  MsgBox "سبق لك أن أدخلت التعميم رقم:  " & txt2 _
    & " في تاريخ: " _
       & Format(txt3, "dd/mmmm/yyyy") _
            & " وقد سجل برقم: " & txt4 _
        & vbCrLf & " ... لا يمكن تسجيل هذا التعميم" _
        , vbExclamation, "مدقق التعاميم"
   Me.Undo
DoCmd.GoToControl "txtcin"
txttxt = 0


      
Else
End If

مع ملاحظة تغيير اسماء النموذج والجدول والحقول حتى يتناسب مع مطلوبك ..

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

السلام عليكم

اذا لم تريدي عمل مفتاح مركب اذا الكود المعمول بالقاعدة يعمل اللازم

مجرد طرح افكار لا اكثر

تحياتي

Dim Cnn As New ADODB.Connection
Dim RstCheck As New ADODB.Recordset
Dim x As Integer
Set Cnn = CurrentProject.Connection

RstCheck.Open "Select * FROM Table1 Where Date = #" & txtDate.Value & "#;", Cnn, adOpenStatic
For x = 0 To RstCheck.RecordCount - 1
    If RstCheck.Fields("Name") = cmbName.Value Then
        MsgBox "ÊÖÇÑÈ ÇáÇÓã ãÚ ÇáÊÇÑíÎ ", vbExclamation, "Error"
        cmbName.SetFocus
        Me.Undo
        End If
        If Not RstCheck.EOF = True Or Not RstCheck.BOF = True Then
            RstCheck.MoveNext
            End If
Next

__________.rar

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

حركة حلوة : معنى كذه من الممكن جعل 4 حقول مركبة . أنت عارف من خصائص الحقول في تصميم قاعدة البيانات أنه فقط يعطي حقلين فقط لعمل مفتاح مركب . وعن طريق الكود هذا ممكن التحكم في حقلين آخرين . بجرب وشوف (y)

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

لم افهم قصدك بالحقول المركبة وعمل الكود بس لي كلمة في هذا الموضوع

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

مثلا في مثالك لا تستطيع اضافة نفس الاسم مع نفس التاريخ مرتين ماشي الحال

لكن تصور ان يكون المفتاح من ثلاث حقول مركبة؟

هنا تبدا كل انواع المشاكل بالنسبة لفحص ادخال البيانات اي ان لو اختلاف بسيط في احد الحقول ممكن يقبل على انه مفتاح .

عموما انا دائما اعمل المفتاح من حقل واحد او اثنين على الاكثر وباقي الفحوصات اقوم بعملها بالكود لتفادي الاخطاء.

مجرد راي لا اكثر

تحياتي

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

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

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



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

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

Important Information