أبو حوده قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 (معدل) السلام عليكم ورحمة الله وبركاتة كل عام وحضراتكم بخير واللهم بلغنا رمضان لا فاقدين ولا مفقودين امين يارب العالمين عندى قاعدة بيانات وللاسف مش هعرف ارفقها لحضراتكم لاحتوائها على بيانات كثيرة جدا ولكن هوصل لحضراتكم المطلوب ان شاء الله زر بنموذج به كود حذف كافة السجلات بجدول الفواتير وجدول الحركات والكود هو Dim SQ1 As String Dim SQ2 As String Sq1 = "DELETE tblHaraka.* FROM tblHaraka;" SQ2 = "DELETE tblFatora.* FROM tblFatora;" If MsgBox("هل تريد حذف كافة السجلات", vbYesNo + vbCritical + vbDefaultButton1 + 1572864, Compan) = vbYes Then DoCmd.SetWarnings (warningsoff) DoCmd.RunSQL (Sq1) DoCmd.RunSQL (SQ2) DoCmd.SetWarnings (warningson) Me.Requery MsgBox "تم حذف كافة السجلات" Else MsgBox "تم الغاء العملية الحذف" End If المطلوب هو لو فيه سجل الجدول الاول ( فاتورة ) ورقمة مثلا 1001 وله سجل فرعى مرتبط به بالجدول ( الحركة ) عاوز استثنى السجل دة من الحذف بالكود اللى ذكرت بالاعلى فهل من طريقة لفعل ذلك تم تعديل فبراير 24, 2023 بواسطه أبو حوده
Eng.Qassim قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 وعليكم السلام.. استخدم الكود التالي لاستثناء 1001..ربما تحتاج الى باراميتر في الكود لتمرير قيمة الرقم المستثنى من خلال النموذج Sub DeleteRecordsExceptOne() Dim db As DAO.Database Dim rsFatora As DAO.Recordset Dim rsHaraka As DAO.Recordset Dim strInvoiceID As Integer strInvoiceID = "1001" Set db = CurrentDb Set rsFatora = db.OpenRecordset("SELECT * FROM tblFatora WHERE HarakaID <> " & strInvoiceID & "") Do While Not rsFatora.EOF rsFatora.Delete rsFatora.MoveNext Loop Set rsHaraka = db.OpenRecordset("SELECT * FROM tblHaraka WHERE HarakaID <> " & strInvoiceID & "") Do While Not rsHaraka.EOF rsHaraka.Delete rsHaraka.MoveNext Loop rsFatora.Close rsHaraka.Close db.Close Set rsFatora = Nothing Set rsHaraka = Nothing Set db = Nothing End Sub 1
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 اشكر حضرتك جدل لسرعة تفاعلك مع موضوعى ولكن احب اوضح جزئية لحضرتك الارتباط مابين الجدولين عنطريق حقل رقم الفاتورة وليس id بمعنى ان كل جدول فيه حقل ترقيم تلقائى منفصل عن الاخر والجدول الرئيسى الفاتورة... السجل فى الجدول الحركة مرتبط به عن طريق حقل رقم الفاتورة Fatora_id
Eng.Qassim قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 استبدل 3 دقائق مضت, أبو حوده said: السجل فى الجدول الحركة مرتبط به عن طريق حقل رقم الفاتورة Fatora_id استبدل HarakaID ب Fatora_id انا افترضتها من عندي 1
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 طيب حضرتك لو اسم الحقل المربوط به الجدولين فى جدول الفاتورة بيكون اسمة FatoraId وفى جدول الحركة بيكون اسمة Fatora_id بيكون الكود فية اختلاف كبير معلش هتعبك معايا لانى حاولت استبدالهم لكن معرفتش
Eng.Qassim قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 منذ ساعه, أبو حوده said: بيكون الكود فية اختلاف كبير لا اختلاف ولاحاجة.. السيت الاول بيكون Set rsFatora = db.OpenRecordset("SELECT * FROM tblFatora WHERE FatoraId <> " & strInvoiceID & "") السيت الثاني.. Set rsHaraka = db.OpenRecordset("SELECT * FROM tblHaraka WHERE Fatora_id <> " & strInvoiceID & "") 1
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 (معدل) عملتها بالفعل ويظهر هذا الخطأNew Bitmap Image (2).bmp New Bitmap Image (2).bmp تم تعديل فبراير 24, 2023 بواسطه أبو حوده
ابوخليل قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 مشاركة مع الاستاذ قاسم اذا بين الجدولين علاقة تكامل مرجعي يكتفى بالحذف من الجدول الرئيس او قدم سطر على سطر بمعنى احذف جدول التفاصيل اولا 1
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 نعم استاذنا ومعلمنا ومشرفنا القدير @ابوخليل يوجد علاقة تكامل مرجعى بينهمNew Bitmap Image (4).bmp
Eng.Qassim قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 (معدل) 33 دقائق مضت, ابوخليل said: او قدم سطر على سطر شكرا استاذي ابو خليل.. نعم قدم السطر الثاني على الاول اقصد هذه الجملة كلها Set rsHaraka = db.OpenRecordset("SELECT * FROM tblHaraka WHERE HarakaID <> " & strInvoiceID & "") Do While Not rsHaraka.EOF rsHaraka.Delete rsHaraka.MoveNext Loop تم تعديل فبراير 24, 2023 بواسطه Eng.Qassim 1
ابوخليل قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 اذا تكتفي بسطر الاستاذ قاسم هذا Set rsFatora = db.OpenRecordset("SELECT * FROM tblFatora WHERE FatoraId <> " & strInvoiceID & "") ليصبح الكود Sub DeleteRecordsExceptOne() Dim db As DAO.Database Dim rsFatora As DAO.Recordset Dim strInvoiceID As Integer strInvoiceID = "1001" Set db = CurrentDb Set rsFatora = db.OpenRecordset("SELECT * FROM tblFatora WHERE FatoraId <> " & strInvoiceID & "") Do While Not rsFatora.EOF rsFatora.Delete rsFatora.MoveNext Loop rsFatora.Close db.Close Set rsFatora = Nothing Set db = Nothing End Sub وغير الرقم 1001 لما هو موجود عندك في الجدول الرئيس 1
Eng.Qassim قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 استاذي العزيز @ابوخليل..هو يريد مسح البيانات من الجدولين فالمسح يبدأ من جدول الحركة وينتهي بجدول الفاتورة 1
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 فى كلا الكودين بيظهر نفس الخطأ مش عارف المشكلة من عندى ولا لا انا بستخدم اوفيس 2013 New Bitmap Image (2).bmp
سامي الحداد قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 السلام عليكم بالاضافة لما تفضل بة اساتذتي الكرام جرب تغير هذه الاسطر . و وافنا بالنتيجة Dim strInvoiceID As String Set rsFatora = db.OpenRecordset("SELECT * FROM tblFatora WHERE FatoraId <> '" & strInvoiceID & "'") Set rsHaraka = db.OpenRecordset("SELECT * FROM tblHaraka WHERE Fatora_id <> '" & strInvoiceID & "'") بالتوفيق 1
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 انا اسف لارهاق الجميع معى لكن هذا مثال مصغر للمشكلة التى تواجهنى New Microsoft Access قاعدة بيانات.accdb
أفضل إجابة Eng.Qassim قام بنشر فبراير 24, 2023 أفضل إجابة قام بنشر فبراير 24, 2023 جرب هذا الملف fatora.rar 1
ابوخليل قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 منذ ساعه, ابوخليل said: مشاركة مع الاستاذ قاسم اذا بين الجدولين علاقة تكامل مرجعي يكتفى بالحذف من الجدول الرئيس او قدم سطر على سطر بمعنى احذف جدول التفاصيل اولا نسيت ان اذكر يجب تفعيل خانة تتالي الحذف في العلاقة ، من اجل تكتفي بحذف الجدول الرئيس 2
Eng.Qassim قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 الخلل هنا...استبدل الى هذا Dim strInvoiceID As Long 2
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 ربنا يبارك فيكم اجمعين مش عارف اعطى افضل اجابة لاى مشاركة 😄 تم حلها عن طريق الوحدة مرة وعن طريق تعديل رأس الكود الى as long مرة ثانية ومنسيتش مشاركة استاذنا الفاضل @ابوخليل 12 دقائق مضت, ابوخليل said: نسيت ان اذكر يجب تفعيل خانة تتالي الحذف في العلاقة ، من اجل تكتفي بحذف الجدول الرئيس ربنا يبارك فيكم ويجعلة فى ميزان حسناتكم امين يارب بحق هذه الايام المباركة بشكر حضراتكم جدا وكل عام وحضراتكم بخير
متقاعد قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 58 دقائق مضت, Eng.Qassim said: فالمسح يبدأ من جدول الحركة وينتهي بجدول الفاتورة طالما توجد علاقة وتكامل وتتالي يكتفى بالحدف من جدول الفاتورة فقط 33 دقائق مضت, ابوخليل said: نسيت ان اذكر يجب تفعيل خانة تتالي الحذف في العلاقة ، من اجل تكتفي بحذف الجدول الرئيس هذا امر بديهي وبالتالي اتفق تماما مع رأي استاذنا الكبير ويمكن الاستغناء عن ثمانية اسطر في الوحدة النمطية 1
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 13 دقائق مضت, متقاعد said: ويمكن الاستغناء عن ثمانية اسطر في الوحدة النمطية ممكن حضرتك ترفق الوحدة بعد الاستغناء عن الاسطر المشار اليها للافادة ؟؟؟؟
متقاعد قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 6 دقائق مضت, أبو حوده said: ممكن حضرتك ترفق الوحدة بعد الاستغناء عن الاسطر المشار اليها للافادة ؟؟؟؟ Sub DeleteRecordsExceptOne() Dim db As DAO.Database Dim rsFatora As DAO.Recordset Dim strInvoiceID As Integer strInvoiceID = 1001 Set db = CurrentDb Set rsFatora = db.OpenRecordset("SELECT * FROM tblFatora WHERE FatoraId <> " & strInvoiceID & "") Do While Not rsFatora.EOF rsFatora.Delete rsFatora.MoveNext Loop rsFatora.Close db.Close Set rsFatora = Nothing Set db = Nothing End Sub ايضا في السطر الرابع طالما نتعامل مع متغيير رقمي فلماذا علامات التنصيص وفي جميع الاحول لا افصل كتابة رقم الفاتورة في الكود وانما نستخدم حقل في النموذج لرقم الفاتورة المستثناه حيث يفترض بالمستخدم عدم الدخول للاكواد
متقاعد قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 منذ ساعه, أبو حوده said: فى كلا الكودين بيظهر نفس الخطأ مش عارف المشكلة من عندى ولا لا انا بستخدم اوفيس 2013 الرسالة بسبب حجم حقل رقم الفاتورة اكبر من سعة المتغير والحل كما اشار الاستاذ قاسم منذ ساعه, Eng.Qassim said: Dim strInvoiceID As Long 1
Eng.Qassim قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 13 دقائق مضت, متقاعد said: وفي جميع الاحول لا افصل كتابة رقم الفاتورة في الكود وانما نستخدم حقل في النموذج لرقم الفاتورة المستثناه كلامك صحيح استاذ خالد ..ولهذا ذكرتها سابقا بأنه يحتاج الى باراميتر لتمرير القيمة من خلال نص في النموذج ..هذا اذا عملها سبروتين ..وانا حسب ماتعلمت لا افضل استخدام الاكواد خلف النموذج وانما بموديول ونستدعيها متى شئنا 2 دقائق مضت, متقاعد said: لرسالة بسبب حجم حقل رقم الفاتورة اكبر من سعة المتغير لاني اشتغلت على اساس ماذكره في اول مشاركة ..الرقم يتكون من 4 ارقام ولهذا جعلته integer 2
متقاعد قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 8 دقائق مضت, Eng.Qassim said: كلامك صحيح استاذ خالد ..ولهذا ذكرتها سابقا بأنه يحتاج الى باراميتر لتمرير القيمة من خلال نص في النموذج ..هذا اذا عملها سبروتين ..وانا حسب ماتعلمت لا افضل استخدام الاكواد خلف النموذج وانما بموديول ونستدعيها متى شئنا وجهة نظر جديرة بالاحترام وفي العادة نستخدم الكود في موديول اذا كنا سنستخدمه في اكثر من مكان في البرنامج اما خلاف ذلك فاعتقد لاتوجد مشكله من استخدامه في النموذج خلف زر امر او حدث اخيرا اشير الى مشاركة سابقة لحجم المتغيرات الرقمية من باب التذكير فقط اقتباس 2
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.