نائل حازم قام بنشر يونيو 20 قام بنشر يونيو 20 السلام عليكم اخواني الاعزاء لدي FORMمأخوذ بياناته من جدول به عدد من السجلات وبالخصائص ON LOAD انشأت دالة IF بالكود على مربع نص داخل الFORM عند التطبيق يتم تطبيق الدالة على السجلات بشكل فردي عند التنقل والبحث فقط المطلوب كود لتطبيق الدالة على جميع السجلات عند فتح FORM جزاكم الله خير الجزاء ان وجدت الاجابة ...
AlwaZeeR قام بنشر يونيو 20 قام بنشر يونيو 20 وعليكم السلام ورحمة الله وبركاته Private Sub Form_Load() Me.Recordset.MoveFirst Do While Not Me.Recordset.EOF Call YourIfCondition(Me![YourTextBox]) Me.Recordset.MoveNext Loop Me.Recordset.MoveFirst End Sub Private Sub YourIfCondition(txtBox As TextBox) If txtBox.Value = "شرط جملة اف" Then MsgBox "قم بتطبيق شرط اف" End If End Sub ضع جملة الشرط الخاصة بك :IIF في sub ثم قم باستدعائها في حدث عند التحميل قم باستدعائها في حلقة تكرارية كما هو موضح في المثال 1
ابو جودي قام بنشر يونيو 20 قام بنشر يونيو 20 اثراء للموضوع و مشاركة مع أستاذي القدير و معلمي الجليل الأستاذ @AlwaZeeR قبل أن نخوض في خضم الكود وجب التنويه الى انه يمكن تحقيق ذلك بأحدي الطريقتين الطريقة الأولى تعتمد على DAO.Recordset الطريقة الثانية تعتمد على Form.Recordset - الطريقة التي تعتمد على DAO.Recordset تكون أكثر مرونة وقابلة للتوسع خاصة إذا كنت تحتاج للوصول إلى بيانات خارج نموذج معين أو تنفيذ عمليات أكثر تعقيدا - الطريقة التي تعتمد على Form.Recordset تكون أكثر مباشرة وسهلة الاستخدام عندما يكون الهدف هو التفاعل مع السجلات المعروضة في النموذج الحالي حتما طالما انه نريد التعامل مع جميع السجلات في احد الجداول من خلال عمل لوب عليها وقطعا طالما ان هناك شرط بناء على مربع نص اذا هذا الشرط سوف يكون مرتبط بأحد الحقول داخل الجدول ولذلك سوف نأخذ هذا في الاعتبار عند كتابة الكود - الطريقة الأولي : Private Sub Form_Load() ' تعريف متغيرات قاعدة البيانات Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSQL As String Dim yourVariable As String ' المتغير العام الذي يعتمد عليه الأمر ' تعيين المتغير العام yourVariable = YourTextBox ' تعيين قاعدة البيانات الحالية Set db = CurrentDb ' SQL الاستعلام الذي يجلب كل السجلات من الجدول strSQL = "SELECT * FROM YourTableName" ' فتح مجموعة السجلات Set rs = db.OpenRecordset(strSQL) ' التحقق من أن مجموعة السجلات ليست فارغة If Not rs.EOF Then rs.MoveFirst ' لوب على جميع السجلات Do While Not rs.EOF ' تنفيذ الأمر بناء على المتغير العام If rs!FieldName = yourVariable Then ' هنا تضع الأمر الذي تريده MsgBox "Record found with your variable value!" End If ' الانتقال للسجل التالي rs.MoveNext Loop End If ' إغلاق مجموعة السجلات rs.Close Set rs = Nothing Set db = Nothing End Sub - الطريقة الثانية : Private Sub Form_Load() Dim rs As DAO.Recordset Set rs = Me.Recordset.Clone rs.MoveFirst Do While Not rs.EOF If rs.Fields("YourFieldName").Value = "شرط جملة اف" Then MsgBox "قم بتطبيق شرط اف" End If rs.MoveNext Loop Set rs = Nothing End Sub وحتى لا يتم السؤال لاحقا عن اى الطريقتين افضل ! : الكود الأول (DAO) قد يكون أكثر كفاءة إذا كنت تحتاج إلى إجراء عمليات معقدة أو تحتاج إلى التعامل مع جداول ليست مرتبطة بالنموذج الكود الثاني (Form.Recordset) بسيط وسهل الفهم ومناسب للتفاعلات السريعة مع السجلات المعروضة في النموذج استخدام الطريقة الأولى إذا كنت تحتاج إلى مرونة أكبر أو تعمل مع بيانات ليست مرتبطة مباشرة بالنموذج استخدام الطريقة الثانية في حال كان الهدف هو التفاعل مع البيانات المعروضة في نموذج معين وكان الهدف واضح ومباشر اختيار الطريقة يعتمد على السياق واحتياجات التطبيق الخاص بك انت و كلا الطريقتين يمكن أن تكون سريعة وفعالة إذا تم تطبيقها بشكل صحيح هام وعاجل : تم كتابة التعليقات والتلميحات باللغة العربية للتبسيط و لدواعي الشرح فقط ولا أحبذ ذلك قطعا تجنبا لمشاكل اللغة العربية مع محرر الأكواد
نائل حازم قام بنشر يونيو 20 الكاتب قام بنشر يونيو 20 السادة الافاضل شاكرا جهودكم بالمساعدة لكني اود ان ابين بأن مربع النص عبارة عن كومبوبوكس ويحتوي على قائمة منسدلة ودالة IF مثبته على كل قيمة بالقائمة المنسدلة اي بما معنى اكثر من دالة IF وليست واحدة ارفق الملف لتوضيح الموضوع اكثر علما بأن الكود مكتوب عند ON CURRENT بالفورم شاكر تعاونكم وسعة صدركم بالردود والمساعدة 1.accdb
naellord88 قام بنشر يونيو 20 قام بنشر يونيو 20 7 ساعات مضت, ابو جودي said: اثراء للموضوع و مشاركة مع أستاذي القدير و معلمي الجليل الأستاذ @AlwaZeeR قبل أن نخوض في خضم الكود وجب التنويه الى انه يمكن تحقيق ذلك بأحدي الطريقتين الطريقة الأولى تعتمد على DAO.Recordset الطريقة الثانية تعتمد على Form.Recordset - الطريقة التي تعتمد على DAO.Recordset تكون أكثر مرونة وقابلة للتوسع خاصة إذا كنت تحتاج للوصول إلى بيانات خارج نموذج معين أو تنفيذ عمليات أكثر تعقيدا - الطريقة التي تعتمد على Form.Recordset تكون أكثر مباشرة وسهلة الاستخدام عندما يكون الهدف هو التفاعل مع السجلات المعروضة في النموذج الحالي حتما طالما انه نريد التعامل مع جميع السجلات في احد الجداول من خلال عمل لوب عليها وقطعا طالما ان هناك شرط بناء على مربع نص اذا هذا الشرط سوف يكون مرتبط بأحد الحقول داخل الجدول ولذلك سوف نأخذ هذا في الاعتبار عند كتابة الكود - الطريقة الأولي : Private Sub Form_Load() ' تعريف متغيرات قاعدة البيانات Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSQL As String Dim yourVariable As String ' المتغير العام الذي يعتمد عليه الأمر ' تعيين المتغير العام yourVariable = YourTextBox ' تعيين قاعدة البيانات الحالية Set db = CurrentDb ' SQL الاستعلام الذي يجلب كل السجلات من الجدول strSQL = "SELECT * FROM YourTableName" ' فتح مجموعة السجلات Set rs = db.OpenRecordset(strSQL) ' التحقق من أن مجموعة السجلات ليست فارغة If Not rs.EOF Then rs.MoveFirst ' لوب على جميع السجلات Do While Not rs.EOF ' تنفيذ الأمر بناء على المتغير العام If rs!FieldName = yourVariable Then ' هنا تضع الأمر الذي تريده MsgBox "Record found with your variable value!" End If ' الانتقال للسجل التالي rs.MoveNext Loop End If ' إغلاق مجموعة السجلات rs.Close Set rs = Nothing Set db = Nothing End Sub - الطريقة الثانية : Private Sub Form_Load() Dim rs As DAO.Recordset Set rs = Me.Recordset.Clone rs.MoveFirst Do While Not rs.EOF If rs.Fields("YourFieldName").Value = "شرط جملة اف" Then MsgBox "قم بتطبيق شرط اف" End If rs.MoveNext Loop Set rs = Nothing End Sub وحتى لا يتم السؤال لاحقا عن اى الطريقتين افضل ! : الكود الأول (DAO) قد يكون أكثر كفاءة إذا كنت تحتاج إلى إجراء عمليات معقدة أو تحتاج إلى التعامل مع جداول ليست مرتبطة بالنموذج الكود الثاني (Form.Recordset) بسيط وسهل الفهم ومناسب للتفاعلات السريعة مع السجلات المعروضة في النموذج استخدام الطريقة الأولى إذا كنت تحتاج إلى مرونة أكبر أو تعمل مع بيانات ليست مرتبطة مباشرة بالنموذج استخدام الطريقة الثانية في حال كان الهدف هو التفاعل مع البيانات المعروضة في نموذج معين وكان الهدف واضح ومباشر اختيار الطريقة يعتمد على السياق واحتياجات التطبيق الخاص بك انت و كلا الطريقتين يمكن أن تكون سريعة وفعالة إذا تم تطبيقها بشكل صحيح هام وعاجل : تم كتابة التعليقات والتلميحات باللغة العربية للتبسيط و لدواعي الشرح فقط ولا أحبذ ذلك قطعا تجنبا لمشاكل اللغة العربية مع محرر الأكواد استاذنا الفاضل شكري وامتناني لاهتمامكم ارفقت الملف مع التوضيح لاكمال جميلكم وحل الموضوع وفقكم الله وجعلها بميزان حسناتكم
naellord88 قام بنشر يونيو 20 قام بنشر يونيو 20 14 ساعات مضت, AlwaZeeR said: وعليكم السلام ورحمة الله وبركاته Private Sub Form_Load() Me.Recordset.MoveFirst Do While Not Me.Recordset.EOF Call YourIfCondition(Me![YourTextBox]) Me.Recordset.MoveNext Loop Me.Recordset.MoveFirst End Sub Private Sub YourIfCondition(txtBox As TextBox) If txtBox.Value = "شرط جملة اف" Then MsgBox "قم بتطبيق شرط اف" End If End Sub ضع جملة الشرط الخاصة بك :IIF في sub ثم قم باستدعائها في حدث عند التحميل قم باستدعائها في حلقة تكرارية كما هو موضح في المثال استاذنا الفاضل شكري وامتناني لاهتمامكم ارفقت الملف مع التوضيح لاكمال جميلكم وحل الموضوع وفقكم الله وجعلها بميزان حسناتكم
ابو جودي قام بنشر يونيو 21 قام بنشر يونيو 21 اولا : ياريت تتعب نفسك شوية وتشرح النتيجة اللى انت عاوز توصلها بناء على المرفق بصراحة لن اضيع وقتى مع من يبخل بوقته انا قمت بايقاف الاكواد اللى سببت لى مشاكل علشان احاول افهم واحلل الكود شوف اذا التعديل مناسب ملاحظة فى سؤالك الاول انت قلت فى حدث التحميل تريد تنفيذ شرط على كل السجلات وطبعا تم وضع الاجابة نظريا طبقا للسؤال التظرى وبعد وضع مرفقك تقول ان الحدث الحالى من خلاله يتحقق الشرط اذا اذاى نهمل لوب على كل السجلات طبقا لشرط يتغير تبعا الحدص الحالى للنموذج حذ بالط طل ده انا تاعب نفسى واحاول افهم وافهمك وانا اصلا مش فاهم لانك بخيل اذا التعديل مشى معاك احمد ربنا واذا ما لبى طلبك اشرح وانتظر العون من احد الاساتذة الافاضل الكرام 1.accdb
نائل حازم قام بنشر يونيو 21 الكاتب قام بنشر يونيو 21 في 21/6/2024 at 03:09, ابو جودي said: اولا : ياريت تتعب نفسك شوية وتشرح النتيجة اللى انت عاوز توصلها بناء على المرفق بصراحة لن اضيع وقتى مع من يبخل بوقته انا قمت بايقاف الاكواد اللى سببت لى مشاكل علشان احاول افهم واحلل الكود شوف اذا التعديل مناسب ملاحظة فى سؤالك الاول انت قلت فى حدث التحميل تريد تنفيذ شرط على كل السجلات وطبعا تم وضع الاجابة نظريا طبقا للسؤال التظرى وبعد وضع مرفقك تقول ان الحدث الحالى من خلاله يتحقق الشرط اذا اذاى نهمل لوب على كل السجلات طبقا لشرط يتغير تبعا الحدص الحالى للنموذج حذ بالط طل ده انا تاعب نفسى واحاول افهم وافهمك وانا اصلا مش فاهم لانك بخيل اذا التعديل مشى معاك احمد ربنا واذا ما لبى طلبك اشرح وانتظر العون من احد الاساتذة الافاضل الكرام 1.accdb 716 kB · 1 download اولا لا اعلم ما هو سبب الاسلوب التهجمي والنعت بكلمة البخيل ثانيا كلامك( احاول افهمك وتاعب وانا مش فاهم) ... ماكان اله داعي ياما تسوي شي لوجه الله وتطول بالك وياما ممجبور ترد حضرتك يمكن مشرف او من ضمن مؤسسي الفريق ولو تلاحظ مكتوب بحسابي (عضو جديد) ومن ضمن متابعتي للمنتدى لاحظت مواضيع من اعضاء تكون بها اكثر من ردود وارفاق الملف اكثر من مره وارساله الى المختصين لحين فهم الفكره كان لازم تخلي بحساباتك انك ماتتعامل مع ناس خبره مثل حضرتك ومن الممكن اني او غيري منكدر نوصل الفكرة بالطريقة الي تريدها من اول مره وياريت يكون صدرك رحب ويه الحالات المماثلة والا بلاها تحل مشكلة والمقابل يدعيلك بالنجاح والموفقية وانت ترد عليه باسلوب ناشف عموما الملف لم يفي بالغرض للامانه والله لو اعرف انه يكون هذا ردك مكان اطلب او اشارك وهاي اول مره اطلب شي من احد بهذا المجال واخر مره تحياتي الك 1
ابو جودي قام بنشر يونيو 21 قام بنشر يونيو 21 خير الكلام ما قل ودل واجيبك بقوله تعالى يعلم السر واخفى اخى يا رعاك الله لا تجتزئ الكلام تركت كل الرد وفقط تعلق على الكلمة بخيل اكثر ما اكرهه هو تصيد أخطاء الاخرين على كل كان توجيه في صورة مزاح ولتعلم كل ما يقدم هنا ابتغاء مرضاة الله ولوجه الله تعالى ولا نحتسب ما نقدم الا كذلك اذا انت شخص جاسر وجسور ولا تفهم ولا تحب المزاح اعتذر اليك ردى السابق بصفة شخصية لا علاقة له بأى القاب تتبعها عضويتي لأنه لا نتعامل هنا باي القاب التعامل هنا كما سبق و أوضحت لوجه الله تعالى أخى الحبيب كن هين لين وبما انك عضو جديد وبما انك لك كل الحق في طرح اسئلتك لتحصل من وراء ذلك مبتغاك عليك واجبات كذلك اذا اتبع الواجبات حتى تحصد الحقوق اول الواجبات كان اولى بك قبل المشاركة قراءة قوانين المنتدى https://www.officena.net/Tips/Questions.htm والتى ستجد ضمنها على سبيل المثال والذى كان سببا فى عدم حصولك على النتيجة اقتباس 8. يجب ذكر كافة المعلومات التي من الممكن أن تُسأل عنها، مع الشرح الوافي للمشكلة لأن الشخص الذي تكتب له ليس ملما بالمشكلة مثلك. ويحبذ وضع مثال للنتيجة التي تريدها (سواء كملف مرفق باستخدام البرنامج المطلوب كالاكسيل او الأكسيس مثلا، او صورة توضيحية، أو تفصيل المطلوب بشرح وافي)، ويجب ان تكون بيانات المثال نابعة من نفس بيانات المرفق كي بمكن الربط و الفهم بسهولة. 9. بخصوص التسميات، يُفضل أن تكون أسماء الكائنات والحقول بالإنجليزية، لان العربية تحدث فيها مشاكل مع الأكواد. طيب وقبل مغادرتي فهم السؤال بشكل نموذجي يعين على الإجابة عليه بشكل نموذجي فهم السؤال جيدا يوفر علينا وقت وجهد ثمينين نهدرهما اطرح سؤالك بشكل كاف وبين الهدف والسيناريو وفق المرفق حتى تجد من يستطيع مساعدتك اهلا بك بين اخوانك
naellord88 قام بنشر يونيو 21 قام بنشر يونيو 21 2 دقائق مضت, ابو جودي said: خير الكلام ما قل ودل واجيبك بقوله تعالى يعلم السر واخفى اخى يا رعاك الله لا تجتزئ الكلام تركت كل الرد وفقط تعلق على الكلمة بخيل اكثر ما اكرهه هو تصيد أخطاء الاخرين على كل كان توجيه في صورة مزاح ولتعلم كل ما يقدم هنا ابتغاء مرضاة الله ولوجه الله تعالى ولا نحتسب ما نقدم الا كذلك اذا انت شخص جاسر وجسور ولا تفهم ولا تحب المزاح اعتذر اليك ردى السابق بصفة شخصية لا علاقة له بأى القاب تتبعها عضويتي لأنه لا نتعامل هنا باي القاب التعامل هنا كما سبق و أوضحت لوجه الله تعالى أخى الحبيب كن هين لين وبما انك عضو جديد وبما انك لك كل الحق في طرح اسئلتك لتحصل من وراء ذلك مبتغاك عليك واجبات كذلك اذا اتبع الواجبات حتى تحصد الحقوق اول الواجبات كان اولى بك قبل المشاركة قراءة قوانين المنتدى https://www.officena.net/Tips/Questions.htm والتى ستجد ضمنها على سبيل المثال والذى كان سببا فى عدم حصولك على النتيجة طيب وقبل مغادرتي فهم السؤال بشكل نموذجي يعين على الإجابة عليه بشكل نموذجي فهم السؤال جيدا يوفر علينا وقت وجهد ثمينين نهدرهما اطرح سؤالك بشكل كاف وبين الهدف والسيناريو وفق المرفق حتى تجد من يستطيع مساعدتك اهلا بك بين اخوانك اشكر رحابة صدرك يمكن الخطأ مني فهمت كلامك صورة غير صحيحة واقدم اعتذاري كونه قبل كل شيء انك افرغت جزء من وقتك للاجابة على موضوعي وشكرا لك لتفريغ وقتك وتزويدي بالاكواد وتحميل المرفق استاذي الفاضل لودلاحظت بالمرفق والقائمة المنسدلة لدي اجازات عند الاختيار من القائمة (الوقوعات) تقوم الاستقطاع وفقا لتاريخ معين مثلا تم الاستقطاع لشهر حزيران وضعت كود if لقرائة عند الوصول الى شهر تموز تصفر القيم تلقائيا موضوعي كان انه اتممت كل شيء وعند فتح الفورم وجب عليه التنقل بين السجلات لتطبيق مامذكور اعلاه طلبي كان بمجرد فتح النموذج هل هنالك كود يقوم بالبحث برمجيا وتطبيق اعلاه بمجرد فتح الفورم دون التنقل بين السجلات
ابو جودي قام بنشر يونيو 21 قام بنشر يونيو 21 من واقع المرفق ايه الكود اللى بينفذ طلبك اللى فى الحدث الحالى ؟؟
naellord88 قام بنشر يونيو 21 قام بنشر يونيو 21 3 دقائق مضت, ابو جودي said: من واقع المرفق ايه الكود اللى بينفذ طلبك اللى فى الحدث الحالى ؟؟ اي نعم كود if المتعلق بكلمة "الوقووعات" والي بالحدث الحالي بالنموذج موجود هذا يتطبق على السجلات بسكل فردي لازم اتصفح سجل سجل ويقوم بحساب التاريخ اذا كان مطابق يصفر الحقول مادري اذا اكو طريقة تتصفر تلقائيا بدون تصفح
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.