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

استخدم الكود لجلب عدد السجلات الموجودة بداخل الجدول بقاعدة ابيانات اكسس
بحيث يظهر لي رقم السجل التالي في حالة اضافة سجل جديد 
ولكن المشكلة في حال تم حذف سجل او اثنين من السجلات سيتم البحث عن اكبر رقم موجود ويأتي به وليكن الرقم الاكبر 4 مثلا سيأتي بالرقم 5 مع العلم ان عدد السجلات 2 في حال تم حذف سجلين 
المطلوب التعديل على الكود بحيث يتم اعادة ترتيب او اضافة النواقص قبل الاكيبر 

الكود 

كود :
Dim dt as new DataTable
Dim da as new OleDbDataAdapter("Select Max(ID) From TblName " , Con)
da.Fill(dt)
if IsDBNull(dt(0)(0))=True then
MynewID =1
else 
MyNewID =dt(0)(0)+1
الرد
تم الشكر بواسطة: عبد العزيز البسكري , asemshahen5
#2
(19-10-20, 11:31 PM)aftfm كتب : السلام عليكم ورحمة الله وبركاته

استخدم الكود لجلب عدد السجلات الموجودة بداخل الجدول بقاعدة ابيانات اكسس
بحيث يظهر لي رقم السجل التالي في حالة اضافة سجل جديد 
ولكن المشكلة في حال تم حذف سجل او اثنين من السجلات سيتم البحث عن اكبر رقم موجود ويأتي به وليكن الرقم الاكبر 4 مثلا سيأتي بالرقم 5 مع العلم ان عدد السجلات 2 في حال تم حذف سجلين 
المطلوب التعديل على الكود بحيث يتم اعادة ترتيب او اضافة النواقص قبل الاكيبر 

الكود 

كود :
Dim dt as new DataTable
Dim da as new OleDbDataAdapter("Select Max(ID) From TblName " , Con)
da.Fill(dt)
if IsDBNull(dt(0)(0))=True then
MynewID =1
else 
MyNewID =dt(0)(0)+1
وعليكم السلام ورحمة الله وبركاته

الكود المستخدم ليس للجلب عدد السجلات وانما لجلب اكبر قيمه\

اما لمعرفة عدد السجلات فهو
كود :
Select Count
الرد
#3
السّلام عليكم و رحمة الله و بركاته
إضافة لما طرحه أخي الكريم عبدو بارك الله فيه و له
هذا هو الكود الذي من يوم ما عرفت المنتدى .. و انا لم اصادف سواه لإعادة ترقيم السجلات
السجلات بقاعدة البيانات مرقمة : 1 - 2 - 3 - 4 - 5
عند حذف السجل الثالث كمثال .. يصبح لدينا 4 سجلات في حين سيكون الترتيب كالتالي : 1 - 2 - 4 - 5
بهذا الكود سيتم ترتيب السجلات من جديد ليكون الشكل : 1 - 2 - 3 - 4
لكن ما يعيبه أو ربما يعيبني أنا و لم أعرف كيف أرمّم القضيّة
هذا الكود :
سيحذف حقل المفتاح الرئيسي و يقوم بإنشائه من جديد
أنا عامل حقل الترقيم التسلسلي من نوع رقمي .. سيتم حذفه نهائيا و يتم إنشاؤه من جديد من نوع ترقيم تلقائي و هذا ما دوخني
ثانيا .. سيتم إنشاء حقل الترقيم التلقائي بآخر السجلات و يستحسن أن يتم الإنشاء بالأول
و إليك الخط .. أخي الكريم
كود :
   Private Sub Button13_Click(sender As Object, e As EventArgs) Handles Button13.Click
       If DT_CANDIDATE.Rows.Count = 0 Then
           MsgBox("الجدول فارغ من السجلات يتطلب وجود سجل واحد على الاقل", 16 + 524288, "تنبيه")
           Exit Sub
       End If
       If MsgBox("  هل تريد استعادة ترقيم السجلات  " & " ؟ ", MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRight + MsgBoxStyle.OkCancel, "استعادة ترقيم السجلات") = MsgBoxResult.Cancel Then Exit Sub
       Try
           Application.DoEvents()
           Dim cmd As New OleDb.OleDbCommand("", Conne_2019)
           Conne_2019.Open()
           'ID كود حذف المفتاح من حقل الترقيم التلقائي الي اسمه  
           cmd.CommandText = "ALTER TABLE TBL_CANDIDATE DROP CONSTRAINT PrimaryKey"
           cmd.ExecuteNonQuery()
           'ID كود حذف حقل الترقيم التلقائي الي اسمه  
           cmd.CommandText = "ALTER TABLE TBL_CANDIDATE DROP COLUMN CANDIDATE_Id"
           cmd.ExecuteNonQuery()
           'مع وضع مفتاح له ID كود انشاء حقل الترقيم التلقائي الي اسمه  
           cmd.CommandText = "ALTER TABLE TBL_CANDIDATE ADD COLUMN CANDIDATE_Id COUNTER CONSTRAINT [PrimaryKey] Primary key"
           cmd.ExecuteNonQuery()
           'تحديث قاعدة البيانات
           DT_CANDIDATE.Clear()
           Conne_2019.Close()
           Dim Da As New OleDbDataAdapter("SELECT * From TBL_CANDIDATE", Conne_2019) '
           If Conne_2019.State = 1 Then Conne_2019.Close()
           Conne_2019.Open()
           Da.Fill(DT_CANDIDATE)
           MsgBox("تم بنجاح استعادة تسلسل السجلات", 64 + 524288, "نجاح")
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
       End Try
   End Sub

تحياتي
الرد
تم الشكر بواسطة: aftfm , aftfm , abdouu , asemshahen5 , tryold , ابراهيم ايبو , abdou
#4
الف شكر اخي العزيز
عبد العزيز

لكن لدي حقل ID ليس ترقيم تلقائي
هو من نوع رقم

هل سيعمل الكود معه بالشكل الصحيح
الرد
تم الشكر بواسطة: asemshahen5
#5
(20-10-20, 04:29 PM)aftfm كتب : الف شكر اخي العزيز
عبد العزيز

لكن لدي حقل ID  ليس ترقيم تلقائي
هو من نوع  رقم

هل سيعمل الكود معه بالشكل الصحيح

السلام عليكم و رحمة الله و بركاته
فقط إقرأ ما كتبته لك أخي الكريم .. و ستجد الإجابة إن شاء الله
تحياتي
الرد
تم الشكر بواسطة: asemshahen5 , aftfm , ابراهيم ايبو , abdou , abdou


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اريد خذف كل السجلات من قاعدة البيانات العواجي 1 134 20-04-21, 05:35 AM
آخر رد: messry
  [سؤال] تصميم كشف حساب مفصل لبرنامج محاسبة ابو انس 0 136 08-04-21, 11:52 PM
آخر رد: ابو انس
  حساب الفرق بين وقتين من خلال الداتا قريد aftfm 6 447 20-02-21, 04:50 PM
آخر رد: أبو عبدالله الحلواني
  [كود] كود حساب وزنك المثالي جوهرة المدينة 3 282 13-02-21, 11:00 PM
آخر رد: جوهرة المدينة
  [سؤال] حساب العمليات الحسابية المكتوبة في التيكست بوكس tarek 10 10,034 11-02-21, 05:24 PM
آخر رد: popritch
  [VB.NET] حساب النسبة المئوية dubai.eig 1 224 05-02-21, 10:59 AM
آخر رد: ابراهيم ايبو
  مشكله فى التنقل بين السجلات من خلال الداتاجريد فيو سلام و محبه 0 343 29-01-21, 11:15 PM
آخر رد: سلام و محبه
  مساعده فى حساب عدد السجلات سلام و محبه 1 425 24-01-21, 01:21 AM
آخر رد: mr_hso
  ممكن المساعدة فى كود حساب الوقت new_programer 2 443 07-10-20, 06:49 PM
آخر رد: new_programer
  [VB.NET] عمل اتاش و تحديث قاعدة البيانات بعد التعديل على الحقول دون ضياع السجلات برمجيا larbihamri 4 547 06-10-20, 03:33 PM
آخر رد: larbihamri

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


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