تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] اريد الحقل يبدا برقم تسلسلي حسب السنة الهجرية
#1
Sad 
سلام عليكم

لدي جدول اريد عند ادخال البيانات الـ ID رقم تلقائي بحيث يكون على حسب السنة الهجرية

يعني في هذه السنة يبدأ بالعد التلقائي وعند انتهاء السنة وبداية السنة الهجرية الثانية

يبدأ بالعد من جديد من رقم 1 وهكذا ماهي الطريقة لعمل ذلك 
الرد }}}
تم الشكر بواسطة:
#2
الترقيم التلقائي لا يمكن ان تقوم بتعديله لانه تلقائي
تحتاج الى اضافة حقل اخر
وتستخرج قيمة اخر سجل وتضيف عليه قيمه جديده
الرد }}}
تم الشكر بواسطة: الوليد ☺ , العزابي
#3
أشكرك أخي الكريم على ردك

فعلاً الرقم التلقائي لايقبل وحله كما قلت بإظافة حقل أخر وهذا معروف

الي اقصدة
الرقم التلقائي ID
الحقل الأخر ID_NO
ماهي الطريقة التي تجعل البرنامج يتعرف على السنة الجديدة ثمن يعيد الترقيم التلقائي في الحقل الي اظفناه كمثال ID_NO

بصراحة أنا بدأت بكتابة كود بحيث أنه إذا كانت السنة YYYY/01/01 يظهر رسالة معينة


بصراحة أحس أنها بسيطة لكن مخي قفل وأكره الرياضيات والفيزياء ههههههه
الرد }}}
تم الشكر بواسطة: الوليد ☺
#4
السلام عليكم

- أعتقد مايجب عليك لتحصل على ماتريد هو أن تضيف حقل في الجدول لرقم السنه ، وقبل ادخال البيانات قم بعمل استعلام لجلب اكبر قيمة في حقل ID_NO لكن بشرط ان تكون قيمة حقل رقم السنه تساوي رقم السنه الحاليه وبكذا راح يكون عندك لكل سنه تسلسل خاص بها ، مثال لاستعلام جلب اكبر قيمة مع الشرط :

كود :
Select Max(ID_NO) From Table1 Where YearNumber= & Year(Date)

- تحياتي .
الرد }}}
تم الشكر بواسطة: الوليد ☺ , العزابي
#5

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

شوف أخوي العزابي

هذا مثال مجمع من عدة مشاريع لأحد الأخوة الله يذكره بالخير علشان نوصل للهدف من الفكرة

مشكلة قاعدة البيانات ما تتعامل مع التاريخ الهجري مباشرة حتى لو ظهر لك تاريخ هجري فهذا نتيجة التحويل
ولو استعلمت عن السنة في جملة الاستعلام مثل "(()SELECT YEAR(NOW" راح يعطيك السنة الميلادية

سوي مشروع جديد وحط فيه داتاجريد وزر ومربع نص
وبالنسبة لقاعدة البيانات
سوي جدول باسم table1 وفيه ثلاث حقول واحد نصي Name واثنين أرقام عادية اسمهم HijriYear والثاني HijriID

وقول باسم الله وشغل المشروع، وإن شاء يكون ما تريد،
PHP كود :
Imports System.Data.OleDb

Public Class Form1

    Dim conn 
As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = Database1.accdb;")

    Private 
Sub Form1_Load(sender As System.ObjectAs System.EventArgsHandles MyBase.Load
        
' قراءة قاعدة البيانات '
        
ReadDatabase()

    
End Sub


    
' قراءة قاعدة البيانات '
    
Private Sub ReadDatabase()
        
Using da As New OleDbDataAdapter("SELECT * FROM [table1] "conn)
            
Using myDatatable As New DataTable
                da
.Fill(myDatatable)
                
Me.DataGridView1.DataSource myDatatable
            End Using
        End Using
    End Sub


    
Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click
        
Try
            
' الحقل HijriYear هو فقط لمعرفة الرقم التسلسلي المفترض وضعه '
            ' الحقل HijriID هو من نوع رقم عادي وليس ترقيم تلقائي لأن الترقيم يتم برمجياً '

            ' معرفة السنة الهجرية الحالية حسب التقويم الهجري نظام الويندوز '
            
Dim nowHijriYear As Integer = New System.Globalization.HijriCalendar().GetYear(Now)
            
' معرفة السنة الهجرية الحالية حسب تقويم أم القرى في نظام الويندوز '
            ''
Dim nowHijriYear As Integer = New System.Globalization.UmAlQuraCalendar().GetYear(Now)

            
' معرفة أكبر رقم مسجل للسنة الحالية '
            
Dim maxHijriID As Integer GetMaxHijriID(nowHijriYear)

            If 
maxHijriID <> -1 Then
                conn
.Open()

                
'========== إضافة البيانات =========='
                
Using comm As New OleDbCommand(" INSERT INTO [table1] ([Name], [HijriYear], [HijriID] ) VALUES (@Name, @HijriYear, @HijriID) "conn)
                    
comm.Parameters.AddWithValue("@Name"Me.TextBox1.Text)
                    
comm.Parameters.AddWithValue("@HijriYear"nowHijriYear)
                    
comm.Parameters.AddWithValue("@HijriID"maxHijriID 1' نضيف واحد '
                    
comm.ExecuteNonQuery()
                
End Using

                conn
.Close()

                
' قراءة قاعدة البيانات '
                
ReadDatabase()
            
End If

        Catch 
ex As Exception
            MsgBox
(ex.Message)
        
End Try
    
End Sub


    
'========== دالة لمعرفة أكبر رقم مسجل للسنة المحددة =========='
    
Private Function GetMaxHijriID(hijriYear As Integer) As Integer
        
Try

            
conn.Open()

            
'========== معرفة أكبر رقم مسجل للسنة الحالية =========='
            ' متغير من نوع أوبجكت تحسباً لرجوع قيمة فارغة '
            
Dim maxHijriID As Object
            Using comm 
As New OleDbCommand(" SELECT MAX([HijriID]) FROM [table1] WHERE [HijriYear] = @HijriYear "conn)
                
comm.Parameters.AddWithValue("@HijriYear"hijriYear)
                
maxHijriID comm.ExecuteScalar
            End Using
            
' في حالة القيمة الفارغة يتم تحويلها إلى رقم صفر '
            
maxHijriID IIf(maxHijriID.GetType Is GetType(System.DBNull), 0maxHijriID)

            
conn.Close()

            Return 
maxHijriID

        
Catch ex As Exception
            MsgBox
(ex.Message)
            Return -
1
        End 
Try
    
End Function


End Class 


أضفت السطر التالي لتقويم أم القرى، قم بتفعيله مع تعطيل السابق إن أردت
PHP كود :
' معرفة السنة الهجرية الحالية حسب تقويم أم القرى في نظام الويندوز '
''
Dim nowHijriYear As Integer = New System.Globalization.UmAlQuraCalendar().GetYear(Now

الرد }}}
تم الشكر بواسطة: العزابي
#6
الاخ VB_SMITTEN والاخ الوليد

لاحرمكم الله الأجر .. جاري المحاولة بالطرق الي ذكرتموها وإنشالله تضبط معاي


تحياتي
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] اريد طباعة تقرير ريبورت فيو مباشرة فور عرض التقرير mh66 1 565 22-03-25, 09:59 AM
آخر رد: mh66
  اريد كود لو سمحتم خالد كامل1 10 1,230 15-02-25, 02:15 PM
آخر رد: خالد كامل1
  اريد كود معين اثابكم الله خالد كامل1 1 461 04-02-25, 09:28 PM
آخر رد: aliday03
  اريد كود يحذف جميع سجلات جدول بقاعدة بيانات اكسس دفعه واحده khalidalwdi 2 645 18-11-24, 01:02 AM
آخر رد: rdxdz
  اريد جلب عدد محدد من السجلات من قاعدة بيانات اكسس الى الداتا قراد فيو يوجد مثال khalidalwdi 2 673 12-11-24, 12:19 PM
آخر رد: khalidalwdi
  [نقاش] اريد مسااعدة انا مبتدئة ف بحر غارق?? ..N 1 352 29-09-24, 11:16 PM
آخر رد: justforit
Exclamation [VB.NET] اريد كود لتصدير البيانات من DataGridView الى ملف Excel zazasami 1 502 04-08-24, 09:15 PM
آخر رد: mrfenix93
  اريد إحصاء مجموع التأخير والغياب للموظف أبووسم 2 452 31-07-24, 02:16 PM
آخر رد: أبووسم
  اريد طباعة الباركود من غير ظهور نافذة المعاينة new_programer 1 535 23-05-24, 03:55 AM
آخر رد: new_programer
  اريد اضافة حفظ PDF فى مسار على الهارد- مثال الاستاذ عبدالله الدوسري new_programer 1 523 28-04-24, 04:52 PM
آخر رد: new_programer

التنقل السريع :


يقوم بقرائة الموضوع: