تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ترتيب ارقام السجلات بالتسلسل
#1
السلام عليكم

عملت برنامج بقاعدة بيانات اكسس وتم تعريف id بأن مفتاح رئيسي

لكن عند عمل البرنامج وجدت عدم تسلسل ارقام السجلات
السجلات المدخلة 100 وارقام التسلسل وصلت الى 150

ما الحل ؟؟
الرد }}}
تم الشكر بواسطة:
#2
يرجي التوضيح حتي يمكن المساعده
الرد }}}
تم الشكر بواسطة:
#3
نــــــــعم . ... يحدث هذا لأنك تقوم بحذف بعض السجلات وبما أن الحقل ترقيم تلقائي لا يتراجع في الترقيم .

الحل :
حـذف الحقل وأعادة أنشــــــــاءه من جديد واعادة الترقيم المتسلسل .

أليـــــــــــك الكود :
PHP كود :
Try
            
'''''' Abu Ehab
            Application
.DoEvents()

            If 
Cn.State ConnectionState.Open Then Cn.Close()
            
Dim ReNomCmd As New OleDb.OleDbCommand

            Cn
.Open()
            
'--------------------------------------------------------------

            With ReNomCmd
                .Connection = Cn
                .CommandText = "ALTER TABLE TB DROP COLUMN ID "
                .ExecuteNonQuery()

                .CommandText = "ALTER TABLE TB ADD COLUMN ID COUNTER "
                .ExecuteNonQuery()

                .CommandText = "ALTER TABLE TB ALTER COLUMN ID Long"
                .ExecuteNonQuery()
            End With

            '
------------------------------------------------------------------
            
Cn.Close()

            
MsgBox("Okey>>>Done")

            
Form1_Load(NothingNothing)

        Catch 
ex As Exception
            MsgBox
(Err.DescriptionErr.Number)
        
End Try 
وفــــــــــقك الله .
Abu Ehab : Microsoft Partner  & Systems Developer
 Youtube   Facebook    Twitter   
الرد }}}
تم الشكر بواسطة:
#4
اهلا بكم

انا معطل خاصية حذف السجلات لكن عند الاضافه احيانا اتفاجئ بعدم تسلسل رقم السجل الجديد عند الاضافة

هل فيه كود لاعادة ترقيم السجلات مثلا
الرد }}}
تم الشكر بواسطة:
#5
أخي أبو إيهاب
الكود اللي وضعته عندما يحذف الـ ID من بداية الجداول ، وعند إضافته من جديد هل سيضيفه أعلى الجدول في مكانه السابق أم سيضعه أسفل الجدول
:confused:
(وَقُل رَّبِّ زِدْنِي عِلْمًا)

الرد }}}
تم الشكر بواسطة:
#6
هذه الطريقة يأخى الفاضل
Not Recommended
فقد تتسبب فى تخريب العلاقات بين الجداول
الرد }}}
تم الشكر بواسطة:
#7
السلام عليكم و رحمة الله
أرى أنك تعمل ضغط و اصلاح لفاعدة البيانات بعد كل عملية حذف للسجلات
الرد }}}
تم الشكر بواسطة:
#8
انا عملت ضغط واصلاح تلقائي عند الخروج من البرنامج
الرد }}}
تم الشكر بواسطة:
#9

استخدم الاجراء التالي واستغني عن حقل الترقيم التقائي في قاعدة البيانات واجعلة حقل رقم فقط
لان الاجراء التالي يقوم بحساب اكبر قيمة داخل الجدول ويقوم بزيادتها +1


PHP كود :
private Function FindMaxDataTableValue(ByRef dt As DataTable) As Integer
    Dim currentValue 
As IntegermaxValue As Integer
    Dim dv 
As DataView dt.DefaultView
    
For As Integer 0 To dt.Columns.Count 1
        dv
.Sort dt.Columns(c).ColumnName " DESC"
        
currentValue CInt(dv(0).Item(c))
        If 
currentValue maxValue Then maxValue currentValue
    Next
    
Return maxValue
End 
Function 
الرد }}}
تم الشكر بواسطة:
#10
وهذا كود LNQ


PHP كود :
Dim query From p In db.Products _
            Group p By p
.CategoryID Into g Group _
            Select CategoryID
MaxPrice g.Max(Function(pp.UnitPrice
الرد }}}
تم الشكر بواسطة:



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


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