رمهان قام بنشر أغسطس 18, 2016 قام بنشر أغسطس 18, 2016 (معدل) في 17/8/2016 at 20:17, محمد سلامة said: شكرا استاذ رمهان .. ولكن الكود لا يعمل ولا يضيف اي رقم بتاتاً ثانيا : الكود لا يحتوى على البادئة النصية Expand جرب ان تضيف قيمة واحدة على الاقل في حقل id ولتكن 1600001 ادخل قيم غير تاريخ الجهاز لسنة 2017 وهكذا طبعا بدون اضافة اللاحقة النصية تحياتي تم تعديل أغسطس 18, 2016 بواسطه رمهان 1
رمهان قام بنشر أغسطس 18, 2016 قام بنشر أغسطس 18, 2016 (معدل) في 17/8/2016 at 21:56, ابوخليل 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 ترقيم مع السنة وزيادة حرف.rarFetching info... Expand لي تعقيب بسيط للتنبيه والفائدة هنا هذا الشرط ليس لوجوده اهمية فهو يعمل مقارنة بين متغيرين تم اخذ قيمة لهما فوجوده زائد 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 في 24/7/2014 at 13: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 ترقيم تلقائي جديد كل سنة.rarFetching info... Expand استاذ ابو خليل وفقك الله انا حاولت اعمل ذلك ولكن ليس على السنة بل على اليوم بحيث كل يوم جديد يبداء الرقم من 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 في 28/3/2017 at 03:59, ابوخليل said: غير في هذا السطر فقط : prtyr = Right(DatePart("yyyy", Date), 2) ليصبح بعد التعديل هكذا : prtyr = DatePart("d", Date) Expand بارك الله فيك وفي بقية الأخوة ولكن لو تسمح نتزيد منكم كيف لو اردت ان يتجدد التاريخ بناء على حقل للتاريخ وليس على تاريخ الجهاز على اعتبار ان اسم الحقل s_date
ابوخليل قام بنشر مارس 29, 2017 الكاتب قام بنشر مارس 29, 2017 لو شرحت الفكرة التي تريد تطبيقها ، فقد نجد حلول أخرى مختلفة 2
سمير1404 قام بنشر مارس 29, 2017 قام بنشر مارس 29, 2017 في 29/3/2017 at 05:23, ابوخليل said: لو شرحت الفكرة التي تريد تطبيقها ، فقد نجد حلول أخرى مختلفة Expand شكر الله لك استاذ ابو خليل على كريم تواصلك دايم نستفيد منك المثال المرفق موضح بداخله المطلوب حاولت جاهداً ان اتوصل لحل بناء على المثال الذي تكرمت انت به ولم اوفق ذلك هناك اربع حقول حقل الرقم يعتمد على حقل التاريخ بحيث لو تم اضافة تاريخ جديد يبداء الرقم من 1 واذا نفس التاريخ يكمل الى 2 وهكذا وفي اليوم التالي او عند ادخال رقم جديد في حقل التاريخ يبداء العد من جديد ب 1 في حقل الكود هذه اضافة اتمنى التكرم بالمساعدة فيها بحيث يكون حقل الكود عبارة عن السنة الحالية والشهر واليوم ثم - الرقم db9790.rar
Shivan Rekany قام بنشر مارس 29, 2017 قام بنشر مارس 29, 2017 في 29/3/2017 at 09:03, سمير1404 said: شكر الله لك استاذ ابو خليل على كريم تواصلك دايم نستفيد منك المثال المرفق موضح بداخله المطلوب حاولت جاهداً ان اتوصل لحل بناء على المثال الذي تكرمت انت به ولم اوفق ذلك هناك اربع حقول حقل الرقم يعتمد على حقل التاريخ بحيث لو تم اضافة تاريخ جديد يبداء الرقم من 1 واذا نفس التاريخ يكمل الى 2 وهكذا وفي اليوم التالي او عند ادخال رقم جديد في حقل التاريخ يبداء العد من جديد ب 1 في حقل الكود هذه اضافة اتمنى التكرم بالمساعدة فيها بحيث يكون حقل الكود عبارة عن السنة الحالية والشهر واليوم ثم - الرقم db9790.rarFetching info... Expand استأذن من استاذنا ابو خليل على المداخلة اتفضل ما طلبت للعلم انا غيرت اسماء الحقول من 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 (معدل) في 29/3/2017 at 15: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.rarFetching info... Expand الأستاذ شفان لك كل الشكر و التقدير على المداخلة الكريمة المفيدة واجزل الشكر و الثناء موصول للاستاذ ابو خليل هل ممكن ان يكون ذلك حتى على التاريخ الهجري ايضا لانه عند تجربة التاريخ الهجري لم تكن النتيجة سليمة كما هو الحال في استخدام التاريخ الميلادي عجزت فعلا عن الوصول لحل مثل ذلك والبركة فيكم تجودون علينا من علمكم الكريم تم تعديل أبريل 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 في 21/7/2017 at 08:56, عذاب الزمان 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 & "/" وجربت ذلك ونحجت .... موقع رائع واساتذة كبار ولكم مني خالص التحية والاحترام . Expand
Shivan Rekany قام بنشر يوليو 22, 2017 قام بنشر يوليو 22, 2017 (معدل) في 21/7/2017 at 08:56, عذاب الزمان said: الكود بهذا الشكل يخرج لي نتيجة s17/00001 وهكذا صعودا ... هل يمكن اظهاره بالشكل s2017/00001 وهكذا صعودا ؟؟؟ علما اني غيرت في السطر الرابع prtyr الرقم 2 الى 4 وظهر لي ما اردت لكنه يبقى ثابتا بتسلسل 1 لجميع السجلات . Expand يا عذاب الزمان السلام عليكم ورحمة الله وبركاته ما تريد بالضبط هل تريد ان يكون تسلسل التاريخ هكذا 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 في 23/12/2018 at 15:30, ella3na said: انا شاكر لك جداا بس اريد معرفه كيف يتم العمل علي تغير الترقيم التلقائي شهريا و ليست سنويا Expand في 28/3/2017 at 03:59, ابوخليل said: غير في هذا السطر فقط : prtyr = Right(DatePart("yyyy", Date), 2) ليصبح بعد التعديل هكذا : prtyr = DatePart("d", Date) Expand اعتقد انه يمكن ايضا ان يتم التغيير شهريا جرب تغيير السطر في الاقتباس اعلاه الى prtyr = DatePart("m", Date) 1
ella3na قام بنشر أغسطس 3, 2019 قام بنشر أغسطس 3, 2019 في 24/7/2014 at 13: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 ترقيم تلقائي جديد كل سنة.rarFetching info... Expand هل يمكن ان يكون الترقيم التلقائي يبقي كل شهر يعني كل شهر يبداء الترقيم من الاول
ابوآمنة قام بنشر أغسطس 3, 2019 قام بنشر أغسطس 3, 2019 في 19/8/2016 at 03: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 كما يمكن وضع السطر السابق كقيمة افتراضية للعنصر وبدون كود بالتوفيق Expand جرب كود رمهان وهكذا الشهر (Month ) ID = "S" & Replace(Nz(DMax("id", "tbl1", "id like 's" & Right(Month(Date), 2) & "*'"), "s" & Right(Month(Date), 2) & "00000"), "s", "") + 1 2
الردود الموصى بها