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

ترقيم حقل بشرط قيمة من حقل اخر


إذهب إلى أفضل إجابة Solved by Moosak,

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

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

في الجدول حقل اسم المدرسة وحقل اسمه 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
رابط هذا التعليق
شارك

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

  • Thanks 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information