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

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

قام بنشر

امامك ثلاث حلول:

الحل الأول:

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

If DCount("number", "TableName", "number = forms!FormName!number") > 1 Then

MsgBox "الرقم مكرر"

Cancel = True

End If
مع افتراض ان ان نموذج ادخال البيانات اسمة FormName والجدول الذي به البيانات TableName وحقل الرقم اسمه number الحل الثاني: وهو ان تستخدم كائنات الوصول للبيانات DAO عن طريق وضع هذا الكود قبل التحديث لنموذج ادخال البيانات
Dim db As DAO.Database

Dim rst As DAO.Recordset

Set db = CurrentDb

Set rst = Me.RecordsetClone

rst.MoveFirst

Do Until rst.EOF

If rst!number = Me.number Then

MsgBox "الرقم مكرر"

Cancel = True

Exit Do

End If

rst.MoveNext

Loop

rst.Close

db.Close
الحل الثالث: وهو عن طريق ايقاف رسالة الخطأ التي تظهر في حالة المفتاح الأساسي وتظهر الرسالة الذي تريدها انت بوضع الكود التالي عن حدث الخطأ 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

مع خالص التحية

  • Like 1
  • 3 weeks later...
قام بنشر (معدل)

ولعمل ذلك عن طريق الماكرو

اتبع الخطوات التالية :

1- انشئ ماكرو وسميه ما تريد .

2- فى الماكرو اظهر الشرط وضع به الكود التاليى ما تغغير ما يلزم بالنسبة لك .

DLookUp("[رقم الاقامة]";"[بيانات اساسية]";"[رقم الاقامة] =form![رقم الاقامة]") Is Not Null

حيث :

رقم الاقامة وهو الحقل المطلوب عدم تكراره بالجدول .

بيانات أساسية : وهو اسم الجدول

حقل رقم الاقامة الثاني : وهو الحقل الموجود فى النمذوج .

3- أمام عامود الشرط يوجد عامود إجراء ، ضع فيه MsgBox واكتب فيه الرسالة التي تريدها ( لاحظ كتابة الرسالة تكون أسفل )

4- الاجراء الثاني يكون CancelEvent وضع أمام الشرط 3 نقاط فقط .وليس أصفار .

5- الاجراء الثالث : SendKeys وضع فى الأسفل ما يلي :

أمام ضغط المفاتيح ضع {f2} وأمام انتظار يكون لا

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

أشرف خليل

تم تعديل بواسطه امير عاطف
  • 1 year later...
قام بنشر

بسم الله الرحمن الرحيم

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

أخواني المحبين ....................................................

عندي جدول فيه الحقول : رقم العضو ، اسم العضو ، تاريخ الولادة ، عدد الاسهم ،

كيف يمكن وضع كود أو طريقة لتبيه المستخدم عند أدخال اسم أحد الأعضاء بأنه موجود مسبقاً ويمكن قبول أدخال الاسم أو رفضه بحسب رغبة المستخدم .

و لكم جزيل الشكر

قام بنشر (معدل)

بسم الله الرحمن الرحيم

أخي

فرضا أن أسم النموذج Form1 مثلا والحقل الأسم في النموذج وليكن أسمه هو Txt1 ومصدره هو الحقل Name الموجود في الجدول المسمى main وحقل رقم العضو هو Txt0 ومصدره نفس الجدول main وأسم الحقل في الجدول Num

نقوم بوضع الكود التالي في حدث قبل التحديث للحقل الأسم في النموذج Form1

Private Sub Txt1_BeforeUpdate(Cancel As Integer)
Dim db As Database
Dim rst As Recordset
Dim CountNum, I As Long
Dim MsgNumbr, NewName As String

Set db = CurrentDb
NewName = [Forms]![Form1]![Txt1]
Set rst = db.OpenRecordset("main", dbOpenSnapshot)

CountNum = DCount("*", "main", "[Name]=[Forms]![Form1]![Txt1]")
If CountNum = 0 Then Exit Sub

With rst
    Do Until .EOF
    If rst!Name = NewName Then
    MsgNumbr = MsgNumbr & rst!Num & "  "
    End If
    .MoveNext
    Loop
End With

If MsgBox("سيق أدخال هذا الأسم برقم" & MsgNumbr & vbCrLf & vbCrLf _
    & "هل ترغب بتسجيله" & vbCrLf, _
    vbInformation + vbYesNo + vbDefaultButton2, _
    "تنبيه") = vbNo Then
      Cancel = -1
End If

db.Close

End Sub

ومرفق لك مثال توضيحي

وتقبل تحياتي

أخيك سهل أحمد ( ابو نعيم )

checkifExists.rar

تم تعديل بواسطه سهل احمد العريشي
  • Like 1
  • Thanks 1
قام بنشر

بسم الله الرحمن الرحيم

وبه نستعين ................................................

أخي أبو نعيم أشكر ك جزيل الشكر و وفق الله لما يحب ويرضى - لك مني أحلى التحيات

أخوك في الله Aameranan تحياتي لك مرة أخرى

  • 1 month later...
قام بنشر

السلام عليكم

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

أن لدي حقل رقم في نموذج ، وهذا الحقل يدرج به أرقم ورغبتي هي في حالة وجود مدخل سابق بنفس الرقم أن تعطيني رسالة بأن هذا الرقم سبق إدخاله حيث أنه مكرر

مع الشكر سلفاً للتعاون

والله في عون العبد ماكان العبد في عون أخيه

قام بنشر (معدل)

بسم الله الرحمن الرحيم

ان كنت تريد أن تعرف هل الرقم مكرر ام لا

اكتب في حدث بعد التحديث للحقل الرقم

هذ الكود

مع مراعة اسم الحقل

text1.Requery
If Not IsNull(text1) Then
MsgBox " الرقم مكرر", vbCritical, "تنبيه"
Me.Undo
End If

مرفق مثال

وتقبل تحياتي

أخيك سهل أحمد ( أبو نعيم )

text1.rar

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

السلام عليكم

أخواي حسن وسهل :fff: ، بارك الله فيكما

عندما قرأت الحل استغربت ولكني عندما قرأت المثال الرائع لأخي سهل فهمت ما نسي ذكره سهوا ، أود إيضاحه هنا لئلا يحدث إلتباس.

1. نعرف قيمة text2 في النموذج هكذا

=DLookUp("id","t1","id=text1")
2. نعرف إقتران التحقق من عدم التكرار لمربع النص text1
Private Sub text1_AfterUpdate()
text2.Requery
If Not IsNull(text2) Then
MsgBox "الرقم مكرر ", vbCritical, "تنبيه"
Me.Undo
End If
End Sub

وما سبق هو توضيح لحل أخي سهل ليس إلا.

مع احترامي وتقديري لكم

قام بنشر

جزاك الله خير أخي العزيز أبو نعيم لهذا التواصل منكم وآسف على أخذي من وقتكم ،،،

كما أشكر أخي الفاضل الأستاذ خضر على هذا الإيضاح

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

وفقكم الله تعالى لما فيه المنفعة

قام بنشر

بسم الله الرحمن الرحيم

ولكني عندما قرأت المثال الرائع لأخي سهل فهمت ما نسي ذكره سهوا ، أود إيضاحه هنا لئلا يحدث إلتباس.

شهادة أعتز بها من أستاذ وخبير

وما سبق هو توضيح لحل أخي سهل ليس إلا.

قمة التواضع وهذا والله شأن العظماء

شكرا لك أخي العزيز خضر على شرحك وتوضيحك وهذا دليل حبك للمساعدة وفقنا الله وأياك لما يحبه ويرضاه

أخيكم سهل أحمد ( ابو نعيم )

  • 12 years later...
قام بنشر

الموضوع قديم قبل 13 سنة

فكيف نطلب من صاحبه المساعده :blink:

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

زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information