رمهان قام بنشر أغسطس 18, 2016 قام بنشر أغسطس 18, 2016 (معدل) 5 ساعات مضت, محمد سلامة said: شكرا استاذ رمهان .. ولكن الكود لا يعمل ولا يضيف اي رقم بتاتاً ثانيا : الكود لا يحتوى على البادئة النصية جرب ان تضيف قيمة واحدة على الاقل في حقل id ولتكن 1600001 ادخل قيم غير تاريخ الجهاز لسنة 2017 وهكذا طبعا بدون اضافة اللاحقة النصية تحياتي تم تعديل أغسطس 18, 2016 بواسطه رمهان 1
رمهان قام بنشر أغسطس 18, 2016 قام بنشر أغسطس 18, 2016 (معدل) 6 ساعات مضت, ابوخليل said: صحيح كان الاولى التجربة حتى نختصر الوقت والجهد تفضل اخي الحبيب Private Sub Form_BeforeInsert(Cancel As Integer) On Error Resume Next Dim xLast, xNext As Integer Dim prtyr, prtTxt As Integer prtyr = Right(DatePart("yyyy", Date), 2) prtTxt = CLng(Mid(DMax("ID", "tbl1"), 2, 2)) xLast = CLng(Right(DMax("ID", "tbl1", prtTxt = prtyr), 5)) If IsNull(xLast) Then xNext = 1 Else xNext = xLast + 1 End If Me!ID = "S" & prtyr & Format(xNext, "00000") End Sub ترقيم مع السنة وزيادة حرف.rar لي تعقيب بسيط للتنبيه والفائدة هنا هذا الشرط ليس لوجوده اهمية فهو يعمل مقارنة بين متغيرين تم اخذ قيمة لهما فوجوده زائد xLast = CLng(Right(DMax("ID", "tbl1", prtTxt = prtyr), 5)) اي يمكن ان يصبح السطر هكذا xLast = CLng(Right(DMax("ID", "tbl1"), 5)) كما ان استخدام الدالة clng لاحقا للتحويل تحتاج لوقفة ولكن بعد تفضل الاستاذ ابو خليل بشرح السبب ؟ فقد يبطل العجب ! وهنا استسمح صاحب الموضوع باختصار الكود بدون اي فكرة اضافية او عملية اختزال Private Sub Form_BeforeInsert(Cancel As Integer) prtyr = Right(DatePart("yyyy", Date), 2) xLast = Right(DMax("ID", "tbl1"), 5) If IsNull(xLast) Then xNext = 1 Else xNext = xLast + 1 End If Me!ID = "S" & prtyr & Format(xNext, "00000") End Sub تحياتي تم تعديل أغسطس 18, 2016 بواسطه رمهان 1
رمهان قام بنشر أغسطس 19, 2016 قام بنشر أغسطس 19, 2016 وجدت لكم بالجعبة الفقيرة السطر التالي ولطلب الاخ محمد سلامة Private Sub Form_BeforeInsert(Cancel As Integer) ID = "S" & Replace(Nz(DMax("id", "tbl1", "id like 's" & Right(Year(Date), 2) & "*'"), "s" & Right(Year(Date), 2) & "00000"), "s", "") + 1 End Sub كما يمكن وضع السطر السابق كقيمة افتراضية للعنصر وبدون كود بالتوفيق 2
سمير1404 قام بنشر مارس 27, 2017 قام بنشر مارس 27, 2017 في ٢٤/٧/٢٠١٤ at 16:52, ابوخليل said: ترقيم تلقائي يتجدد مع بداية كل سنة على النحو التالي 1300001 1300002 1300003 1400001 1400002 وهكذا ................. باعتبار الرقم 13 ، 14 هو السنة والترقيم لاشك سيكون تبعا للسنة الحالية Private Sub Form_BeforeInsert(Cancel As Integer) On Error Resume Next Dim xLast, xNext As Integer Dim prtyr, prtTxt As Integer prtyr = Right(DatePart("yyyy", Date), 2) prtTxt = Left(DMax("ID", "tbl1"), 2) xLast = DMax("ID", "tbl1", prtTxt = prtyr) If IsNull(xLast) Then xNext = 1 Else xNext = Val(Mid(xLast, 3, 5)) + 1 End If Me!ID = prtyr & Format(xNext, "00000") End Sub ترقيم تلقائي جديد كل سنة.rar استاذ ابو خليل وفقك الله انا حاولت اعمل ذلك ولكن ليس على السنة بل على اليوم بحيث كل يوم جديد يبداء الرقم من 1 حاولت التعديل على ما تفضلت به ولكن ظهر لدي خطاء وعجزت عن الحل
ابوخليل قام بنشر مارس 28, 2017 الكاتب قام بنشر مارس 28, 2017 غير في هذا السطر فقط : prtyr = Right(DatePart("yyyy", Date), 2) ليصبح بعد التعديل هكذا : prtyr = DatePart("d", Date) 2
wael_rafat قام بنشر مارس 28, 2017 قام بنشر مارس 28, 2017 مشاركة مع استاذنا القدير ابو خليل راجع هذا الرابط 1
سمير1404 قام بنشر مارس 29, 2017 قام بنشر مارس 29, 2017 20 ساعات مضت, ابوخليل said: غير في هذا السطر فقط : prtyr = Right(DatePart("yyyy", Date), 2) ليصبح بعد التعديل هكذا : prtyr = DatePart("d", Date) بارك الله فيك وفي بقية الأخوة ولكن لو تسمح نتزيد منكم كيف لو اردت ان يتجدد التاريخ بناء على حقل للتاريخ وليس على تاريخ الجهاز على اعتبار ان اسم الحقل s_date
ابوخليل قام بنشر مارس 29, 2017 الكاتب قام بنشر مارس 29, 2017 لو شرحت الفكرة التي تريد تطبيقها ، فقد نجد حلول أخرى مختلفة 2
سمير1404 قام بنشر مارس 29, 2017 قام بنشر مارس 29, 2017 3 ساعات مضت, ابوخليل said: لو شرحت الفكرة التي تريد تطبيقها ، فقد نجد حلول أخرى مختلفة شكر الله لك استاذ ابو خليل على كريم تواصلك دايم نستفيد منك المثال المرفق موضح بداخله المطلوب حاولت جاهداً ان اتوصل لحل بناء على المثال الذي تكرمت انت به ولم اوفق ذلك هناك اربع حقول حقل الرقم يعتمد على حقل التاريخ بحيث لو تم اضافة تاريخ جديد يبداء الرقم من 1 واذا نفس التاريخ يكمل الى 2 وهكذا وفي اليوم التالي او عند ادخال رقم جديد في حقل التاريخ يبداء العد من جديد ب 1 في حقل الكود هذه اضافة اتمنى التكرم بالمساعدة فيها بحيث يكون حقل الكود عبارة عن السنة الحالية والشهر واليوم ثم - الرقم db9790.rar
Shivan Rekany قام بنشر مارس 29, 2017 قام بنشر مارس 29, 2017 6 ساعات مضت, سمير1404 said: شكر الله لك استاذ ابو خليل على كريم تواصلك دايم نستفيد منك المثال المرفق موضح بداخله المطلوب حاولت جاهداً ان اتوصل لحل بناء على المثال الذي تكرمت انت به ولم اوفق ذلك هناك اربع حقول حقل الرقم يعتمد على حقل التاريخ بحيث لو تم اضافة تاريخ جديد يبداء الرقم من 1 واذا نفس التاريخ يكمل الى 2 وهكذا وفي اليوم التالي او عند ادخال رقم جديد في حقل التاريخ يبداء العد من جديد ب 1 في حقل الكود هذه اضافة اتمنى التكرم بالمساعدة فيها بحيث يكون حقل الكود عبارة عن السنة الحالية والشهر واليوم ثم - الرقم db9790.rar استأذن من استاذنا ابو خليل على المداخلة اتفضل ما طلبت للعلم انا غيرت اسماء الحقول من number الى number1 ومن code الى code1 لان تلك الاسماء محجوزة لكي يتجنب من الاخطاء واتفضل استخدمت هذا الكود Private Sub f_date_AfterUpdate() On Error Resume Next If Me.number1 <> 0 Then Me.Undo Exit Sub End If If DCount("number1", "tp1") < 1 Or IsNull(DMax("number1", "tp1", "[f_date]=#" & Format(Me.f_date.Value, "dd/mm/yyyy") & "#")) = True Then Me.number1 = 1 Me.code1 = Left(Right(Me.f_date, 2), 4) & "\" & Format(Me.f_date, "mm") & "\" & Format(Me.f_date, "dd") & "-000" & Me.number1 Else Me.number1 = DMax("number1", "tp1", "[f_date] =#" & Format(Me.f_date.Value, "dd/mm/yyyy") & "#") + 1 Me.code1 = Left(Right(Me.f_date, 2), 4) & "\" & Format(Me.f_date, "mm") & "\" & Format(Me.f_date, "dd") & "-000" & Me.number1 End If End Sub واليك ملفك بعد تعديل واذا ما فهمت من الكود راح نشرح لك باذن الله تقبل تحياتي db9790.rar 3 1
ابوخليل قام بنشر مارس 29, 2017 الكاتب قام بنشر مارس 29, 2017 جزيت خيرا استاذنا .. فقد كفيتنا المؤونة وأجدت 3
سمير1404 قام بنشر أبريل 2, 2017 قام بنشر أبريل 2, 2017 (معدل) في ٢٩/٣/٢٠١٧ at 18:36, Shivan Rekany said: استأذن من استاذنا ابو خليل على المداخلة اتفضل ما طلبت للعلم انا غيرت اسماء الحقول من number الى number1 ومن code الى code1 لان تلك الاسماء محجوزة لكي يتجنب من الاخطاء واتفضل استخدمت هذا الكود Private Sub f_date_AfterUpdate() On Error Resume Next If Me.number1 <> 0 Then Me.Undo Exit Sub End If If DCount("number1", "tp1") < 1 Or IsNull(DMax("number1", "tp1", "[f_date]=#" & Format(Me.f_date.Value, "dd/mm/yyyy") & "#")) = True Then Me.number1 = 1 Me.code1 = Left(Right(Me.f_date, 2), 4) & "\" & Format(Me.f_date, "mm") & "\" & Format(Me.f_date, "dd") & "-000" & Me.number1 Else Me.number1 = DMax("number1", "tp1", "[f_date] =#" & Format(Me.f_date.Value, "dd/mm/yyyy") & "#") + 1 Me.code1 = Left(Right(Me.f_date, 2), 4) & "\" & Format(Me.f_date, "mm") & "\" & Format(Me.f_date, "dd") & "-000" & Me.number1 End If End Sub واليك ملفك بعد تعديل واذا ما فهمت من الكود راح نشرح لك باذن الله تقبل تحياتي db9790.rar الأستاذ شفان لك كل الشكر و التقدير على المداخلة الكريمة المفيدة واجزل الشكر و الثناء موصول للاستاذ ابو خليل هل ممكن ان يكون ذلك حتى على التاريخ الهجري ايضا لانه عند تجربة التاريخ الهجري لم تكن النتيجة سليمة كما هو الحال في استخدام التاريخ الميلادي عجزت فعلا عن الوصول لحل مثل ذلك والبركة فيكم تجودون علينا من علمكم الكريم تم تعديل أبريل 2, 2017 بواسطه سمير1404 خطاء في توضيح المطلوب
عذاب الزمان قام بنشر يوليو 21, 2017 قام بنشر يوليو 21, 2017 (معدل) السلام عليكم ورحمة الله وبركاته الكود بهذا الشكل يخرج لي نتيجة s17/00001 وهكذا صعودا ... هل يمكن اظهاره بالشكل s2017/00001 وهكذا صعودا ؟؟؟ علما اني غيرت في السطر الرابع prtyr الرقم 2 الى 4 وظهر لي ما اردت لكنه يبقى ثابتا بتسلسل 1 لجميع السجلات . مع التحية والتقدير . On Error Resume Next Dim xLast, xNext As Integer Dim prtyr, prtTxt As Integer prtyr = Right(DatePart("yyyy", Date), 2) prtTxt = CLng(Mid(DMax("seq", "tb1"), 2, 2)) xLast = CLng(Right(DMax("seq", "tb1", prtTxt = prtyr), 5)) If IsNull(xLast) Then xNext = 1 Else xNext = xLast + 1 End If Me!Seq = "S" & prtyr & "/" & Format(xNext, "00000") تم تعديل يوليو 21, 2017 بواسطه عذاب الزمان
عذاب الزمان قام بنشر يوليو 21, 2017 قام بنشر يوليو 21, 2017 37 دقائق مضت, عذاب الزمان said: السلام عليكم ورحمة الله وبركاته الاستاذ رمهان المحترم الكود الذي قمت انت بتعديله كان رائعا وهو فعلا ما اريده فقد غيرت 2 الى 4 واشتغل وشكرا جزيلا Dim xLast, xNext, prtyr As Integer prtyr = Right(DatePart("yyyy", Date), 4) xLast = Right(DMax("id", "tbl1"), 3) If IsNull(xLast) Then xNext = 1 Else xNext = xLast + 1 End If Me!id = "S" & "/" & prtyr & "/" & Format(xNext, "000") لي سؤال واحد فقط بخصوص هذا الموضوع : اريد ان يكون التسلسل s/001 وهكذا s/002 اي من دون اظهار السنة كما هو الان s/2017/001 ولكم جميعا التحية والتقدير . وانا واكتب خطر لي ان احذف prtyr & "/" وجربت ذلك ونحجت .... موقع رائع واساتذة كبار ولكم مني خالص التحية والاحترام .
Shivan Rekany قام بنشر يوليو 22, 2017 قام بنشر يوليو 22, 2017 (معدل) في ٢١/٧/٢٠١٧ at 11:56, عذاب الزمان said: الكود بهذا الشكل يخرج لي نتيجة s17/00001 وهكذا صعودا ... هل يمكن اظهاره بالشكل s2017/00001 وهكذا صعودا ؟؟؟ علما اني غيرت في السطر الرابع prtyr الرقم 2 الى 4 وظهر لي ما اردت لكنه يبقى ثابتا بتسلسل 1 لجميع السجلات . يا عذاب الزمان السلام عليكم ورحمة الله وبركاته ما تريد بالضبط هل تريد ان يكون تسلسل التاريخ هكذا s17/00001 ام هكذا s2017/00001 رأيت هذه المشاركة ان استاذنا @jjafferr عطيتك ماتريد تم تعديل يوليو 22, 2017 بواسطه Shivan Rekany
عذاب الزمان قام بنشر يوليو 23, 2017 قام بنشر يوليو 23, 2017 (معدل) السلام عليكم استاذي المحترم اريد اما s2017/0001 ولا يتكرر رقم السجل ، ويبدا برقم جديد بداية كل سنة . او يظهر لي الترقيم بشكل 1 للسجل الاول و 2 للسجل الثاني وهكذا ولا يتكرر ، ويبدأ برقم جديد عند بداية سنة جديدة . اي لا اريده بالصيغ 171 او 1701 او غيرها جزاكم الله خيرا . تم تعديل يوليو 23, 2017 بواسطه عذاب الزمان
انور القاضي قام بنشر يوليو 28, 2018 قام بنشر يوليو 28, 2018 ماشاء الله استاذ ابو خليل عمل اكثر من رائع جعله في ميزان حسناتكم يوم العرض سؤال : هل يمكن تطبيق ذلك على الصفوف الدراسية بحيث يكون ترقيم الطلاب بشكل متسلسل بكل صف على حدة بمعنى يكون تسلسل الطالب في الصف مقرون برقم الصف ويكون لكل صف تسلسل مستقل عن الصف الاخر مودتي للجميع بالخير والسلام
ابوخليل قام بنشر يوليو 29, 2018 الكاتب قام بنشر يوليو 29, 2018 نعم يمكن انظر هنا واذا لم تتمكن من التطبيق يفضل فتح موضوع وعنوان جديد وارفق مثالك للتعديل عليه
ella3na قام بنشر ديسمبر 23, 2018 قام بنشر ديسمبر 23, 2018 انا شاكر لك جداا بس اريد معرفه كيف يتم العمل علي تغير الترقيم التلقائي شهريا و ليست سنويا
ابوخليل قام بنشر ديسمبر 23, 2018 الكاتب قام بنشر ديسمبر 23, 2018 4 ساعات مضت, ella3na said: انا شاكر لك جداا بس اريد معرفه كيف يتم العمل علي تغير الترقيم التلقائي شهريا و ليست سنويا في ٢٨/٣/٢٠١٧ at 06:59, ابوخليل said: غير في هذا السطر فقط : prtyr = Right(DatePart("yyyy", Date), 2) ليصبح بعد التعديل هكذا : prtyr = DatePart("d", Date) اعتقد انه يمكن ايضا ان يتم التغيير شهريا جرب تغيير السطر في الاقتباس اعلاه الى prtyr = DatePart("m", Date) 1
ella3na قام بنشر أغسطس 3, 2019 قام بنشر أغسطس 3, 2019 On 7/24/2014 at 3:52 PM, ابوخليل said: ترقيم تلقائي يتجدد مع بداية كل سنة على النحو التالي 1300001 1300002 1300003 1400001 1400002 وهكذا ................. باعتبار الرقم 13 ، 14 هو السنة والترقيم لاشك سيكون تبعا للسنة الحالية Private Sub Form_BeforeInsert(Cancel As Integer) On Error Resume Next Dim xLast, xNext As Integer Dim prtyr, prtTxt As Integer prtyr = Right(DatePart("yyyy", Date), 2) prtTxt = Left(DMax("ID", "tbl1"), 2) xLast = DMax("ID", "tbl1", prtTxt = prtyr) If IsNull(xLast) Then xNext = 1 Else xNext = Val(Mid(xLast, 3, 5)) + 1 End If Me!ID = prtyr & Format(xNext, "00000") End Sub ترقيم تلقائي جديد كل سنة.rar هل يمكن ان يكون الترقيم التلقائي يبقي كل شهر يعني كل شهر يبداء الترقيم من الاول
ابوآمنة قام بنشر أغسطس 3, 2019 قام بنشر أغسطس 3, 2019 في ١٩/٨/٢٠١٦ at 06:23, رمهان said: وجدت لكم بالجعبة الفقيرة السطر التالي ولطلب الاخ محمد سلامة Private Sub Form_BeforeInsert(Cancel As Integer) ID = "S" & Replace(Nz(DMax("id", "tbl1", "id like 's" & Right(Year(Date), 2) & "*'"), "s" & Right(Year(Date), 2) & "00000"), "s", "") + 1 End Sub كما يمكن وضع السطر السابق كقيمة افتراضية للعنصر وبدون كود بالتوفيق جرب كود رمهان وهكذا الشهر (Month ) ID = "S" & Replace(Nz(DMax("id", "tbl1", "id like 's" & Right(Month(Date), 2) & "*'"), "s" & Right(Month(Date), 2) & "00000"), "s", "") + 1 2
الردود الموصى بها