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

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

قام بنشر

السلام عليكم

مرفق قاعدة بيانات باسم FO4 , واريد تقييد تكرار البيانات فى الحقل (رقم العملية) لا يقبل التكرار فى ادخال البيانات وذلك عن طريق استخدام   اكواد داخل حدث قبل او بعد التحديث  او  عن طريق  دالات   او    ماكرو  ، وليس باستخدام خاصية منع التكرار الموجودة بخصائص الجدول.

ارجوا التكرم بالافادة ولكم جزيل الشكر

F04.zip

  • أفضل إجابة
قام بنشر
Dim rst As Recordset
Set rst = Me.RecordsetClone
rst.MoveFirst
Do Until rst.EOF
If rst![رقم العملية] = Me![T4] Then
MsgBox " السجل مكرر ", , " تنبيه"
Me.Undo
DoCmd.CancelEvent
Exit Do
End If
rst.MoveNext
Loop
rst.Close

 

F05.rar

  • Like 4
  • Thanks 1
قام بنشر

لسيادتكم ابوخليل  الف الف شكر جزاك الله خيرا  وزادك الله علما وبصيرة

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

قام بنشر

عندما اردت استخدام نفس الكود على قاعدة بيانات اخرى اعطانى رسالة الخطأ الموضحة بالصورة المرفقة

ارجوا الافادة

Untitled.jpg

قام بنشر

افتح محرر الاكواد ثم من الشريط العلوي انقر على tools ثم اختر references 

قارن بين المكتبات المفعلة ( في الجهازين )

عليك اضافة المكتبة الناقصة ان وجدت  ، أو تعديل الاصدار ان كان الموجود قديما

وللمزيد ابحث في حقل قوقل من صفحة المنتدى عن  tools  references  ستجد الكثير من الشرح

  • Like 1
قام بنشر
23 ساعات مضت, EMM2020 said:

رسالة الخطأ الموضحة بالصورة المرفقة

بالاضافه الى ما وجهك اليه اخى ومعلمى العزيز ابوخليل جزاه الله عنا كل خير

قم بتعديل السطر الاول من الكود الى

Dim rst As dao.Recordset

بالتوفيق

  • Like 1
قام بنشر

الطريقة السابقة تتعامل مع السجلات عبر النموذج

جرب هذه الطريقة من خلال الجدول مباشرة

Dim rst As dao.Recordset
Set rst = CurrentDb.OpenRecordset("folllow")
rst.MoveFirst
Do Until rst.EOF
If rst![رقم العملية] = Me![T4] Then
MsgBox " السجل مكرر ", , " تنبيه"
Me.Undo
DoCmd.CancelEvent
Exit Do
End If
rst.MoveNext
Loop
rst.Close

 

F06.rar

  • Like 1
  • Thanks 1
  • 6 months later...
قام بنشر
في ٢٧‏/٢‏/٢٠٢١ at 08:29, ابوخليل said:

الطريقة السابقة تتعامل مع السجلات عبر النموذج

جرب هذه الطريقة من خلال الجدول مباشرة

Dim rst As dao.Recordset
Set rst = CurrentDb.OpenRecordset("folllow")
rst.MoveFirst
Do Until rst.EOF
If rst![رقم العملية] = Me![T4] Then
MsgBox " السجل مكرر ", , " تنبيه"
Me.Undo
DoCmd.CancelEvent
Exit Do
End If
rst.MoveNext
Loop
rst.Close

 

F06.rar 20.17 kB · 9 downloads

السلام عليكم استاذنا ابو خليل
اولا جزاك الله خيرا على تقدمه 
ونفعك الله بعلمك وعملك 
كان لدى مشكلة تواجهنى وهى 
انى اريد فى المثال المرفق 
عند تسجيل فى رقم الشيك فى الجزء السفلى من الفورم الى المرفق بيفتح عليه 
وكان رقم الشيك مسجل من قبل يظهر لى رساله ان السجل مكرر مثلا 
قمت باستخدام 
 

if dlookup()

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

اقتباس

 

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

Database3.rar

قام بنشر
13 ساعات مضت, ابوخليل said:

تفضل حسب طلبك

Dim i As Integer
i = DCount("CheckNumber", "CheckDataCustomer", "CheckNumber='" & Me.CheckNumber & "'")
If i > 0 Then
MsgBox " السجل مكرر ", , " تنبيه"
Me.CheckNumber = ""
Exit Sub
End If

 

Database4.rar 42.89 kB · 2 downloads

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

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