السلام عليكم
بحثت في المنتدى قبل طرح سؤالي لكن لم اجد ما ابحث عنه ربما الكلمات الدلالية غير متوافقة
المهم ما هي احسن طريقة لمنع تكرار ادخال سجلات معلومات الى قاعدة بيانات اكسس استخدام دالفي7 في هدا المشروع ؟؟
للتوضيح اكثر لدي fiche1 تحتوي على زر اظافة شخص جديد بعد الضغط على الزر ننتقل الى fiche2 التي تحتوي بدورها على حقول لادخال البيانات من رقم واسم ولقب و ... الرقم هو مفتاح رئيسي طبعا لن يتكرر لانه يزداد تلقائيا لكن ماهي طريقة جعل الاسم واللقب وتاريخ الازدياد لنفس الشخص لا تتكرر كي لا نحصل على شخص واحد في قاعدة بياناتنا برقمين مختلفين - اظن الفكرة وصلت -
انتظر ارآكم واقتراحاتكم وشكرا
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
عرف الحقول التي لا تريد أن تتكرر سجلاتها بالخاصية UNIQUE
كود :
CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
)
اخي لؤي بارك الله فيك على الرد
لكن انا انشات الجداول باكسس وليس برمجيا
اظن انه يمكن اظافة السطر الاخير لوحده اقصد
CONSTRAINT uc_PersonID UNIQUE (P_Id,LastName)
لكن في اي حدث؟؟ هل هو وان كرييتد وما معنى uc_PersonID ؟ وشكرا
و من طلب العلوم بغير كد _________ سيدركها إذا شاب الغراب
bassem_43 كتب :لكن في اي حدث؟؟ هل هو وان كرييتد وما معنى uc_PersonID ؟ وشكرا
السلام عليكم
راجع هذا الرابط:[URL="http://office.microsoft.com/en-us/access-help/prevent-duplicate-values-in-a-field-HA010283317.aspx"] http://office.microsoft.com/en-us/access...83317.aspx[/URL]
أو الصورة في المرفقات:
أما معنى uc_PersonID فهو مثال فقط ذكرته ويكون ذلك برمجيا
أدبني الدهر فأراني نقص عقلي وإذا ما ازددت علما زادني علما بجهلي
الطريقة الأفضل هي استعمال الفهارس الفريدة (Unique Indexes) في قاعدة البيانات نفسها عند تصميمها بـ Access أو غيره:
1. في Access - و في وضعية تصميم الجدول - افتح نافذة الفهارس.
2. قم بتعريف فهرس فريد (Unique) يتكون من الحقول الثلاثة (الاسم و اللقب و التاريخ). في هذه الحالة سيمنع Access التكرار و يعيد رسالة خطأ إلى البرنامج.
3. في دلفي ضع كود الإضافة أو التعديل ضمن كتلة try ... except لاقتناص الأخطاء حيث يمكنك عرض رسائلك الخاصة.
كود :
try
// ...
// كود حفظ البيانات
// ...
except
on E: Exception do begin
ShowMessage('Error on saving data.' + #13#10 + 'Error message:' + #13#10 + E.Message);
if (table.State = dsInsert) or (table.State = dsEdit) then table.Cancel;
end;
end;