الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التعديل على بيانات موجوده مسبقا

مغلق
بدأه malkasoft10 في 10 أغسطس 2006 · 2 رد · 477 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوان المشرفين والاعضاء اجلهم لله....

لقد واجهتني مشكلة في تعديل البينات باستخدام vba حيث يتم تعديل السجل الاول فقط اما اذا حاولت التعديل بعد السجل الاول ميضهر لي خطا وهو 3022 Duplicate value in index, primary key.

وهذا هو الكود الذى استخدمه

Private Sub Command64_Click()

Dim rs As DAO.Recordset

Dim strSourceTable As String

Set LAMA = CurrentDb

Set rs = LAMA.OpenRecordset("info1", dbOpenDynaset)

rs.Edit

rs!id = [Forms]![in]![id]

rs!fname = [Forms]![in]![fname]

rs!lname = [Forms]![in]![lname]

rs!tel = [Forms]![in]![tel]

rs!mname = [Forms]![in]![mname]

rs!date1 = [Forms]![in]![date1]

rs!date2 = [Forms]![in]![date2]

rs!must = [Forms]![in]![must]

rs!notionality = [Forms]![in]![na]

rs!pic = [Forms]![in]![ÕæÑÊå]

rs.Update

rs.Close

id = Null

fname = Null

mname = Null

lname = Null

tel = Null

date1 = Null

date2 = Null

must = Null

na = Null

Set LAMA = Nothing

End Sub

الرجاء الرد علي بسرعة

اعزكم لله

#2

اخي الفاضل

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

عندما يكون حقل الرقم المعرف ID مفهرس وبدون تكرار فلا يمكن التعديل عليه ولكن يمكن التعديل على البيانات والحقول الاخرى .

الرسالة التي تظهر لك تقول اتك تحاول عمل دمج Duplicate لرقم موجود مسبقا لهذا حاول ازالة التعريف الخاص بالـ ID من الكود الخاص بك

rs!id = [Forms]![in]![id] ............ قم بإزالة هذا التعبير

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

يوضع هذا الكود في حدث قبل التحديث لمربع نص ID في النموذج

Private Sub id_BeforeUpdate(Cancel As Integer)
Dim SID As String
Dim stLinkCriteria As String
Dim rsc As DAO.Recordset

Set rsc = Me.RecordsetClone
SID = Me.id.Value
stLinkCriteria = "[ID] =" & SID
	'يتم هنا فحس الرقم المعرف
	If DCount("ID", "INFO1", stLinkCriteria) > 0 Then
		'عدم تكرار الرقم مرة ثانية وعدم حفظه
		Me.Undo
		'إظهار رسالة عدم التكرار لنفس الرقم 
		MsgBox "  الرقم  " _
		& SID & "  موجود مسبقا   " _
		& vbCr & vbCr & "سيتم نقلك لنفس رقم السجل للتعديل على البيانات", vbInformation _
		, "معلومات السجل"
		'الانتقال لنفس رقم السجل
		rsc.FindFirst stLinkCriteria
		Me.Bookmark = rsc.Bookmark
	End If
Set rsc = Nothing
End Sub

وهذا مثال على ذلك

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

LAMA.rar

اختكم

زهره

#3

الاخت زهرة اكرمها لله

في الواقع لم تجدي كلا المحاولتين لاني اريد تعديل بينات موجودة الغريب في الامر ان السجل الاول يتم تعديله دون مشاكل اما السجل الثاني فلا

لذلك سارفق لك ما قمت بعمله عسى ان تحل المشكلة

شكرا لك

db1.rar

db1.rar

هذا الموضوع مغلق.

مواضيع مشابهة