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

كود لإعادة ترتيب رقم التسلسل في جدول أكسيس بعد الحذف

مغلق
بدأه مصلح الحريصي في 31 ديسمبر 2001 · 5 رد · 1,290 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

حاولت في إيجاد حل لكي يتم ترتيب الرقم المسلسل في جداول أكسيس بعد الحذف كما في جداول الوورد ولكن للأسف لم أجد سوى أنني أعبث حتى وصلت لكود يقوم بذلك ولكن بطرق ملتويه ولذلك وضعت هذا الكود هنا لربما احدكم يقوم بتعديله حتى يكون أسهل من ذلك0

كيف ذلك ؟

على نموذج وضعت مربع نص ثم سميته " الرقم المسلسل" وفي أحداث النموذج حدث في الحالي كتبت الكود التالي:

الرقم المسلسل= Me.CurrentRecord

هذا الحقل يعطي رقم السجل الحالي بالترتيب ويقوم بتخزين هذا الرقم في الرقم المسلسل في جدول الموظفين وبعد الحذف لابد أن يتم التنقل بين السجلاات في النموذج من أول سجل حتى أخر سجل لكي يتم أعادة ترتيب الرقم المسلسل وبدلاً من ذلك وظعت الكود التالي :

Private Sub CmdDelete_Click()
Dim UseButton As Integer
Const dgdef = 1
UseButton = MsgBox(" سوف تحذف سجل هل توافق", dgdef, "معلومات")
If UseButton = 1 Then
    DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
    DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70

On Error GoTo Err_cmd1_Click
Dim db As Database, rst As Recordset
Set db = DBEngine(0)(0)
Set rst = db.OpenRecordset("الموظفين", dbOpenTable)
Do Until rst.EOF
DoCmd.GoToRecord , , acNext
Loop
Else

Exit_CmdDelete_Click:
    Exit Sub

Err_CmdDelete_Click:
    Beep
    MsgBox "سوف يتم إعادة ترتيب العدد التسلسلي الأن", vbInformation, "تنبيه"
    DoCmd.Close acForm, "الموظفين"
    DoCmd.OpenForm "الموظفين", acNormal, "", "", , acNormal

    Resume Exit_CmdDelete_Click

End If
End Sub

ثم يتم غلق النموذج وإعادة تشغيله

نجحت العملية غير أنني غير مقتنع فأخشى حدوث أخطأ فيما بعد

فالرجاء الإطلاع على الطريقة والأكواد ومن له ملاحظة أو تعديل الرد 0

شكراً للجميع سلفاً0

#2

هذا كود بـ DAO يقوم بإعادة ترتيب الرقم إبتداء من رقم واحد :

Dim db As Database
Dim rst As Recordset
Dim Num  As Long
Set db = Application.CurrentDb
Set rst = db.OpenRecordset("اسم الجدول", dbOpenTable)

Num = 1
Do Until rst.EOF
rst.Edit
rst![اسم الحقل] = Num
rst.Update
Num = Num + 1
rst.MoveNext
Loop

وهذا بـ ADO :

Dim rst As ADODB.Recordset
Dim Num  As Long
Set rst = New ADODB.Recordset
rst.Open "اسم الجدول", CurrentProject.Connection, _
adOpenStatic, adLockOptimistic

Num = 1
Do Until rst.EOF
rst![اسم الحلق] = Num
rst.Update
Num = Num + 1
rst.MoveNext
Loop

الأول يحتاج المرجع المسمى :

Micosoft DAO 3.6 Object Libraary

والثاني يحتاج :

Micosoft ActiveX Data Object 2.5 Library

ملاحظة هامة : الحقل ليس ترقيم تلقائي ومن اراد الاطلاع على إعادة الترقيم التلقائي للواحد فلينظر هذا الرابط :

http://www.arabteam2000.com/vb/showthread....p?threadid=6793

وللجميع التحية

#3

ابو /حمود : راعي لوله وراعي لوله ما ينلحق

ألف ألف شكر

#4

الله الله ياابو حمود

والله صدق استاذنا مصلح

ابو حمود راعي الاوله

#5

شكرا لك اخي ابو حمود على هذه المعلومه الرائعه .

ولكن رابط اعادة الترقيم التلقائي يبدو انه خاطيء ولم يفتح معي آمل التفضل بالنظر في ذلك مع وافر الشكر .

sob7ank.jpg

فرض على الناس أن يتوبوا**** لكن ترك الذنوب أوجب

والصبر في النائبات صعب**** لكن فوات الثواب أصعب

والدهر في صرفه عجيب**** لكن غفلة الناس أعجب

وكل ما قد يجي قريب****والموت للعبد من ذاك أقرب

#6

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

أرفقت لمن يريد ،،، ملف وبداخله المثالين والله الموفق.

ترتيب_التسلسل.rar

ibnmusqat.gif

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…