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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  ممكن المساعدة فى كود حساب الوقت new_programer 2 220 07-10-20, 06:49 PM
آخر رد: new_programer
  [VB.NET] عمل اتاش و تحديث قاعدة البيانات بعد التعديل على الحقول دون ضياع السجلات برمجيا larbihamri 4 319 06-10-20, 03:33 PM
آخر رد: larbihamri
  التعديل على الكود للتخلص من مشكلة البطىء حيث عدد السجلات كبير momani33 0 250 09-09-20, 01:33 PM
آخر رد: momani33
Sad كود حذف السجلات المختاره عن طريق (التشيك بوكس ) اسف تم تعديل المطلوب عمور2016 8 723 19-08-20, 10:44 PM
آخر رد: عمور2016
  حساب ناتج عمود بشرط alshandodi 5 508 24-07-20, 07:51 PM
آخر رد: asemshahen5
  [كود] مشكلة بكود حساب المخزون و متوسط التكلفة ahmedramzyaish 8 689 17-06-20, 04:29 PM
آخر رد: asemshahen5
  مساعده في حساب النسبة المئوية alshandodi 1 488 06-06-20, 09:28 AM
آخر رد: سامي محمد
  حساب فرق الوقت فقط بالساعة والدقائق بين تاريخين mostafa nada 2 558 04-05-20, 12:10 AM
آخر رد: mostafa nada
  كشف حساب زبون بالكريستال ريبورت Mahir 4 628 01-05-20, 03:47 AM
آخر رد: Mahir
  حساب قيمة عموديين DOX.1 1 330 22-04-20, 05:02 PM
آخر رد: aljzazy

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


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