السلام عليكم اخواني الافاضل
في المرفق التالي قمت بوضع زر امر احتاج الى تفعيله بحيث يقوم بحذف كافة الاختيارات في حقل الCHK بمجرد النقر عليه
بانتظاركم
ارفق مثالك بتنسيق 2003
وستجد الحل باذن الله
اخوك ------------- محمود المصري
(اللَّهُمَّ أَنْتَ رَبِّي لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ أَبوءُ لَكَ بِنِعْمتِكَ علَيَ وأَبُوءُ بذَنْبي فَاغْفِرْ لي فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ)
اذا كانت المشاركة مفيدة لك فلا تبخل علينا بالتقييم
تم تعديل هذه المشاركة بواسطة jjafferr في 19 يونيو 2013 في 09:28
اخواني الافاضل شكرا لكم ولكل من مر على موضوعي وقام بالرد عليه بارك الله بكم
الاخ sareem المرفق الذي قمت بالتعديل عليه يعمل بشكل جيد لكن لم افهم لماذا يقوم اولا بتحديد كافة المربعات ثم يقوم بحذفها؟؟؟؟ ما ارغب به هو ان يقوم بحذفها فقط.
و اتمنى ان تقوم بشرح الكود لافهم بالظبط طريقة عمله. وما معنى (rst)
,الاخjjaffer المرفق الذي قمت بالتعديل عليه يقوم فقط بحذف اختيارات الصفحة الحالية و المطلوب ان يقوم بحذف كافة تاشيرات حقل الchk من كافة الصفحات ..
و لكم جزيل الشكر
بانتظاركم
تفضلي :)
اخي جعفر هلي يمكن ارسال المرفق بتنسيق 2003. حتي استفيد منه
اكون شاكر ليك
تم تعديل هذه المشاركة بواسطة mahmoud_20 في 19 يونيو 2013 في 10:18
(اللَّهُمَّ أَنْتَ رَبِّي لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ أَبوءُ لَكَ بِنِعْمتِكَ علَيَ وأَبُوءُ بذَنْبي فَاغْفِرْ لي فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ)
اذا كانت المشاركة مفيدة لك فلا تبخل علينا بالتقييم
تفضل اخي محمود :)
الحل الاول يأخذ معلومات معلومات النموذج الفرعي فقط ، بينما الحل الثاني يأخذ معلومات الجدول بالكامل.
والفرق بين الحلين هو تغيير في سطر واحد (السطر المظلل بدل السطر الذي يليه):
Private Sub cmd_unCheck_This_id_Click()
On Error GoTo err_cmd_unCheck_This_id_Click
Dim rst As DAO.Recordset
'Set rst = Me.RecordsetClone
Set rst = CurrentDb.OpenRecordset("Select * From [حقل 2]")
rst.MoveLast: rst.MoveFirst
Do Until rst.EOF
rst.Edit
rst!CHK = 0
rst.Update
rst.MoveNext
Loop
rst.Close: Set rst = Nothing
Me.Requery
Exit Sub
err_cmd_unCheck_This_id_Click:
If Err.Number = 3021 Then
Resume Next
Else
MsgBox Err.Number & vbCrLf & Err.Description
End If
End Sub
أختي عبير الزهور:
الظاهر انا والاخ sareem استخدمنا نفس الطريقة في الحل ، فهذا تفسير rst :)
في الواقع يمكنك استخدام اي مسمى بحيث يربط مع Recordset ،
وهو عمل نسخة من بيانات الجدول في الذاكرة (او كما في الحل الاول ، عمل نسخة من بيانات النموذج الفرعي) ،
و Recordset له اوامر جدا قليلة في عمله ، ولكنه جدا سريع ومرن في إحداث التغييرات المطلوبة للجدول (مع ان التغييرات في الحل الاول تكون في النموذج ، لكنها في النهاية تُعكس في الجدول) :)
جعفر
تم تعديل هذه المشاركة بواسطة jjafferr في 19 يونيو 2013 في 12:18
تسلم الايادي
(اللَّهُمَّ أَنْتَ رَبِّي لا إِلَه إِلاَّ أَنْتَ خَلَقْتَني وأَنَا عَبْدُكَ وأَنَا على عهْدِكَ ووعْدِكَ ما اسْتَطَعْتُ أَعُوذُ بِكَ مِنْ شَرِّ ما صنَعْتُ أَبوءُ لَكَ بِنِعْمتِكَ علَيَ وأَبُوءُ بذَنْبي فَاغْفِرْ لي فَإِنَّهُ لا يغْفِرُ الذُّنُوبِ إِلاَّ أَنْتَ)
اذا كانت المشاركة مفيدة لك فلا تبخل علينا بالتقييم
اخي جعفر بارك الله بك وشكرا لمجهودك
هل تقصد انrecoredset هو جزء علي ان اقوم بتكوينه؟؟؟لانه بالحقيقية انا حاولت ان اقوم بتطبيق العمل الذي قمت به باضافة الكود على زر الامر لكنه اعترض على تسمسة rst
اعذرني اخي لكثرة الاسئلة لكني اود التعلم وتطبيق العمل على مشاريع اخرى
و اين اقوم باضافة هذا الكود حيث اني لم اعرف معنى Form_Current
وعذا مرة اخرى لكثرة الاسئلة
بارك الله بك
أختي
اسهل حل لسؤالك هو عمل استعﻻم تحديث، وصلى الله وبارك :)
بس السبب اللي خﻻني اقوم بالكود ، هو ﻷني ﻻ أريد ان اقوم بطلب المعلومات مرة اخرى من الجدول ( ساشرح هذه النقطة ﻻحقا ان شاء الله ) ، وطبعا حلي اﻻساسي كان لتغيير معلومات النموذج الفرعي فقط ، ثم ﻻحقا غيرت الحل ليكون للجدول كامﻻ.
جعفر
تحيه لك جعفر
+1
«الحياة قد تتعثر ولكنها لا تتوقف، والأمل قد يختفي ولكن لا يموت ابدًا، والفرص قد تضيع ولكنها لا تنتهي، ومهما ضاقت الدنيا ففرج الله قريب»
عامل الناس بطبعك لا بطباعهم مهما كانو ومهما تعددت تصرفاتهم التي تجرحك وتؤلمك في بعض الاحيان ولا تابه بما يطالبونه منك لان بعضهم لايستحقون
شكرا اخ جعفر جاري التجربة
السلام عليكم اخ جعفر 1000 شكرمساعدتك لقد قمت بعمل استعلام تحديث وسارت الامور على خير مايرام وتم التقييم
ولكن احببت ان اضيف الكوrecoredset الذي قمت حضرتك باضافته فظهرت رسالة خطا compilererrer كما في الصورة المرفقة ياريت توضح سبب الخطا للفائدة والتعلم
ولك جزيل الشكر والموفقية
عفوا اختي
هاي كود sareem :-)
جربي الكود اللي انا ارسلته وشوفي :-)
جعفر
عفوا اختي
هاي كود sareem :-)
جربي الكود اللي انا ارسلته وشوفي :-)
جعفر
اخ جعفر شكرا لتواصلك معي وقد عمل الكود معي 100% وتم التقييم
وجزاك الله عني الف خير وبارك الله بك
حياك الله :)
بارك الله في جهودك اخي محمود
كنت احاول وضع +1 لكن يقول وصلت للحد الاعلى للتقيم الايجابي لهذا اليوم
:)
غدا ان شاء الله لك نصيب كبير فيها
وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ
السﻻم عليكم
قلت سابقا بأني سأشرح:
>ﻻ أريد ان اقوم بطلب المعلومات مرة اخرى من الجدول
عندما اعمل اي برنامج، فإني انظر إلى أسوأ الإحتمالات، مما
يجعلني اعيد التفكير في التصميم لجعله اكثر كفاءة.
البيانات في قاعدة البيانات موجودة في الجداول، فاي طلب للبيانات، معناه طلب البيانات إما مباشرة من الجدول أو عن طريق استعﻻم او عن طريق النموذج مباشرة أو عن طريق الكود.
نأخذ مثال عن عدد المرات التي قد يتم طلب البيانات في النموذج:
1. عند فتح النموذج، سواء من الجدول او عن طريق اﻻستعﻻم او عن طريق الكود،
2. النموذج به خانة او خانات سرد، والتي تحصل على بياناتها باﻻستعﻻم،
3. إذا في خانات تحسب العدد DCount او المجموع DSum او تجلب بيان من جدول DLookup او إعادة طلب/ تحديث بيان عن طريق Requery،
4. اذا كان هناك نموذج فرعي.
5. .....
لهذا ، فإذا كان هذا البرنامج موجود على الشبكة وبه عدة مستخدمين، فيجب على المبرمج تقليل طلب البيانات من الجدول، و خصوصا اذا هذه البيانات متوفرة في النموذج الرئيسي أو الفرعي، أو عند استعماله خانة السرد، فعليه طلب جميع البيانات من الجدول مرة واحدة ثم توزيعها على الخانات أﻻخرى في النموذج، بدل ان يطلب كل معلومة على حدة.
ومن هذا المنطلق، فأي عملية حسابية أو عملية تغيير بيانات احاديه او لمجموعة، فاﻻفضل ان ﻻنطلب البيانات من الجدول مرة اخرى، إذا كان بإمكاننا عمل التعديل من البيانات المتوفرة في النموذج.
هذه العملية تتم في الكود بإستخدام Me.Recordset والتي تظهر نتائجها على النموذج مباشرة، او عن طريق Me.Recirdsetclone والتي هي نسخة من بيانات النموذج، وبعد التعديل عليها يجب إعادة طلب البيانات عن طريق Requery كما في المثال السابق :)
بينما ولتسهيل عمل اﻻخت عبير الزهور، اقترحت عمل استعﻻم تحديث، اي قراءة البيانات مرة اخرى من الجدول، وهذه الخطوة التي حاولت تجنبها عن طريق الكود :)
ولكن ولسبب سرعة الحاسبات وسرعة الشبكات هذه اﻻيام، فقراءة البيانات من الجداول تأخذ اجزاء من الثانيه لقراءتها، فﻻ يﻻحظ المستخدم سوء تصميم البرنامج، وذلك بسبب سرعة إدراج البيانات :)
جعفر
ممتاز معلومة قيمة شكرا لمجهودك
هذا الموضوع مغلق.