20-05-18, 06:43 PM
الصفحات : 1 2
21-05-18, 12:30 AM
قم بعمل عمود بداخ الجدول مخصص لـ رقم العام يصبح ما يكتب بداخله (2018 , 2019 .... الخ) (اختيارى)
ومن ثم قم بعمل IF للتحقق من العام الحالى مع اخر قيمة مدخلة فى قاعدة البيانات لهذا العمود
ومن ثم مجلد IF اخر يقوم بالتحقق برقم ID لاخر اضافة بالجدول اذا كان يبداء بـ 2018 على ان الرقم (20180510007)
حيث ان الترتيب (20180510007) - (2018) يدل على العام - (05) الاشهر - (10007) وهو رقم التسلسل.
من ثم تقوم بانشاء رقم تسلسلى وليكن (20180100001) للمرة الاولى ومن ثم تجعل ادخال الـ ID تلقائي
حيث سيقوم قاعدة البيانات اعادة اخد اخر رقم وقيام اضافة +1 فى كل مرة عند الادخال
ما قمت بكتابته ما هو الا طريقة لفكرة تبنى عليها ما تريده
الطرق كثيرة ويمكن استخدام ما تشاء من افكار
تحياتى لك
تمنياتى لك التوفيق
21-05-18, 01:12 AM
21-05-18, 02:50 AM
السّلام عليكم و رحمة الله و بركاته
إضافة لما تفضّل به أخي الكريم الغالي " SENDBAD100 " ..بارك الله فيه و له و جزاه خير الجزاء
لمسة من لمسات أخي الكريم " حريف برمجة " .. بارك الله فيه .. تفي بنسبة 80 بالمئة بالغرض .. ما يهمك الكود الثاني للتسلسل السنوي فقط بقي أن تضيف الشهر
كود :
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If MsgBox("هل تريد إضافة سجل جديد ؟ ", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.OkCancel, "تنبيه") = MsgBoxResult.Cancel Then Exit Sub
Using Command As New OleDbCommand("SELECT MAX(IDD) FROM SCHOOL", Con)
If Con.State = ConnectionState.Closed Then Con.Open()
If Command.ExecuteScalar Is DBNull.Value Then
Call SetState("Add")
InfoBookmark = InfoManager.Position
InfoManager.AddNew()
TextBox1.Text = 1
Call Show_New_Year()
TextBox3.Focus()
Else
Call SetState("Add")
InfoBookmark = InfoManager.Position
InfoManager.AddNew()
TextBox1.Text = Command.ExecuteScalar().ToString() + 1
Call Show_New_Year()
TextBox3.Focus()
End If
Con.Close()
End Using
End Sub
Sub Show_New_Year()
If Date.Now.Month = 1 And Date.Now.Day = 1 Then
TextBox2.Text = Date.Now.Year & " - " & "0001"
Exit Sub
End If
Dim dp As New OleDbDataAdapter("SELECT TOP 1 NEW_YEAR FROM SCHOOL ORDER BY NEW_YEAR DESC", Con)
Dim dt As New DataTable
dp.Fill(dt)
If dt.Rows.Count = 0 Then
TextBox2.Text = Date.Now.Year & " - " & "0001"
Else
Dim idall As String = dt.Rows(0)(0).ToString
idall = Replace(idall, " - ", "-")
Dim strArr() As String = idall.Split("-")
TextBox2.Text = Date.Now.Year & " - " & Val(strArr(1) + 1).ToString("0000")
End If
End Subتحياتي
21-05-18, 03:00 AM
اشكركم كلكم بارك الله فيكم الله يستركم دنيا واخره
21-05-18, 03:21 AM
مرحبا ،،
اخي عبدالعزيز هل قمنا بمعالجة مشكلة لو تم اضافة سجل في سنة جديدة بعد تاريخ يوم 1 شهر 1 ؟
الكود يتحقق في يوم 1 من الشهر 1 ينفذ كود السنة الجديدة ،،
مثال :
لو لم يتم تشغيل التطبيق في يوم 1 من الشهر 1 مثلاً صادف سبت و أحد اجازة نهاية الاسبوع ،،
ويوم الاثنين صادف يوم 3 من الشهر 1 ،،،،، هنا مشكلة لن يتم تنفيذ كود السنة الجديدة ،، وسوف يعمل العداد على السنة القديمة .
اتمنى انك تراجع الموضوع هل قمنا بعلاج هذي الملاحظة او لا ،، وبالتوفيق للجميع .
اخي عبدالعزيز هل قمنا بمعالجة مشكلة لو تم اضافة سجل في سنة جديدة بعد تاريخ يوم 1 شهر 1 ؟
الكود يتحقق في يوم 1 من الشهر 1 ينفذ كود السنة الجديدة ،،
مثال :
لو لم يتم تشغيل التطبيق في يوم 1 من الشهر 1 مثلاً صادف سبت و أحد اجازة نهاية الاسبوع ،،
ويوم الاثنين صادف يوم 3 من الشهر 1 ،،،،، هنا مشكلة لن يتم تنفيذ كود السنة الجديدة ،، وسوف يعمل العداد على السنة القديمة .
اتمنى انك تراجع الموضوع هل قمنا بعلاج هذي الملاحظة او لا ،، وبالتوفيق للجميع .
21-05-18, 03:51 AM
السّلام عليكم و رحمة الله و بركاته
رمضان كريم أخي و أستاذي الحبيب الغالي " حريف برمجة "
كل سنة و أنت طيّب .. كل سنة و أنت إلى الله أقرب و عقبال رمضان لسنين عديدة إن شاء الله
أخي الكريم ..
بصراحة وجدت هذا الكود هنا بالمنتدى بموضوعين مختلفيْن .. و لم يتم معالجة الأمر الذي تحدثت عنه
عن نفسي .. أنا أستعمل هذا الكود بصفة دائمة بكل ملفاتي .. و هي طبعا غير رسمية و أعرف كيف أتصرف معها بمشكلتين أساسيتين ..
1 - لو ملأت قاعدة البيانات يدويا مثلا و بتسلسل رقمي عادي بدون هذا الكود ..
ثم خطر ببالي إضافة هذا الكود .. سينتج خطأ فادح و سيتم غلق البرنامج
طبعا ملفاتي غير رسمية ولو أردت إضافة هذا الكود للتسلسل السنوي .. أقوم بمسح بيانات الجدول كلها و أعتمد الكود من جديد
2 - الإشكالية التي تكلمت عنها الآن .. و قد تخيلت نتائجها
أتمنى فعلا معالجة الأمر ليتم إعتماد الكود الرائع بدون أي إلتباسات
و شكرا سلفا
تحياتي
21-05-18, 04:22 AM
مرحبا مره أخرى اخي عبدالعزيز ،، ولك بالمثل وأكثر حتى ترضى ،، وشكراً على دعواتك لي
بخصوص الخطأ لن يحدث إلا في الحالة التي تكلمت عنها انا فقط .
بمعنى حالتك لو قمت بادخال الترقيم يدوي عادي لن يحدث خطأ اذا التزمت بتنسيق الترقيم السنوي .
بالنسبة للحل سوف ازودك به عندما اهدأ شوي واكون مهيأ لاستنتاج الحل .
بخصوص الخطأ لن يحدث إلا في الحالة التي تكلمت عنها انا فقط .
بمعنى حالتك لو قمت بادخال الترقيم يدوي عادي لن يحدث خطأ اذا التزمت بتنسيق الترقيم السنوي .
بالنسبة للحل سوف ازودك به عندما اهدأ شوي واكون مهيأ لاستنتاج الحل .
21-05-18, 04:25 AM
ربّنا يهدّيء سرّك أخي الكريم إن شاء الله
إلى ذلك الحين .. بارك الله فيك و لك و جزاك خير الجزاء
تحياتي
21-05-18, 03:19 PM
https://www.youtube.com/watch?v=6nt1zhmh...5lR3RgOTyQ
راجع هذا الدرس
راجع هذا الدرس
الصفحات : 1 2