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

تعديل في الكود لظهور ارقام تلقائية

بدأه خالد يحي الامام في 29 أكتوبر 2014 · 25 رد · 653 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بعد التحية وكل عام والجميع بالف خير

يوجد حقلين حقل يتم ادخال رقم الدفعة مثلا 2/2015 ليظهر في حقل ثاني رقم المتدرب بالرقم 15201 او 15202 حسب اخر رقم موجود بالجدول وكما هو في الكود المرفق 

المطلوب تعديل في الكود بحيث اكتب رقم الدفعة بالشكل S02/15 مثلا او MO12/15 او IEMM08/15 بي اختصار الحرف او الحروف السابقة بالاضافة لرقم الدفعة / السنة ليظهر رقم المتدرب في الحقل بالصغة S201/15  او S202/15 وهكذا بالتسلسل وكذلك للاخري مثلا MO1201/15 وهكذا

Private Sub Gr_No_AfterUpdate()
On Error Resume Next
Me.Refresh
Dim Xx As String
Dim I As String
Dim Y As String
Dim Z As Integer
I = Right(Me.Gr_No, 2)  '  year
Y = Left(Me.Gr_No, 1)   ' Group_No
Z = DCount("gr_no", "ÌÏæá ÇáãÊÏÑÈ", "Left([Gr_No], 1)='" & Y & "'" & " and right([Gr_No], 2)='" & I & "'")
If Z = 0 Then
Xx = "01"
Else
Xx = Nz(CLng(DMax("tr_no", "ÌÏæá ÇáãÊÏÑÈ", "Left([Gr_No], 1)='" & Y & "'" & " and right([Gr_No], 2)='" & I & "'") + 1), 0)
If IsNull(Xx) Or Xx = "" Then
Xx = "01"
End If
Xx = Right(Xx, 2)
End If
Me.Tr_No = I & Y & Xx
End Sub
#2

للرفع

#3

السلام عليكم

مافى خبر عن الاستاذة ام عهود اطال الله في عمرها

#4

السلام عليكم

لايوجد حل

#5

الاخ جعفر منتظرين منك المشاركة

#6

وعليكم السلام :)

 

بين الامس واليوم ، انا مررت على مشاركتك اكثر من 4-5 مرات :)

 

1. السؤال غير واضح لي ، ومحتاج توضيح اكثر لوسمحت ،

2. رجاء ارفاق قاعدة بياناتك (الجزء الخاص بالسؤال) ، علشان افهم واقدر اقارن المطلوب بشرحك التفصيلي :)

 

 

جعفر

تم تعديل هذه المشاركة بواسطة jjafferr في 2 نوفمبر 2014 في 22:29

#7

اسم النموذج sub ftraining ادخال رقم الدفعة لظهور رقم المتدرب

الملف مرفقData.rar

#8

اسم النموذج sub ftraining ادخال رقم الدفعة لظهور رقم المتدرب

الملف مرفقData.rar

#9

مساء الخير الاخ جعفر 

تم اضافة الملف

#10

وعليكم السلام اخي :)

 

انا سألتك سؤالين:

jjafferr كتب:

1. السؤال غير واضح لي ، ومحتاج توضيح اكثر لوسمحت ،

2. رجاء ارفاق قاعدة بياناتك (الجزء الخاص بالسؤال) ، علشان افهم واقدر اقارن المطلوب بشرحك التفصيلي :)

 

انت رديت على السؤال الثاني ، ونسيت الاول :(

رجاء رد على السؤال بالتفصيل :)

 

جعفر

#11

عذرا اخي جعفر اتوقعتك من النموذج تكون فهمت

مطلوب تعديل في الكود بحيث اكتب رقم الدفعة بالشكل S02/15 مثلا او MO12/15 او IEMM08/15  ( بي اختصار الحرف او الحروف السابقة بالاضافة لرقم الدفعة / السنة  ) داخل حقل رقم الدفعة ليظهر تلقائيا رقم المتدرب في حقل رقم المتدرب في النموذج بالصغة S201/15  او S202/15 وهكذا بالتسلسل وكذلك للاخري مثلا MO1201/15 وهكذا

الكود اعلاه في حدث After Update في حقل رقم الدفعة في نموذج sub ftraining 

#12

تفضل :)

 

استخدم هذا الكود بدل الكود اعلاه :

    'From Form info
    SL = InStr(Me.Gr_No, "/")       'Slash location
    'Y = Mid(Me.Gr_No, SL + 1)       'Year: 15
    Y = Mid(Me.Gr_No, InStr(Me.Gr_No, "/") + 1)       'Year: 15
    For Nu = 1 To Len(Me.Gr_No)     'Numeric starting position
        If IsNumeric(Mid(Me.Gr_No, Nu, 1)) Then Exit For
    Next Nu
    L = Mid(Me.Gr_No, 1, Nu - 1)    'Starting Letter: S
    G = Mid(Me.Gr_No, Nu, Len(Me.Gr_No) - Nu - Len(Y))   'Group: 6
    
    'From Table info
    P = Chr(34) & L & G & "*/" & Y + 2000 & Chr(34)  'pattern: S6*/2015
    Z = DCount("[gr_no]", "جدول المتدرب", "[Gr_No] like " & P)
        
    'Next Sequence
    Me.Tr_No = L & G & Format(Z + 1, "00") & "/" & Y + 2000

جعفر

1
#13

جزاك الله خيرا الاخ جعفر

جربت الكود واشتغل والحمد لله احتمال احتاج لي تعديل فيه قليلا اذا واجهتني مشكلة برجع ليك

اكرر الشكر

#14

الاخ جعفر 

ظهرة المشكلة كما في الصورة المرفقة وجود رقم سابق مكرر اي عند كتابة رقم الدفعة مثلا S07/14 للمتدرب الاول يعطيه الرقم S0701/2014 وعند الانتقال للمتدرب الثاني واعطاءه نفس رقم الدفعة يعطيه نفس رقم المتدرب السابق وهو S0701/2014 المفروض اعطيه الرقم S0702/2014 وللمتدرب الثالث يعطيه الرقم S0703/2014 وهكذا 

الملاحظة الثانية بالنسبة لرقم المتدرب افضل يكون بالتنسيق S0701/14 و S0702/14 وهكذ بديلا لى S0701/2014 يعني ليست السنة كاملة 

ولك جزيل الشكر 

#15

وعليكم السلام :)

 

1. لا تدخل رقم بين S وبين الرقم 7 ، اي يمكنك ان تدخل S7/14 مثلا ،

2. انا عملت السنة 2015 ، لاني شفتها في جدولك ، واذا ما تريد السنة الطويلة ، احذف الرقم 2000 من الكود ، من المكانين :)

 

 

جعفر

#16

جزاك الله خيرا اخي جعفر

1- نفس المشكلة قائمة تكرار رقم المتدرب وعدم الاستاجبة لرقم متدرب اخر بمعني لو مثلا ادخلنا رقم الدفعة للمتدرب الاول بي S7/14 يظهر رقم المتدرب S701/14 جيد لكن لما ندخل رقم الدفعة للمتدرب الثاني S7/14 يعطي الرقم للمتدرب  الثاني نفس رقم المتدرب الاول وهنا تظهر المشكلة

#17

جزاك الله خيرا الاخ جعفر خلاص المشكلة اتحلت

#18

الاخ جعفر ظهرت مشكلة اخري لما اصل المدرب العاشر وهو رقمه حيكون S710/14 وانتقل لى المتدرب رقم 11 مفترض يكون رقمه S711/14 يظهر رقم المتدرب العاشر اى يظهر الرقم (S710/14 ) وحتى لو عدلته يدويا بالرقم S711/14  المتدرب رقم 12 يظهر رقمه رقم المتدرب 11 وهكذا جربت يدويا حتي المتدرب رقم 14 يعني باختصار بعد رقم المتدرب 10 لايظهر الرقم 

#19

للرفع

#20

للرفع

#21

الاخ جعفر

مشاركتك

#22

إن شاء الله أخي خالد ، ولكني خارج البلاد وﻻ أكون أمام الكمبيوتر إﻻ في المساء :)

جعفر

#23

بالسلامة وعائدا ظافرا غانما 

#24

للرفع

#25

اخي الفاضل :)

 

بدل هذا السطر:

 

jjafferr كتب:

        If IsNumeric(Mid(Me.Gr_No, Nu, 1)) Then Exit For

 

جرب:

If IsNumeric(Mid(Me.Gr_No, Nu, 1)) Then
            Nu = Nu - 1
            Exit For
        End If

وانا جربته بالارقام التالية ، ووصلت بالترقيم الى 12 وتوقفت ، وكل شئ كان تمام :) :

jj/2014  و  s9/2014

 

 

جعفر

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