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

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

قام بنشر

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

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

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)

قام بنشر

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

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

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

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

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

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

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

تحياتي

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