ترقيم
#11
(12-07-2021, 12:07 PM)embarcadero كتب : إحذف الحقل القديم و أعد إضافته من جديد بترقيم التلقائي

[صورة: 549708525.png]

و حذف هذا السطر

dm.BenefisTable.FieldByName('Num_Dosier').Value:=dm.BenefisTable.RecordCount+1;


* النتيجة ستكون كما طلبت

هل فعلا قمت بنفس التعليمات مثل ما قال  أخونا   embarcadero؟
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
[-] كل من 1 user says قال شكرا ل أبو معاذ على المشاركة المفيدة
  • Delphi4Us
الرد
#12
[quote pid="53523" dateline="1626035522"]
حقل الترقيم ليس تلقائي بل من نوع Numerique
استعمل الكود
dm.BenefisTable.Insert;
dm.BenefisTable.FieldByName('Num_Dosier').Value:=dm.BenefisTable.RecordCount+1;

واحهتني عدة مشاكل عند جعل حقل الترقيم NumAuto في access
[/quote]

حاول أن تجعل حقل في جدول ثاني يحمل أخر رقم قمت بإدخاله ويزيد عليه في كل مرة تقوم بإدخال سجل جديد
الرد
#13
إقتباس :حاول أن تجعل حقل في جدول ثاني يحمل أخر رقم قمت بإدخاله ويزيد عليه في كل مرة تقوم بإدخال سجل جديد



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

كود :
Select Sum(FiledNum) + 1 As Sum from TableName
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 1 user says قال شكرا ل Delphi4Us على المشاركة المفيدة
  • العيد1403
الرد
#14
إقتباس :
كود :
Select Sum(FiledNum) + 1 As Sum from TableName
 يبدو انك تقصد COUNT و ليس SUM لانه كما تعلم اخي ان SUM تجلب مجموع قيم التسجيلات و ليس عددها...

على كل حال، الاعتماد على عدد التسجيلات للحصول على الترقيم التسلسلي ليست فكرة فعالة لان العدد يتغير بحذف التسجيلات الموجدة و يحدث استثناء عند تطابق رقم موجود مسبقا بعدد التسجيلات بعد الحذف...

الصورة المتحركة تظهر احد الطرق الموجودة للحصول على ارقام تسلسلية لا تتأثر بحذف التسجيلات...

[صورة: zp7BTwU.gif]
[-] كل من 2 users say قال شكرا ل FiREWORKS على المشاركة المفيدة
  • Delphi4Us, larbiparadox
الرد
#15
فعلا انا لم اقصد SUM ولكن يبدو انني مشوش وايضا Count لن تفيد ويجب استخدام MAX
فهي سوف تعيد اكبر قيمة موجودة
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 2 users say قال شكرا ل Delphi4Us على المشاركة المفيدة
  • larbiparadox, العيد1403
الرد
#16
عودة من جديد
بحثت في المنتدى وتوصلت الى

إضافة الدالة :
كود :
function code_suiv(x:string):string; var y,c:string; t,i:integer; begin y:=inttostr(strtoint(x)+1); t:=length(y); c:=''; for i:= 1 to length(x)-t do c:=c+'0'; code_suiv:=c+y; end;

ثم في زر الإضافة
كود :
procedure TForm3.BitBtn1Click(Sender: TObject); var  :     x,string; if dm.BenefisTable.RowsAffected = 0 then         begin         dm.BenefisTable.Insert;         dm.BenefisTable.FieldByName('Num_EXNais').AsString :='';         dm.BenefisTable.FieldByName('Num_Dosier').Value:=dm.BenefisTable.RecordCount+1;         end         else dm.BenefisTable.Last; x:= dm.BenefisTable.FieldValues['Num_Dosier']; dm.BenefisTable.Insert; dm.BenefisTable.FieldValues['Num_Dosier']:=code_suiv(x);

اصبح الترقيم تلقائي
لكن ظهرت لي مشكلة في رز الحذف
[صورة: p_2029cb5361.jpg]
الرد
#17
الموضوع اخد اكثر من حجمه نقاش مع انه بسيط جدا .

اولا : لو رفعت قاعدة البيانات لجعلنا لك لها حقل ترقيم تلقائي ولو فيها بيانات لاتريد ان يراها احد خد نسخها منها واحذف كل ما فيها وارفعها للمعاينة

ثانيا : الموضوع لا يستحق كل هذه اللفة الطويلة التي طرحتها مؤخرا خاصة بالانتقال الى اخر قاعدة البيانات لجلب اخر رقم فهذه الطريقة غير عملية
وافضل حل لك بحال لا تريد انشاء حقل ترقيم تلقائي هو :

كود :
Select MAX(FiledNum) + 1 As MAXSum from TableName

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

كود :
Function GetMAX:Integer Begin QryMax.Sql.clear; QryMax.sql.add('Select MaX(FiledNum)+1 As MaxSum from TableName'); QryMax.open; result:=QryMax.FiledByname('MaxSum').Value; QryMax.close; End;


بالنسبة لرسالة الحذف انا لا افهم الفرنسية للاسف
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم