abofayez1 قام بنشر نوفمبر 28, 2023 مشاركة قام بنشر نوفمبر 28, 2023 ''Tables For idx = db.TableDefs.Count - 1 To 0 Step -1 strName = db.TableDefs(idx).Name If Left(strName, 4) <> "msys" Then db.TableDefs.Delete strName Else Debug.Print strName End If Next idx أساتذتنا الكرام السلام عليكم ....وبعد: هذا الكود جزء من دالة تقوم بحذف كل محتويات قاعدة البيانات ... وهذا الجزءالخاص بالجداول... لنفترض أن لدي جدولين : مثلا احدهما باسم 111 والثاني باسم 222 هل يمكن نعمل لهما استناء بحيث لا يتم حذفهما وكيف نعدل على الكود إن كان ذلك ممكنا ؟ إن أردتم إرفاق الدالة كاملة سأرفقها وهي موجودة وأخذتها من المنتدى. جزاكم الله خير رابط هذا التعليق شارك More sharing options...
عمر ضاحى قام بنشر نوفمبر 28, 2023 مشاركة قام بنشر نوفمبر 28, 2023 11 دقائق مضت, abofayez1 said: ''Tables For idx = db.TableDefs.Count - 1 To 0 Step -1 strName = db.TableDefs(idx).Name If Left(strName, 4) <> "msys" Then db.TableDefs.Delete strName Else Debug.Print strName End If Next idx أساتذتنا الكرام السلام عليكم ....وبعد: هذا الكود جزء من دالة تقوم بحذف كل محتويات قاعدة البيانات ... وهذا الجزءالخاص بالجداول... لنفترض أن لدي جدولين : مثلا احدهما باسم 111 والثاني باسم 222 هل يمكن نعمل لهما استناء بحيث لا يتم حذفهما وكيف نعدل على الكود إن كان ذلك ممكنا ؟ إن أردتم إرفاق الدالة كاملة سأرفقها وهي موجودة وأخذتها من المنتدى. جزاكم الله خير فى السطر هذا 11 دقائق مضت, abofayez1 said: If Left(strName, 4) <> "msys" Then ضيف الشرط الاخر الذى تريده مثل and ثم الشرط الغير مستثني لاني مش فاهم ايه هو الاثتثناء الذى تريده فده ال اقدر اقدمه لك رابط هذا التعليق شارك More sharing options...
Moosak قام بنشر نوفمبر 28, 2023 مشاركة قام بنشر نوفمبر 28, 2023 استخدم هذا الكود الذي يقوم بحذف بيانات جميع الجداول ما عدا الجداول التي تحددها : ضع هذا الكود في وحدة نمطية : Function DeleteDataFromTables(excludedTables() As Variant) As String Dim obj As AccessObject, dbs As Object Set dbs = Application.CurrentData For Each obj In dbs.AllTables If Left(obj.Name, 4) <> "MSys" And Not IsInArray(obj.Name, excludedTables) Then DoCmd.SetWarnings False DoCmd.RunSQL ("DELETE * FROM " & obj.Name) DoCmd.SetWarnings True End If Next obj DeleteDataFromTables = "تم حذف سجلات جميع الجداول" End Function Function IsInArray(value As Variant, arr As Variant) As Boolean Dim element As Variant On Error Resume Next IsInArray = False For Each element In arr If element = value Then IsInArray = True Exit Function End If Next element End Function ثم يمكنك استدعاء الكود واستخدامه بالطريقة التالية : Sub ExampleUsage() Dim excludedTables() As Variant excludedTables = Array("Table1", "Table2", "Table3") ' قم بتعيين أسماء الجداول التي ترغب في استثنائها هنا Dim result As String result = DeleteDataFromTables(excludedTables) MsgBox result End Sub 3 رابط هذا التعليق شارك More sharing options...
abofayez1 قام بنشر نوفمبر 28, 2023 الكاتب مشاركة قام بنشر نوفمبر 28, 2023 رائع .. الله يوفقك ويحفطك أستاذنا موسى ويبارك فيك رابط هذا التعليق شارك More sharing options...
abofayez1 قام بنشر نوفمبر 28, 2023 الكاتب مشاركة قام بنشر نوفمبر 28, 2023 4 ساعات مضت, عمر ضاحى said: فى السطر هذا ضيف الشرط الاخر الذى تريده مثل and ثم الشرط الغير مستثني لاني مش فاهم ايه هو الاثتثناء الذى تريده فده ال اقدر اقدمه لك المطلوب أن يقوم الكود بحذف كل الجداول ما عدا الجدول المسمى 11 أو 22 لا يتم حذفها هلا تكرمت بالتعديل على الكود لأن ما عندي خبرة كافية في التعديل 4 ساعات مضت, Moosak said: استخدم هذا الكود الذي يقوم بحذف بيانات جميع الجداول ما عدا الجداول التي تحددها : ضع هذا الكود في وحدة نمطية : Function DeleteDataFromTables(excludedTables() As Variant) As String Dim obj As AccessObject, dbs As Object Set dbs = Application.CurrentData For Each obj In dbs.AllTables If Left(obj.Name, 4) <> "MSys" And Not IsInArray(obj.Name, excludedTables) Then DoCmd.SetWarnings False DoCmd.RunSQL ("DELETE * FROM " & obj.Name) DoCmd.SetWarnings True End If Next obj DeleteDataFromTables = "تم حذف سجلات جميع الجداول" End Function Function IsInArray(value As Variant, arr As Variant) As Boolean Dim element As Variant On Error Resume Next IsInArray = False For Each element In arr If element = value Then IsInArray = True Exit Function End If Next element End Function ثم يمكنك استدعاء الكود واستخدامه بالطريقة التالية : Sub ExampleUsage() Dim excludedTables() As Variant excludedTables = Array("Table1", "Table2", "Table3") ' قم بتعيين أسماء الجداول التي ترغب في استثنائها هنا Dim result As String result = DeleteDataFromTables(excludedTables) MsgBox result End Sub أستاذننا الغالي الكود هذا يقوم بحذف السجلات وليس الجداول رابط هذا التعليق شارك More sharing options...
أفضل إجابة Foksh قام بنشر نوفمبر 28, 2023 أفضل إجابة مشاركة قام بنشر نوفمبر 28, 2023 (معدل) 36 دقائق مضت, abofayez1 said: أستاذننا الغالي الكود هذا يقوم بحذف السجلات وليس الجداول بعد إذن استاذنا ، هذه تجربة بسيطة أخي @abofayez1 جرب هذا المرفق ، وضعت لك حلين ؛ انتقِ أحدهما Delete Tbl.accdb تم تعديل نوفمبر 28, 2023 بواسطه Foksh 1 رابط هذا التعليق شارك More sharing options...
kkhalifa1960 قام بنشر نوفمبر 28, 2023 مشاركة قام بنشر نوفمبر 28, 2023 ممكن مداخلة !! وعند اختيار الجداول من ليست بكس . ؟ رابط هذا التعليق شارك More sharing options...
Foksh قام بنشر نوفمبر 28, 2023 مشاركة قام بنشر نوفمبر 28, 2023 1 ساعه مضت, kkhalifa1960 said: وعند اختيار الجداول من ليست بكس . ؟ هذه محاولتي Delete Tbl.accdb رابط هذا التعليق شارك More sharing options...
kkhalifa1960 قام بنشر نوفمبر 28, 2023 مشاركة قام بنشر نوفمبر 28, 2023 أقصدبعد تحديد عدة جداول . 1- حذف فقط مابداخل الجداول المحددة . 2- حذف الجداول المحددة. وشكراً . رابط هذا التعليق شارك More sharing options...
ابو البشر قام بنشر نوفمبر 28, 2023 مشاركة قام بنشر نوفمبر 28, 2023 42 دقائق مضت, kkhalifa1960 said: أقصدبعد تحديد عدة جداول . 1- حذف فقط مابداخل الجداول المحددة . 2- حذف الجداول المحددة. تفضل استاذي <><><><> في 5/12/2020 at 03:59, ابو جودي said: السلام عليكم ورحمة الله وبركاته هدية حصرية واما نقول حصري يبقا فى منتدى اوفيسنا وبس كان فى مرة دكتور اسمه دكتور محمد حلبي كان زعلان وكل ما حد يكلمه لا يرد عليه لحد ما فاض بيه وقال وهو 😡 ومن أجله ومن أجل عيونه أقدم تلك الهدية المتواضعة للتجربة اضف جداول مرتبطة واضف جداول منضمه ثم اختر منها ما تريد حذف البيانات منها ... ارجوا الانتباه الجداول المرتبطه سيتم حذف البيانات منها تحذيـــــــر 1- قبل الاستخدام يجب عمل نسخة احتياطيه من القاعدة بصراحة كنت انوى ادمجها قبل حذف البيانات فيتم ذلك تلقائيا بس تعبت مش قادر بصراحة ممكن فى التحديث الجديد ان شاء الله تدلل يا دكتور Reset Select Table.mdb 436 kB · 111 downloads رابط هذا التعليق شارك More sharing options...
abofayez1 قام بنشر نوفمبر 28, 2023 الكاتب مشاركة قام بنشر نوفمبر 28, 2023 4 ساعات مضت, Foksh said: بعد إذن استاذنا ، هذه تجربة بسيطة أخي @abofayez1 جرب هذا المرفق ، وضعت لك حلين ؛ انتقِ أحدهما Delete Tbl.accdb 904 kB · 7 downloads نعم هذا هو المطلوب ... الخيار الثاني بيض الله وجهك ورفع قدرك ----------------------------------------------------------- اليوم رديت عليك مباشرة ولكن الآن ما لقيت الرد . وفقك الله ياعزيزي 1 رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
من فضلك سجل دخول لتتمكن من التعليق
ستتمكن من اضافه تعليقات بعد التسجيل
سجل دخولك الان