المشاركات : 1,252
المواضيع 170
:
: 1,500
الإنتساب : Jul 2009
(12-07-2021, 12:07 PM)embarcadero كتب : إحذف الحقل القديم و أعد إضافته من جديد بترقيم التلقائي
![[صورة: 549708525.png]](https://www11.0zz0.com/2021/07/12/11/549708525.png)
و حذف هذا السطر
dm.BenefisTable.FieldByName('Num_Dosier').Value:=dm.BenefisTable.RecordCount+1;
* النتيجة ستكون كما طلبت
هل فعلا قمت بنفس التعليمات مثل ما قال أخونا
embarcadero؟
اللهم اجعلني من أهل القرآن ، الذين هم أهلك و خاصتك.
تذكر بأن الوقت الذي تلهو فيه ، غيرك يبني مجده فيه.
المشاركات : 27
المواضيع 9
:
: 103
الإنتساب : Oct 2016
[quote pid="53523" dateline="1626035522"]
حقل الترقيم ليس تلقائي بل من نوع Numerique
استعمل الكود
dm.BenefisTable.Insert;
dm.BenefisTable.FieldByName('Num_Dosier').Value:=dm.BenefisTable.RecordCount+1;
واحهتني عدة مشاكل عند جعل حقل الترقيم NumAuto في access
[/quote]
حاول أن تجعل حقل في جدول ثاني يحمل أخر رقم قمت بإدخاله ويزيد عليه في كل مرة تقوم بإدخال سجل جديد
المشاركات : 1,677
المواضيع 349
:
: 1,069
الإنتساب : Nov 2013
إقتباس :حاول أن تجعل حقل في جدول ثاني يحمل أخر رقم قمت بإدخاله ويزيد عليه في كل مرة تقوم بإدخال سجل جديد
فكرة جدول اخر يحمل الرقم لا احبذها
مع ان مشكلته بسيطة وهي الحل الذي عرضه الاخوة الا انه وبحال عدم القدرة على تطبيق حلهم استخدام استعلام للحصول على اخر رقم يكون افضل
كود :
Select Sum(FiledNum) + 1 As Sum from TableName
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
المشاركات : 29
المواضيع 3
:
: 0
الإنتساب : Apr 2020
إقتباس :كود :
Select Sum(FiledNum) + 1 As Sum from TableName
يبدو انك تقصد
COUNT و ليس
SUM لانه كما تعلم اخي ان
SUM تجلب
مجموع قيم التسجيلات و ليس
عددها...
على كل حال، الاعتماد على عدد التسجيلات للحصول على الترقيم
التسلسلي ليست فكرة فعالة لان العدد يتغير بحذف التسجيلات الموجدة و يحدث استثناء عند تطابق رقم موجود مسبقا بعدد التسجيلات بعد الحذف...
الصورة المتحركة تظهر
احد الطرق الموجودة للحصول على ارقام تسلسلية لا تتأثر بحذف التسجيلات...
المشاركات : 1,677
المواضيع 349
:
: 1,069
الإنتساب : Nov 2013
16-07-2021, 10:44 PM
(آخر تعديل لهذه المشاركة: 16-07-2021, 10:45 PM بواسطة Delphi4Us.)
فعلا انا لم اقصد SUM ولكن يبدو انني مشوش وايضا Count لن تفيد ويجب استخدام MAX
فهي سوف تعيد اكبر قيمة موجودة
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
المشاركات : 64
المواضيع 23
:
: 1
الإنتساب : Aug 2019
عودة من جديد
بحثت في المنتدى وتوصلت الى
إضافة الدالة :
كود :
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);
اصبح الترقيم تلقائي
لكن ظهرت لي مشكلة في رز الحذف
المشاركات : 1,677
المواضيع 349
:
: 1,069
الإنتساب : Nov 2013
الموضوع اخد اكثر من حجمه نقاش مع انه بسيط جدا .
اولا : لو رفعت قاعدة البيانات لجعلنا لك لها حقل ترقيم تلقائي ولو فيها بيانات لاتريد ان يراها احد خد نسخها منها واحذف كل ما فيها وارفعها للمعاينة
ثانيا : الموضوع لا يستحق كل هذه اللفة الطويلة التي طرحتها مؤخرا خاصة بالانتقال الى اخر قاعدة البيانات لجلب اخر رقم فهذه الطريقة غير عملية
وافضل حل لك بحال لا تريد انشاء حقل ترقيم تلقائي هو :
كود :
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;
بالنسبة لرسالة الحذف انا لا افهم الفرنسية للاسف
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم