تقييم الموضوع :
  • 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 والاخ الوليد

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


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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اريد طباعة الباركود المحدد فقط مع الكمية new_programer 5 430 09-01-24, 08:40 PM
آخر رد: new_programer
  اريد مساعدة في العملية الحسابية melad2002 3 406 29-12-23, 09:10 PM
آخر رد: melad2002
  [كود] اريد كود إرسال البيانات من الفيجوال بيسك إلىPDF issamsaidd 10 5,829 25-12-23, 06:30 PM
آخر رد: الحزين اليماني
  [VB.NET] اريد تعديل في الكود عند طباعة DGV abu_hisham7 1 431 03-12-23, 02:40 AM
آخر رد: abu_hisham7
  احتاج كود اعادة الترقيم في السنة الجديدة ranosh 3 456 27-11-23, 01:25 AM
آخر رد: justforit
  [سؤال] اريد تغيير اسم حقل ضمن جدول بقاعدة بيانات اكسس mh66 1 358 08-11-23, 08:16 AM
آخر رد: justforit
  كيف اجعل البرنامج في بداية الشهر ينفذ حدث معين بالاصح اريد البرنامج في تاريخ واحد من Adel27213 3 484 05-11-23, 01:45 AM
آخر رد: justforit
Star [كود] اريد تزويد 45 دقيقة على DateTimePicker1 كل ضغطة Button Ameenh 1 347 01-09-23, 07:13 AM
آخر رد: Asem2
Star [كود] اريد تزويد 45 دقيقة على DateTimePicker1 كل ضغطة Button Ameenh 0 279 01-09-23, 05:56 AM
آخر رد: Ameenh
  اريد اضافة متغيراخر داخل Listbox1 احتاج تعديل بسيط moh61 0 349 05-08-23, 02:29 PM
آخر رد: moh61

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم