أبو حوده قام بنشر فبراير 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 استبدل في 24/2/2023 at 13:48, أبو حوده said: السجل فى الجدول الحركة مرتبط به عن طريق حقل رقم الفاتورة Fatora_id Expand استبدل HarakaID ب Fatora_id انا افترضتها من عندي 1
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 طيب حضرتك لو اسم الحقل المربوط به الجدولين فى جدول الفاتورة بيكون اسمة FatoraId وفى جدول الحركة بيكون اسمة Fatora_id بيكون الكود فية اختلاف كبير معلش هتعبك معايا لانى حاولت استبدالهم لكن معرفتش
Eng.Qassim قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 في 24/2/2023 at 14:03, أبو حوده said: بيكون الكود فية اختلاف كبير Expand لا اختلاف ولاحاجة.. السيت الاول بيكون 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).bmpFetching info... تم تعديل فبراير 24, 2023 بواسطه أبو حوده
ابوخليل قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 مشاركة مع الاستاذ قاسم اذا بين الجدولين علاقة تكامل مرجعي يكتفى بالحذف من الجدول الرئيس او قدم سطر على سطر بمعنى احذف جدول التفاصيل اولا 1
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 نعم استاذنا ومعلمنا ومشرفنا القدير @ابوخليل يوجد علاقة تكامل مرجعى بينهمNew Bitmap Image (4).bmp
Eng.Qassim قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 (معدل) في 24/2/2023 at 15:50, ابوخليل said: او قدم سطر على سطر Expand شكرا استاذي ابو خليل.. نعم قدم السطر الثاني على الاول اقصد هذه الجملة كلها 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).bmpFetching info...
سامي الحداد قام بنشر فبراير 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 قاعدة بيانات.accdbFetching info...
تمت الإجابة Eng.Qassim قام بنشر فبراير 24, 2023 تمت الإجابة قام بنشر فبراير 24, 2023 جرب هذا الملف fatora.rarFetching info... 1
ابوخليل قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 في 24/2/2023 at 15:50, ابوخليل said: مشاركة مع الاستاذ قاسم اذا بين الجدولين علاقة تكامل مرجعي يكتفى بالحذف من الجدول الرئيس او قدم سطر على سطر بمعنى احذف جدول التفاصيل اولا Expand نسيت ان اذكر يجب تفعيل خانة تتالي الحذف في العلاقة ، من اجل تكتفي بحذف الجدول الرئيس 2
Eng.Qassim قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 الخلل هنا...استبدل الى هذا Dim strInvoiceID As Long 2
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 ربنا يبارك فيكم اجمعين مش عارف اعطى افضل اجابة لاى مشاركة 😄 تم حلها عن طريق الوحدة مرة وعن طريق تعديل رأس الكود الى as long مرة ثانية ومنسيتش مشاركة استاذنا الفاضل @ابوخليل في 24/2/2023 at 16:57, ابوخليل said: نسيت ان اذكر يجب تفعيل خانة تتالي الحذف في العلاقة ، من اجل تكتفي بحذف الجدول الرئيس Expand ربنا يبارك فيكم ويجعلة فى ميزان حسناتكم امين يارب بحق هذه الايام المباركة بشكر حضراتكم جدا وكل عام وحضراتكم بخير
متقاعد قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 في 24/2/2023 at 16:32, Eng.Qassim said: فالمسح يبدأ من جدول الحركة وينتهي بجدول الفاتورة Expand طالما توجد علاقة وتكامل وتتالي يكتفى بالحدف من جدول الفاتورة فقط في 24/2/2023 at 16:57, ابوخليل said: نسيت ان اذكر يجب تفعيل خانة تتالي الحذف في العلاقة ، من اجل تكتفي بحذف الجدول الرئيس Expand هذا امر بديهي وبالتالي اتفق تماما مع رأي استاذنا الكبير ويمكن الاستغناء عن ثمانية اسطر في الوحدة النمطية 1
أبو حوده قام بنشر فبراير 24, 2023 الكاتب قام بنشر فبراير 24, 2023 في 24/2/2023 at 17:30, متقاعد said: ويمكن الاستغناء عن ثمانية اسطر في الوحدة النمطية Expand ممكن حضرتك ترفق الوحدة بعد الاستغناء عن الاسطر المشار اليها للافادة ؟؟؟؟
متقاعد قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 في 24/2/2023 at 17:45, أبو حوده said: ممكن حضرتك ترفق الوحدة بعد الاستغناء عن الاسطر المشار اليها للافادة ؟؟؟؟ Expand 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 في 24/2/2023 at 16:41, أبو حوده said: فى كلا الكودين بيظهر نفس الخطأ مش عارف المشكلة من عندى ولا لا انا بستخدم اوفيس 2013 Expand الرسالة بسبب حجم حقل رقم الفاتورة اكبر من سعة المتغير والحل كما اشار الاستاذ قاسم في 24/2/2023 at 17:00, Eng.Qassim said: Dim strInvoiceID As Long Expand 1
Eng.Qassim قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 في 24/2/2023 at 17:53, متقاعد said: وفي جميع الاحول لا افصل كتابة رقم الفاتورة في الكود وانما نستخدم حقل في النموذج لرقم الفاتورة المستثناه Expand كلامك صحيح استاذ خالد ..ولهذا ذكرتها سابقا بأنه يحتاج الى باراميتر لتمرير القيمة من خلال نص في النموذج ..هذا اذا عملها سبروتين ..وانا حسب ماتعلمت لا افضل استخدام الاكواد خلف النموذج وانما بموديول ونستدعيها متى شئنا في 24/2/2023 at 18:08, متقاعد said: لرسالة بسبب حجم حقل رقم الفاتورة اكبر من سعة المتغير Expand لاني اشتغلت على اساس ماذكره في اول مشاركة ..الرقم يتكون من 4 ارقام ولهذا جعلته integer 2
متقاعد قام بنشر فبراير 24, 2023 قام بنشر فبراير 24, 2023 في 24/2/2023 at 18:10, Eng.Qassim said: كلامك صحيح استاذ خالد ..ولهذا ذكرتها سابقا بأنه يحتاج الى باراميتر لتمرير القيمة من خلال نص في النموذج ..هذا اذا عملها سبروتين ..وانا حسب ماتعلمت لا افضل استخدام الاكواد خلف النموذج وانما بموديول ونستدعيها متى شئنا Expand وجهة نظر جديرة بالاحترام وفي العادة نستخدم الكود في موديول اذا كنا سنستخدمه في اكثر من مكان في البرنامج اما خلاف ذلك فاعتقد لاتوجد مشكله من استخدامه في النموذج خلف زر امر او حدث اخيرا اشير الى مشاركة سابقة لحجم المتغيرات الرقمية من باب التذكير فقط اقتباس Expand 2
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.