النهر العطشان قام بنشر يونيو 12, 2018 قام بنشر يونيو 12, 2018 السلام عليكم احتاج الى اعادة ترقيم الحقل ID في الجدول Data من رقم معين استطيع كل مره تغييره فمثلا اعادة ترقيم الحقل يبدا من 55 و 56 و57 و 58 اي عندما احدد اول عدد يقوم على التوالي بترقيم تصاعديا وشكرا Access.rar 1
النهر العطشان قام بنشر يونيو 14, 2018 الكاتب قام بنشر يونيو 14, 2018 (معدل) السلام عليكم شكرا على الاجابة ولكن هذا ليس طلبي . طلب هو انه لدي قاعدة بيانات وتحتوي على جدول Data لديه علاقات مرتبطه مع جدول اخر وفي هذا الجدول يوجد حقل ID فيه تسلسلات المطلوب هو اعادة ترقيم التسلسلات القديمة من رقم معين احدده انا فمثلا اريد اعادة التسلسلات القديمه ويبدا من رقم 100 ثم 101 ثم 102 وهكذا وكما بالصوره وشكرا تم تعديل يونيو 14, 2018 بواسطه النهر العطشان
محمد التميمي قام بنشر يونيو 15, 2018 قام بنشر يونيو 15, 2018 وعليكم السلام اخي استخدم دالة Dmax بعد التنفيذ اكتب اي رقم تشاء بدل رقم 1 في الجدول المرفق در من دروس الاستاذ عبد العاطي حمدان في اليويوب dmax.rar
alaa aboul-ela قام بنشر يونيو 15, 2018 قام بنشر يونيو 15, 2018 او دالة D Last او انظر الملف المرفق وبتغيير رقم ال id يتم العد من جديد باضافة رقم تغيير الرقم يدويا .rar
النهر العطشان قام بنشر يونيو 16, 2018 الكاتب قام بنشر يونيو 16, 2018 (معدل) السلام عليكم وكل عام وانتم بخير اعاده الله علينا وعليكم وعلى الامة العربية والاسلامية بالخير والمحبة الأساتذه الكرام الاستاذ محمد التميمي والاستاذ alaa aboul-ela شكرا على الاجابة . لكن طلبي ليس اضافة رقم جديد ولكن اعادة الترقيمات القديمة من جديد وتبداء من رقم يتم تحديده وكما في الصور المرفقة Access.rar تم تعديل يونيو 16, 2018 بواسطه النهر العطشان
jjafferr قام بنشر يونيو 20, 2018 قام بنشر يونيو 20, 2018 وعليكم السلام رجاء اخذ نسخة اضافية من بياناتك قبل العمل الطريقة التي عملتها هي: تغيير الارقام الى ارقام كبيرة غير موجوده في القائمة ، ثم تغيير الارقام الى التسلسل المطلوب تفضل . والكود خلف الزر: Private Sub cmd_Do_The_Changes_Click() 'make Reference to Microsoft DAO x.xx Object Library Dim rst As DAO.Recordset Dim biggest_Number As Long Dim i As Integer Dim j As Integer Dim RC As Integer Dim Multiply_by As String biggest_Number = Len(DMax("[ID]", "Data")) 'we have to do this in two steps: '1 based on the Biggest Number, lets multiply it by 10, so that No number id duplicated '2 then Seq based on the required Seq '1 Set rst = CurrentDb.OpenRecordset("Select * From Data") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC 'what number to multiply with Multiply_by = 1 For j = 1 To biggest_Number - Len(rst!ID) Multiply_by = Multiply_by & "0" Next j 'change the existing numbers to BIGGER NUMBERS rst.edit rst!ID = rst!ID * Val(Multiply_by) rst.Update rst.MoveNext Next i '2 rst.MoveFirst For i = 0 To RC - 1 'change the BIGGER NUMBERS to the new Seq rst.edit rst!ID = Me.int_Start + i rst.Update rst.MoveNext Next i rst.Close: Set rst = Nothing MsgBox "Done" End Sub . وبسبب وجود علاقة بين الجدولين Data و tell عن طريق الحقل ID ، فلما الكود يغير قيمة الحقل ID في الجدول Data ، فتلقائيا نجد ان القيمة قد تغيرت في الحقل ID في الجدول tell . جعفر 927.Access.accdb.zip 2 1
النهر العطشان قام بنشر يونيو 22, 2018 الكاتب قام بنشر يونيو 22, 2018 السلام عليكم استاذ jjafferr لقد تم تجربة الكود المرسل من قبلكم وكانت النتيجه بالمستوى المطلوب لقاعدة البيانات المرسله من قبلي . ولكن عندما اصبحت السجلات اكثر من 160 سجل لم يعمل الكود ولا اعرف سبب ذلك . وارفق نسخه من قاعدة البيانات الجديدة . وشكرا 927.Access2.rar
jjafferr قام بنشر يونيو 23, 2018 قام بنشر يونيو 23, 2018 وعليكم السلام تفضل ، جرب هذا التعديل: Private Sub cmd_Do_The_Changes_Click() 'make Reference to Microsoft DAO x.xx Object Library Dim rst As DAO.Recordset Dim biggest_Number As Long Dim i As Integer Dim j As Integer Dim RC As Integer Dim Multiply_by As String biggest_Number = Len(DMax("[ID]", "Data")) 'what number to multiply with Multiply_by = 1 For i = 1 To biggest_Number Multiply_by = Multiply_by & "0" Next i 'we have to do this in two steps: '1 based on the Biggest Number, lets multiply it by 10, so that No number id duplicated '2 then Seq based on the required Seq '1 Set rst = CurrentDb.OpenRecordset("Select * From Data") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC 'change the existing numbers to BIGGER NUMBERS rst.edit rst!ID = rst!ID * Val(Multiply_by) rst.Update rst.MoveNext Next i '2 rst.MoveFirst For i = 0 To RC - 1 'change the BIGGER NUMBERS to the new Seq rst.edit rst!ID = Me.int_Start + i rst.Update rst.MoveNext Next i rst.Close: Set rst = Nothing MsgBox "Done" End Sub جعفر 927.1.Access2.accdb.zip 1 2
النهر العطشان قام بنشر يونيو 23, 2018 الكاتب قام بنشر يونيو 23, 2018 (معدل) السلام عليكم تمت التجربة استاذ jjafferr ونجح الكود الجديد في اعادة الترقيم من رقم احدده انا وحتى عند زيادة عدد السجلات ومشكور عليه جعله الله في ميزان حسناتك . وسؤالي بخصوص هذا الكود هل تم استدعاء مكتبه لتنفيذ هذا الكود لانه يعمل بهذه القاعده فقط وعند نقل الكود الى قاعدة بيانات اخرى لايعمل مع مراعاة نفس اسماء الحقول والجداول ويضهر هذا الخطاء بالصوره . تم تعديل يونيو 23, 2018 بواسطه النهر العطشان خطا في سحب الصوره
jjafferr قام بنشر يونيو 23, 2018 قام بنشر يونيو 23, 2018 وعليكم السلام السطر الاخضر اللي فوقه يخبرك عن المكتبة اللي يجب اختيارها لعمل الكود جعفر 2
النهر العطشان قام بنشر يونيو 24, 2018 الكاتب قام بنشر يونيو 24, 2018 السلام عليكم شكرا استاذي الفاضل jjafferr لسعة صدرك . الكود الحالي يعطيني تسلسل تصاعدي من رقم احدده انا ويبدا من اقل تسلسل ويزداد واحد واحد وهذا كان ولازال هو المطلوب . لكن لو كان هنالك حقل للاسماء في الجدول Data واردنا ان نعمل ترتيب الاسماء حسب الحروف الابجدية ومن ثم نبداء بالترقيم على شرط ان يبداء التسلسل من اول سجل تصاعديا . لان عند الترقيم في هذه الحالة ضهرت لي هذه المشكله وكما بالصوره . الخطاء كان من عندي لم اذكر ذلك بطلبي من الاول . وارفق نسخه من قاعدة البيانات بعد اضافة حقل الاسماء وصورة للمشكله التي حدثت لي . وشكرا 927.Access4.rar
jjafferr قام بنشر يونيو 24, 2018 قام بنشر يونيو 24, 2018 وعليكم السلام بدل هذا السطر Set rst = CurrentDb.OpenRecordset("Select * From Data") استعمل Set rst = CurrentDb.OpenRecordset("Select * From Data Order By [Name]") . جعفر 1
ABOUOMER قام بنشر يونيو 24, 2018 قام بنشر يونيو 24, 2018 السلام عليكم لاحظت ان الترقيم ارقام فقط ولكن في بعض الأوقات نحتاج ترقيم مختلط يعن ارقام وحروف وحروف خاصة فهل يمكن تطبيق هذا على هذا المثال شكرا
jjafferr قام بنشر يونيو 25, 2018 قام بنشر يونيو 25, 2018 وعليكم السلام اخي ابو عمر تقريبا يمكننا عمل اي شيء بالاكسس ، ولكن ارجو ان تقتح موضوع جديد بهذه الخصوصية ، وترفق لنا مثال مفصل ومرفق بوضح المطلوب جعفر
محمد التميمي قام بنشر يونيو 25, 2018 قام بنشر يونيو 25, 2018 (معدل) السلام عليكم بارك الله بك اخي واستاذي القدير جعفر.. سؤال / هل يمكن انشاء كد مماثل يعمل على اعادة ترتيب الترقيم التلقائي من جديد بعد حذف سجلات من الجدول سواء يبدأ من رقم معين نختاره نحن او من رقم (1) وامكانية اعادة الترقيم الاصلي للجدول بعد حذف سجلات معينة . تم تعديل يونيو 25, 2018 بواسطه محمد التميمي
jjafferr قام بنشر يونيو 25, 2018 قام بنشر يونيو 25, 2018 وعليكم السلام اخي محمد حقل الترقيم التلقائي هو للبرنامج ، وفهرسة السجلات ، وتوليد ارقام فريدة للسجلات ، ولكنه ليس للمبرمج. المبرمج يجب ان يعمل له الحقول التي يحتاج لها لبرمجته ، ولا مانع من الاستفادة من حقل الرقم التلقائي ، لذلك ، ليس مهما اي رقم هو رقمك التلقائي ، ومن اهميته ، فلا يسمح لك الاكسس تغييره ، واذا فقدت رقم تسلسل واستعملت الرقم الذي بعده ، فلا يمكنك استرجاع اي من الارقام المفقودة والتي وسط الارقام الاخرى ، مثلا ارقامك 1،3،4،6 ، فلا يمكنك استرجاع الارقام 2،5 ، اما اذا (خلينا نتابع المثال المرفق) ، الرقم الجديد الذي نحصل عليه هو 31 ، . 1. آخر رقم تم استعماله هو 23 ، بينما فقدنا جميع الارقام بعد الـ 23 ، فإذا اردنا البرنامج ان يبدأ الرقم التالي بالرقم 24 ، فعلينا عمل ضغط واصلاح لقاعدة البيانات ، 2. بينما اذا اردنا ان نبدأ الرقم التلقائي برقم غير 24 ، بالرقم 25 مثلا ، فنستطيع ان نستعمل الكود التالي: . والكود الذي يقوم بذلك هو: Private Sub cmd_Do_Click() If Len(Me.int_Start_2 & "") = 0 Then MsgBox "What is the initial number?" Me.int_Start_2.SetFocus Exit Sub End If biggest_Number = Nz(DMax("[Auto_ID]", "Data"), 0) If Me.int_Start_2 - 1 <= biggest_Number Then MsgBox "the biggest_Number in the table is :" & biggest_Number & vbCrLf & _ "Your initial number SHOULD be bigger than this number" Me.int_Start_2.SetFocus Exit Sub End If 'from http://www.fmsinc.com/microsoftaccess/AutoNumber%20Field/Creating.asp 'add the initial number mySQL = "INSERT INTO Data ( auto_ID )" mySQL = mySQL & " SELECT " & Me.int_Start_2 - 1 & " AS Expr1;" CurrentDb.Execute (mySQL) 'Delete the dummy number mySQL = "DELETE * FROM Data WHERE auto_ID=" & Me.int_Start_2 - 1 CurrentDb.Execute (mySQL) MsgBox "Now the NExt Auto_ID will be " & Me.int_Start_2 End Sub . ونحصل على النتيجة التالي: . جعفر 927.2.Access4.accdb.zip 1
النهر العطشان قام بنشر يوليو 9, 2018 الكاتب قام بنشر يوليو 9, 2018 السلام عليكم استاذ jjafferr المحترم لقد حدثت لي مشكلة جديده بالترقيم وهي عندما يكون احد ارقام التسلسل اكثر من خمس او ست مراتب فلا يتم الترقيم وتظهر لي رسالة خطاء ويتم ترقيم بعض التسلسلات عشوائيا وكما في الصور . شاكرا لكم تعاونكم . 927.Access5.rar
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.