Eng.Qassim قام بنشر يوليو 4, 2021 قام بنشر يوليو 4, 2021 السلام عليكم ورحمة الله وبركاته في موضوع سابق لاستاذنا الكريم ابو خليل في موضوع (اهلاك الاصول الثابتة)... تساؤلي هو لماذا استخدام جملة rs1.Movelast وجملة rs1.MoveFirst... بالحقيقة افهم معناها بالعربي لكن لم افهم معناها البرمجي ..اي لماذا نطلب منه الذهاب لاخر السجل وبعدها الذهاب لاول السجل ..هذا اولا ثانيا لماذا استخدما جملة DoCmd.RunSQL "DELETE TBL2.* FROM TBL2.. اي مالذي نستفيده من جملة الحذف .. مع اعتزازي وتقديري للجميع
jjafferr قام بنشر يوليو 4, 2021 قام بنشر يوليو 4, 2021 وعليكم السلام 🙂 19 ساعات مضت, Eng.Qassim said: جملة rs1.Movelast وجملة rs1.MoveFirst... بالحقيقة افهم معناها بالعربي لكن لم افهم معناها البرمجي اسمح لي اشرح لك الموضوع بطريقة سهلة : اذا فتحت ملف اكسل ، وبه عدة سجلات ، ونفترض انه تم حفظ المؤشر على اول سجل ، او تفتح جدول في الاكسس : 1. اذا اردت ان تعرف عدد السجلات ، فتضطر الى سحب "شريط التمرير" العمودي (Vertical Scroll bar) الى الاسفل ، الى آخر سجل ، وبهذه الطريقة تعرف كم عدد السجلات ، بالنسبة لعملية Recordset ، فتكتب rst.MoveLast لذهاب المؤشر الى آخر سجل ، وطبعا لما السجلات تكون كثيرة ، فالوصول الى آخر سجل يأخذ بعض الوقت ، 2. بعد ان عرفت عدد السجلات ، ولتبدأ تقرأ السجلات ، تضطر الى سحب "شريط التمرير" الى الاعلى الى اول سجل ، بالنسبة لعملية Recordset ، فتكتب rst.MoveFirst لذهاب المؤشر الى اول سجل ، 3. اذا بدأت البحث يدويا عن معلومة معينه ، فإنك تقرأ السجل ، ثم تنقل للسجل الذي اسفل منه ، بالنسبة لعملية Recordset ، فتكتب rst.MoveNext ، 4. ولما توصل للنهاية ، واردت البحث عن شيء آخر ، فتضطر الى سحب "شريط التمرير" الى اعلى الى اول سجل مرة اخرى ، بالنسبة لعملية Recordset ، فتكتب rst.MoveFirst لذهاب المؤشر الى اول سجل. يعني هكذا: dim rst as dao.recordset dim RC as long dim i as long set rst = currentdb.openrecordset ("Select * From tbl2") rst.moveLast rst.moveFirst RC= rst.recordcount for i = 1 to RC ... ... rst.moveNext next i rst.close set rst= nothing في حالات ، انت لا تريد ان تعرف عدد السجلات ، وانما تريد ان تبدأ تقرأ السجلات سجل سجل الى نهاية السجلات/الملف EOF فيصبح الكود: dim rst as dao.recordset set rst = currentdb.openrecordset ("Select * From tbl2") rst.moveFirst do until rst.EOF ... ... rst.moveNext Loop rst.close set rst= nothing . مع العلم اننا لا نحتاج الى الذهاب الى اول سجل لما نفتح الملف ، ولكن اذا قرأنا الملف وبقينا على آخر سجل ، فالكود لن ينتقل تلقائيا الى اول سجل لقراءة معلومات اخرى ، خصوصا اذا كان هذا الكود في وحدة نمطية ، ويتم استدعائها من استعلام لمجموعة سجلات ، فيجب ان نجعل الكود ينتقل لأول سجل في كل مرة يتم استدعاء الكود 🙂 جملة الحذف هي لحذف بيانات الجدول 🙂 جعفر 3
Eng.Qassim قام بنشر يوليو 4, 2021 الكاتب قام بنشر يوليو 4, 2021 شكرا لك استاذ جعفر المحترم ...اي اننا لتنفيذ حسابات معينة على قاعدة البيانات فيجب ان يقوم الامر بقراءة السجلات من اخر سجل الى اول سجل ..الان فهمتها استاذي العزيز ..لكن مالم افهمه هو لماذا يأمر بعدها في جملة السكوال بحذف السجلات ..وانا اقصد هنا كود استاذنا العزيز ابو خليل
jjafferr قام بنشر يوليو 4, 2021 قام بنشر يوليو 4, 2021 4 دقائق مضت, Eng.Qassim said: .لكن مالم افهمه هو لماذا يأمر بعدها في جملة السكوال بحذف السجلات ..وانا اقصد هنا كود استاذنا العزيز ابو خليل يجب ان تضع هذا السؤال في ذلك الموضوع ، حتى يقوم اخوي العود ابوخليل للرد عليه 🙂 جعفر
Eng.Qassim قام بنشر يوليو 5, 2021 الكاتب قام بنشر يوليو 5, 2021 شكرا استاذ جعفر ..انا سألت الاستاذ ابو خليل وقال الافضل فتح موضوع جديد..جزاكم الله خيرا
أفضل إجابة ابوخليل قام بنشر يوليو 5, 2021 أفضل إجابة قام بنشر يوليو 5, 2021 شكرا لاخي جعفر للشرح والتوضيح بالنسبة لحذف بيانات الجدول في الموضوع هناك انه لدينا جدولين tbl1 و tbl2 الجدول1 يحتوي على بيانات المشروع والجدول2 هو الجدول الذي سوف تنسخ اليه نتيجة الإهلاك فلما ننقر على الزر لتنفيذ الكود تظهر النتيجة في جدول2 ، ولكن حين ننقر مرة اخرى يتم تكرار النسخ وهكذا ... الى مالا نهاية فالحل هو عند كل نقرة على الزر يتم تفريغ الجدول2 2
Eng.Qassim قام بنشر يوليو 5, 2021 الكاتب قام بنشر يوليو 5, 2021 (معدل) السلام عليكم استاذ ابو خليل..فعلا اوقفت عمل جملة السكوال فتكررت النتائج مع كل ضغطة زر جزاك الله خيرا وزادك من فضله ..الشكر موصول للاستاذ جعفر تم تعديل يوليو 5, 2021 بواسطه Eng.Qassim
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.