اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

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

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

New Microsoft Access Database.rar

قام بنشر

وعليكم السللام ورحمة الله وبركاته أخي أبو عبدالرحمن

 

ماهو هدفك من الترقيم بهذه الطريقة ؟

لعله توجد طريقة أفضل من هذه بإنشاء جدول آخر يتم وضع فيه السجلات الخاصة بكل مدرسة .. 🙂 

قام بنشر (معدل)

استاذي العزيز لا احتاج جدول احتاج فقط الترقيم وشاكر لك  وفي حالة تم حذف سجل وتم اضافة سجل من نفس المدرسة يعطيني ترقيم جديد 

تم تعديل بواسطه ابو عبد الرحمن العراقي
قام بنشر (معدل)

في هذه الحالة هذي تُعمل في فورم وليس في الجدول مباشرة ..

تضع هذا الكود في حدث بعد التحديث لاسم المدرسة :

Private Sub اسم_المدرسة_AfterUpdate()

Dim N As Integer

N = Nz(DMax("t1", "جدول1", "[اسم المدرسة]='" & Me.اسم_المدرسة & "'") + 1, 1)
Me.t1 = N

End Sub

بشرط كتابة اسم المدرسة بشكل صحيح لكي يتعرف عليه الكود .

وعند إضافة سجل جديد سيعطيك الرقم التالي لأكبر رقم مسجل في الجدول لنفس المدرسة 🙂 

image.png.abd2a5c3f4f6c3977afcdb6ee59773fb.png

image.png.c57fc9bc760b5c65a07beab8ce53d81e.png

New Microsoft Access Database.accdb

تم تعديل بواسطه Moosak
  • Like 2
قام بنشر (معدل)

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

تم تعديل بواسطه ابو عبد الرحمن العراقي
قام بنشر
3 ساعات مضت, ابو عبد الرحمن العراقي said:

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

الله يبارك فيك أخي أبو عبدالرحمن .. 🌹

هل جربت المرفق ؟ .. كود ال VBA  الذي وضعته لك يقوم بما ذكرته .

أم تقصد أنك تريد طريقة لإعادة ترقيم أسماء المدارس السابقة في قاعدة البيانات لديك ؟

  • تمت الإجابة
قام بنشر (معدل)
منذ ساعه, ابو عبد الرحمن العراقي said:

انا احتاج يعطيني الترقيم بضغطة زر واحده لكل السجلات

تم التعديل أخي أبو عبدالرحمن كما طلبت .. وأبقيت على الكود السابق لكي يعمل تلقائيا عند إضافة سجل جديد ..

أولا قمت بتغيير أسماء جميع العناصر والحقول إلى اللغة الإنجليزية لكي يسهل التعامل مع الأكواد 🙂 

ثم أضفت هذا الكود على زر إعادة الترقيم  :

Private Sub ReNumbringBtn_Click()

Dim DB As dao.Database
Dim RS As dao.Recordset

Set DB = CurrentDb
Set RS = DB.OpenRecordset("Table1")

' تصفير الأرقام للبدأ من جديد
DoCmd.SetWarnings False
DoCmd.RunSQL ("update table1 set t1 = 0")
DoCmd.SetWarnings True

' إعادة الترقيم
With RS
    .MoveFirst
    Do Until .EOF
        .Edit
        !t1 = Nz(DMax("t1", "Table1", "[SchoolName]='" & !SchoolName & "'") + 1, 1)
        .Update
        .MoveNext
    Loop
End With

Set DB = Nothing
Set RS = Nothing

DoCmd.OpenTable "table1"
MsgBox "تم ترقيم المدارس بنجاح", vbOKOnly, "انتهى"

End Sub

والآن يمكنك تجربته ولا تنسى تغيير المسميات التي في الكود لتوافق المسميات الموجودة لديك 🙂

ReNumbring.thumb.gif.a6f683af4668e0ea3c87dc324124a322.gif

المرفق :

Numbring.accdb

تم تعديل بواسطه Moosak
  • Like 2

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information