ابوخليل قام بنشر مايو 25, 2021 قام بنشر مايو 25, 2021 السلام عليكم احبتي في المرفق جدول يحتوي على حقل رقمي مكرر ، وقد سقطت بعض الارقام وايضا مرفق صورة بالارقام المفقودة الساقطة المطلوب ادراج هذه الارقام في مكانها وتعديل ما بعدها مثلا اول رقم مفقود هو 422 حيث ستجد في الجدول الرقم 421 ويليه الرقم 423 فالمطلوب هو تعديل الرقم 423 ليصبح 422 ثم الذي بعده هو 424 يتم تعديله ليصبح 423 ... وهكذا علما ان كثير من هذه الارقام مكررة لا يهم التكرار ستجد الرقم 424 مكرر اكثر من مرة فالمطلوب جميع الارقام 424 تصبح 423 وهكذا لجميع الارقام يمكن ان نعملها يدويا .. ولكن العمل اليدوي معرض للخطأ Copy.accdb 1
ابوخليل قام بنشر مايو 25, 2021 الكاتب قام بنشر مايو 25, 2021 ملحوظة : لا اريد ادراج الارقام المفقود في سجلات جديدة وانما اريد الاستبدال يعني : التصحيح
jjafferr قام بنشر مايو 25, 2021 قام بنشر مايو 25, 2021 وعليكم السلام 🙂 حيا الله اخوي ابوخليل 🙂 في الواقع انت تريد اول رقم فقط ، ومنه تقوم بتعديل باقي الارقام ، صح ؟ الاستعلام qry_Missing_Numbers يعطيك الارقام المفقودة ، هذه خطوة اولى 🙂 جعفر 1380.Missing_Copy (1).accdb.zip 1
SEMO.Pa3x قام بنشر مايو 25, 2021 قام بنشر مايو 25, 2021 3 ساعات مضت, jjafferr said: وعليكم السلام 🙂 حيا الله اخوي ابوخليل 🙂 في الواقع انت تريد او رقم فقط ، ومنه تقوم بتعديل باقي الارقام ، صح ؟ الاستعلام qry_Missing_Numbers يعطيك الارقام المفقودة ، هذه خطوة اولى 🙂 جعفر 1380.Missing_Copy (1).accdb.zip 31.52 kB · 5 downloads ربما حان الوقت لإستخدام العتاد الثقيل RecordSet 1
ابو جودي قام بنشر مايو 25, 2021 قام بنشر مايو 25, 2021 طيب هل ممكن نعمل لوب بشرط يبدأ اللوب من السجل الاول والشرط ان كان الرقم فى السجل التالى = الرقم فى السجل الحالى او ان كان الرقم فى السجل التالى اكبر من الرقم فى السجل الحالى +1 يستكمل اللوب والا ان كان الرقم فى السجل التالى اكبر من الرقم فى السجل الحالى +2 يتم يتوقف اللوب ويتم تحديث هذا الرقم برقم السجل السابق +1 ويبدأ اللوب من جديد
ابو جودي قام بنشر مايو 25, 2021 قام بنشر مايو 25, 2021 فى الوفت الراهن لا استطيع العمل على اكسس والتجربة انا كتبت فى البوست السابق الفكرة والان قمت بتحويل الفكرة الى اكواد ولكن لا اعرف هل هذا منطقى ام لا Dim RS As DAO.Recordset Dim crntRS As Integer Dim nextRS As Integer Set RS = CurrentDb.OpenRecordset("tblName") If Not RS.EOF Then RS.MoveFirst Do Until RS.EOF crntRS = RS![IDNo] RS.MoveNext nextRS = RS![IDNo] If nextRS > crntRS + 2 Then RS.MovePrevious RS.Edit RS![IDNo] = crntRS + 1 RS.Update RS.MoveFirst Else RS.MoveNext End If Loop MsgBox "Done!", vbInformation, "Completed" 1 1
أفضل إجابة husamwahab قام بنشر مايو 25, 2021 أفضل إجابة قام بنشر مايو 25, 2021 مشاركة مع اساتذي الاعزاء تفضل هذه المحاولة ارجو ان تكون موفقة Copy2.rar 2 2
ابوخليل قام بنشر مايو 25, 2021 الكاتب قام بنشر مايو 25, 2021 For i = 1 To k Rs.Edit If Rs!planNo < 566 Then Rs!planNo = Rs!planNo - 1 ElseIf Rs!planNo > 566 And Rs!planNo < 822 Then Rs!planNo = Rs!planNo - 2 ElseIf Rs!planNo > 822 And Rs!planNo < 877 Then Rs!planNo = Rs!planNo - 3 ElseIf Rs!planNo > 877 And Rs!planNo < 972 Then Rs!planNo = Rs!planNo - 4 ElseIf Rs!planNo > 972 And Rs!planNo < 1788 Then Rs!planNo = Rs!planNo - 5 ElseIf Rs!planNo > 1788 Then Rs!planNo = Rs!planNo - 6 End If Rs.Update Rs.MoveNext Next i تمام اخي حسام انت فهمت الفكرة والمهم فيها هو فرق الزيادة التصاعدية ، وهذا هو الحل النموذجي شكرا جزيلا لك
jjafferr قام بنشر مايو 25, 2021 قام بنشر مايو 25, 2021 السلام عليكم 🙂 واليك طريقتي ، فهي تعتمد على اول رقم مفقود ، وقد لا تكون الاسرع 🙂 Public Function ReArrange() Dim rst As DAO.Recordset Dim RC As Long Dim First_Missing As Long Dim Last_Record As Long Dim Previous_Record As Long Dim Update_to As Long Dim i As Long Dim mySQL As String Set rst = CurrentDb.OpenRecordset("Select [jint] From [qry_Missing_Numbers]") First_Missing = rst!jint Set rst = CurrentDb.OpenRecordset("Select [planNo] From [tblKotah] Where [planNo]>=" & First_Missing & " Order By [planNo]") rst.MoveLast: Last_Record = rst!planNo rst.MoveFirst: RC = rst.RecordCount 'lets get to work DoCmd.SetWarnings False Update_to = First_Missing - 1 Do Until rst.EOF If Previous_Record = rst!planNo Then 'Update_to = Update_to Else Update_to = Update_to + 1 mySQL = "UPDATE tblKotah SET planNo =" & Update_to & " WHERE planNo = " & rst!planNo DoCmd.RunSQL mySQL End If If Previous_Record = rst!planNo Then 'GoTo Move_Next Else Previous_Record = rst!planNo End If rst.MoveNext Loop DoCmd.SetWarnings True rst.Close: Set rst = Nothing MsgBox "Done" End Function . وبعد اتمام العمل ، تستطيع استعمال الاستعلام qry_Missing_Numbers للتأكد ان جميع السجلات مسلسلة 🙂 جعفر 1380.Missing_Copy (1).accdb.zip 1
jjafferr قام بنشر مايو 25, 2021 قام بنشر مايو 25, 2021 منذ ساعه, husamwahab said: تفضل هذه المحاولة ارجو ان تكون موفقة تحليل جميل للارقام 🙂 جعفر
jjafferr قام بنشر مايو 26, 2021 قام بنشر مايو 26, 2021 8 ساعات مضت, ابوخليل said: شكرا لكم احبتي على جهدكم ووقتكم الثمين الذي بذلتوه .. أسأل الله الكريم ان يجزيكم عنا خير الجزاء حياك الله اخوي ابوخليل 🙂 ولو اني ما فهمت الشرح ، ولكن انت ادرى ببياناتك 🙂 جعفر
husamwahab قام بنشر مايو 26, 2021 قام بنشر مايو 26, 2021 بالخدمة استاذابوخليل 11 hours ago, jjafferr said: تحليل جميل للارقام 🙂 تسلم استاذي العزيز جعفر وهذا بعض ماعندكم
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.