Foksh قام بنشر فبراير 12, 2024 قام بنشر فبراير 12, 2024 1 دقيقه مضت, Moosak said: بس زين لو تشرح الفكرة 🙂 في هذا التعديل ، قمت بتحديث القيمة في النموذج مباشرةً بدلاً من عرضها في رسالة ، باستخدام السطر :- Me.FieldChangedFrom = rs.Fields(1).Value بدلاً من السطرين السابقين :- Beep MsgBox rs.Fields(1) لتحديث القيمة في النموذج مباشرةً بالقيمة الموجودة في السجل الحالي. وأما بالنسبة للجزئية المتعلقة بالحدث عند فتح النموذج المتعقب للتغييرات فهي فقط لتحديث الحقل ، فبدونها سيتوجب على المستخدم ان يقف على مربع النص FieldChangedFrom ليتم تطبيق التحديث ، كون الحدث يعمل في الحالي . فاستبدلت الفكرة لفتح النموذج والذهاب الى آخر سجل وعمل تحديث له . DoCmd.GoToRecord , , acLast [Forms]![frmAudit]![FieldChangedFrom].SetFocus [Forms]![frmAudit]![FieldChangedFrom].Requery
ابوخليل قام بنشر فبراير 12, 2024 الكاتب قام بنشر فبراير 12, 2024 منذ ساعه, Moosak said: توقعتك تسأل .. 😄🖐🏻️ .. هذه واحدة من الطرق الجميلة لتطبيق دالة معينة على مجموعة من العناصر مرة واحدة .. قمت بتحديد جميع العناصر ثم كتبت اسم الدالة في حدث بعد التحديث هكذا ( ()AddToAudit= ) وهذه الطريقة أسهل من كتابة الحدث لكل عنصر على حده .. 🙂 ولها شروط سأذكرها لك .. أما بالنسبة للقائمة المنسدلة وضعت لها دالة منفصلة وذلك لحفظ القيمة الحالية في متغير عام قبل التغيير عند حدث ( عند التركيز ) .. ولو كانت عندك أكثر من قائمة منسدلة حددها جميعا وألصق اسم الدالة لها جميعا مرة واحدة .. من شروط استخدام هذه الطريقة : 1- أن يكون الكود (الإجرائية) من نوع Function وليس Sub . 2- أن لا يكون لنفس العنصر أي أكواد أخرى في نفس الحدث .. وفي حال الحاجة لوضع أكواد أخرى في نفس الحدث يتم العودة للطريقة الإعتيادية لكتابة الكود ويتم مناداة الدالة بالطريقة المعتادة : Call AddToAudit() نعم اعرف الطريقة .. ولكني لم انظر حدث الحقل في الخصائص شرحك هذا جميل لكل من يمر من هنا ويقرأ موضوعنا هذا كل شيء تفحصته الا خصائص الحقول .. لأن المستقر في بالي احداث النموذج جملة طريقتك الحدث حسب الحقل .. حقل حقل حيث يتم الرصد عند كل تغيير في الحقل بينما طريقتي السابقة رصد التغييرات جملة عند تحديث النموذج 1
ابوخليل قام بنشر فبراير 12, 2024 الكاتب قام بنشر فبراير 12, 2024 منذ ساعه, Foksh said: وهذه مشاركتي بطريقة أخرى تم إجراء تعديلات على الكود الذي يظهر النتيجة برسالة عند النقر المزدوج على الحقل FieldChangedFrom . واستخدامه في حدث ( في الحالي ) للنموذج FrmAudit ، على النحو التالي :- مبدع .. هكذا الأفكار الشبابية .. جزاك الله خيرا 1
Moosak قام بنشر فبراير 13, 2024 قام بنشر فبراير 13, 2024 9 ساعات مضت, ابوخليل said: طريقتك الحدث حسب الحقل .. حقل حقل حيث يتم الرصد عند كل تغيير في الحقل هذه الطريقة تتيح لك الحرية في اتخاذ إجراءات خاصة لحقول معينة بدل التطبيق على الجميع جملة واحدة .. وهنا استفدنا منها في عملية تخزين قيمة القائمة المنسدلة في المتغير قبل التغيير . 9 ساعات مضت, ابوخليل said: بينما طريقتي السابقة رصد التغييرات جملة عند تحديث النموذج وكانت هذه الطريقة ستختصر تعقيد كثرة الإجراءات لولا مشكلة القائمة المنسدلة هذه 😄
jo_2010 قام بنشر فبراير 13, 2024 قام بنشر فبراير 13, 2024 (معدل) في 11/2/2024 at 09:06, ابوخليل said: السلام عليكم هذا الجزء في التصميم تم التطرق اليه في هذا المنتدى ومن يبحث يجد الكثير .. علما اني قد استفدت واخذت من تلك المواضيع فما انا الا ناقل .. والعلم تراكمي ينتقل ويتزايد . وحتى يكون هذا الموضوع مرجع مختصر يتم نقله فقط الى برنامجك .. لذا عملت على اعداد مثال صغير وهو عبارة عن جدول ونموذج ووحدة نمطية ويتم من خلاله رصد التالي : - معرف السجل - اسم الحقل - اسم النموذج - القيمة الأساسية ( قبل التعديل ) - القيمة الجديدة (بعد التعديل ) - اسم المستخدم - تاريخ ووقت التعديل مع امكانية التصفية والبحث بين تاريخين -------------------------------------------------------------- كل ما عليك عمله هو : اولا : نقل الكائنات التالية (جدول/نموذج/وحدة نمطية) الى برنامجك : modAudit / frmAudit / tblAudit ثانيا : اي نموذج في مشروعك ترغب في تتبع التعديلات التي تجري عليه .. فقط الصق فيه هذا الكود في حدث قبل التحديث Private Sub Form_BeforeUpdate(Cancel As Integer) Dim x As Integer If Not IsNull(Me!ID) Then x = WriteAudit(Me, Me!ID) End If End Sub ID يمثل الحقل الفريد داخل النموذج هذا كل شيء ... ---------------------------------------------------------------------------------------------------------------------------------------- نأتي للتفاصيل التي استبعدتها وهي محل النقاش لمن اراد المشاركة . وهي ان الوظيفة تخص تتبع الحقول النصية فقط ، واريد ضم مربع التحرير وكما هو ظاهر في المثال المرفق .. قيمة مربع التحرير "رقمية" والمطلوب اظهار القيمة "النصية" الأساسية ( التي تم تغييرها) ، اظهارها في جدول التتبع اما بالنسبة للقيمة الجديدة فلا اشكال فيها انا عالجت المسألة ووصلت الى حل ولكن بطريقة مطولة فنريد الاستفادة من الخبراء الأفاضل حول هذه النقطة و لأخي @Moosak خاصه تعقيبا على تعليقه هنا ------------------------------------------------------------------------------------ وقد اجاب الاستاذ موسى والاستاذ فادي وأجادا بمثالين احترافيين شاملين فجزاهما الله خيرا 1- المرفق Database2 وهو خاص بالحقول النصية 2- المرفق Track Changes - Moosak شامل الحقول النصية ومربعات التحرير 3- المرفق Database5 شامل الحقول النصية ومربعات التحرير بقي الاختيار لك فاختر ما يناسبك . Track Changes - Moosak.accdb 576 kB · 8 downloads Database2.rar 38.65 kB · 2 downloads Database5.accdb 1.22 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 5 downloads المبدع الفاضل برنامج اكثر من رائع شكرا تم تعديل فبراير 13, 2024 بواسطه jo_2010
jo_2010 قام بنشر فبراير 13, 2024 قام بنشر فبراير 13, 2024 (معدل) في 11/2/2024 at 09:06, ابوخليل said: السلام عليكم هذا الجزء في التصميم تم التطرق اليه في هذا المنتدى ومن يبحث يجد الكثير .. علما اني قد استفدت واخذت من تلك المواضيع فما انا الا ناقل .. والعلم تراكمي ينتقل ويتزايد . وحتى يكون هذا الموضوع مرجع مختصر يتم نقله فقط الى برنامجك .. لذا عملت على اعداد مثال صغير وهو عبارة عن جدول ونموذج ووحدة نمطية ويتم من خلاله رصد التالي : - معرف السجل - اسم الحقل - اسم النموذج - القيمة الأساسية ( قبل التعديل ) - القيمة الجديدة (بعد التعديل ) - اسم المستخدم - تاريخ ووقت التعديل مع امكانية التصفية والبحث بين تاريخين -------------------------------------------------------------- كل ما عليك عمله هو : اولا : نقل الكائنات التالية (جدول/نموذج/وحدة نمطية) الى برنامجك : modAudit / frmAudit / tblAudit ثانيا : اي نموذج في مشروعك ترغب في تتبع التعديلات التي تجري عليه .. فقط الصق فيه هذا الكود في حدث قبل التحديث Private Sub Form_BeforeUpdate(Cancel As Integer) Dim x As Integer If Not IsNull(Me!ID) Then x = WriteAudit(Me, Me!ID) End If End Sub ID يمثل الحقل الفريد داخل النموذج هذا كل شيء ... ---------------------------------------------------------------------------------------------------------------------------------------- نأتي للتفاصيل التي استبعدتها وهي محل النقاش لمن اراد المشاركة . وهي ان الوظيفة تخص تتبع الحقول النصية فقط ، واريد ضم مربع التحرير وكما هو ظاهر في المثال المرفق .. قيمة مربع التحرير "رقمية" والمطلوب اظهار القيمة "النصية" الأساسية ( التي تم تغييرها) ، اظهارها في جدول التتبع اما بالنسبة للقيمة الجديدة فلا اشكال فيها انا عالجت المسألة ووصلت الى حل ولكن بطريقة مطولة فنريد الاستفادة من الخبراء الأفاضل حول هذه النقطة و لأخي @Moosak خاصه تعقيبا على تعليقه هنا ------------------------------------------------------------------------------------ وقد اجاب الاستاذ موسى والاستاذ فادي وأجادا بمثالين احترافيين شاملين فجزاهما الله خيرا 1- المرفق Database2 وهو خاص بالحقول النصية 2- المرفق Track Changes - Moosak شامل الحقول النصية ومربعات التحرير 3- المرفق Database5 شامل الحقول النصية ومربعات التحرير بقي الاختيار لك فاختر ما يناسبك . Track Changes - Moosak.accdb 576 kB · 14 downloads Database2.rar 38.65 kB · 2 downloads Database5.accdb 1.22 \u0645\u064a\u062c\u0627 \u0628\u0627\u064a\u062a · 7 downloads شكرا لابداعك هل من الممكن جعل البرنامج يتجاهل السجلات الجديدة ويقوم فقط بترقب التعديل على السجلات القديمة ايضا فى حالة حذف سجل ماذا نفعل وكيف نكتشف السجل المحذوف ومن حدفة شكرا لك تم تعديل فبراير 13, 2024 بواسطه jo_2010
ابوخليل قام بنشر فبراير 13, 2024 الكاتب قام بنشر فبراير 13, 2024 منذ ساعه, jo_2010 said: شكرا لابداعك هل من الممكن جعل البرنامج يتجاهل السجلات الجديدة ويقوم فقط بترقب التعديل على السجلات القديمة اعتقد نعم ممكن منذ ساعه, jo_2010 said: ايضا فى حالة حذف سجل ماذا نفعل وكيف نكتشف السجل المحذوف ومن حدفة شكرا لك هنا اختلف الأمر فالسجلات في الجداول تختلف من جدول الى آخر .. والجداول كثيرة .. ونحتاج هنا الى نسخ طبق الاصل من الجداول كلها كي نحفظ صورة من السجل المحذوف من كل جدول وهذا الشيء فيه زحمة كما ترى ولكن ستكون الفكرة مقبولة اذا الذي تتم مراقبته هو جدول واحد محل اهتمام العميل.. ونخلص من هذا ان المطلوب بعيد عن فكرة مراقبة التعديل ... والتي ترصد حقلا واحدا فقط --------------------- لنفرض انك قلت اريد فقط معرف السجل المحذوف وحقلا واحدا اختاره واسم الجدول ... ولا يلزم نسخ كامل السجل واريد ادخاله ضمن الدالة وجوابي اني لا اعلم ويحتاج هذا الأمر الى محاولة وتجربة وتعاون من الاخوة الخبراء
jo_2010 قام بنشر فبراير 13, 2024 قام بنشر فبراير 13, 2024 47 دقائق مضت, ابوخليل said: اعتقد نعم ممكن هنا اختلف الأمر فالسجلات في الجداول تختلف من جدول الى آخر .. والجداول كثيرة .. ونحتاج هنا الى نسخ طبق الاصل من الجداول كلها كي نحفظ صورة من السجل المحذوف من كل جدول وهذا الشيء فيه زحمة كما ترى ولكن ستكون الفكرة مقبولة اذا الذي تتم مراقبته هو جدول واحد محل اهتمام العميل.. ونخلص من هذا ان المطلوب بعيد عن فكرة مراقبة التعديل ... والتي ترصد حقلا واحدا فقط --------------------- لنفرض انك قلت اريد فقط معرف السجل المحذوف وحقلا واحدا اختاره واسم الجدول ... ولا يلزم نسخ كامل السجل واريد ادخاله ضمن الدالة وجوابي اني لا اعلم ويحتاج هذا الأمر الى محاولة وتجربة وتعاون من الاخوة الخبراء شكرا للاهتمام ممكن نركز على الجزء الاول وهو الاحتفاظ بالتعديل على السجلات القديمة فقط ونتجاهل السجلات الجديد
ابوخليل قام بنشر فبراير 13, 2024 الكاتب قام بنشر فبراير 13, 2024 3 ساعات مضت, jo_2010 said: شكرا للاهتمام ممكن نركز على الجزء الاول وهو الاحتفاظ بالتعديل على السجلات القديمة فقط ونتجاهل السجلات الجديد استبدل الكود الموجود في نموذج التعديل بهذا Private Sub Form_BeforeUpdate(Cancel As Integer) If Not Me.NewRecord Then Dim x As Integer If Not IsNull(Me!ID) Then x = WriteAudit(Me, Me!ID) End If End If End Sub
Moosak قام بنشر فبراير 13, 2024 قام بنشر فبراير 13, 2024 5 ساعات مضت, ابوخليل said: يحتاج هذا الأمر الى محاولة وتجربة وتعاون من الاخوة الخبراء - تسجيل من أضاف السجل . - تسجيل من حذف السجل . - إمكانية التطبيق لجميع النماذج .. هذه ممكنة والله أعلم .. ولكن ستكون لها إجراءات إضافية وتعديلات في جدول التغيرات . 🙂
ابوخليل قام بنشر فبراير 13, 2024 الكاتب قام بنشر فبراير 13, 2024 تسجيل من أضاف السجل ، قد ابديت وجهة نظري في مشاركة سابقة اما الحذف فلن يكون ذا فائدة حقيقية مكتملة والسبب ان بعض السجلات تحتوي على الكثير من الحقول ، وقد يشمل الحذف الجداول الفرعية اذا خاصية تتالي الحذف مفعلة لذا ارى ان عملية ضبط المحذوفات تختلف تماما عن تتبع التغيير والافضل ان تكون عملية مراقبة الحذف هي عبارة عن نقل السجل من مكان الى آخر .. مع تفعيل خاصية الاسترداد او الحذف النهائي
jo_2010 قام بنشر فبراير 14, 2024 قام بنشر فبراير 14, 2024 (معدل) 15 ساعات مضت, ابوخليل said: Private Sub Form_BeforeUpdate(Cancel As Integer) If Not Me.NewRecord Then Dim x As Integer If Not IsNull(Me!ID) Then x = WriteAudit(Me, Me!ID) End If End If End Sub حدثت اخطاء بعد اضافة الكود الجديد اليك القاعدة للتعديل ccc.rar تم تعديل فبراير 14, 2024 بواسطه jo_2010
jo_2010 قام بنشر فبراير 14, 2024 قام بنشر فبراير 14, 2024 منذ ساعه, ابوخليل said: تفضل ccc2.rar 229.09 kB · 3 downloads شكرا لك عظم الله اجرك
يونس محمد الخطابي قام بنشر فبراير 18, 2024 قام بنشر فبراير 18, 2024 جزاك الله خير استاذنا الفاضل ابو خليل وعدت واوفيت / فعلا انك راية خفاقه في ذرى المجد . الشكر موصل لاستاذتنا الافاضل الذين اثروا الموضوع بما جادت به عقولهم النيره
يونس محمد الخطابي قام بنشر فبراير 26, 2024 قام بنشر فبراير 26, 2024 السلام عليكم / استاذي الفاضل ابو خليل المحترم يعلم جنابكم الكريم بان معظم العمل يتم بالنموذج الرئيسي الفرعي / السؤال : يظهر في نموذج التغيرات حقل ID بشكل ثابت هل بالامكان ان يظهر الى جانبه بشكل ثابت ايضا اسم المشتري , وليس في حقل (اسم الحقل) . واذا كان ذلك غير ممكن كيف استطيع الحصول على اسم المشتري ( س) الذي هو في النموذج الرئيس و من النموذج الفرعي احصل على اسم السلعه التي تم تغيير سعرها والتي تعود لذات المشتري المذكور(س) تحياتي التغيرات.rar
يونس محمد الخطابي قام بنشر فبراير 27, 2024 قام بنشر فبراير 27, 2024 الله ينور دربك استاذ ابوخليل . ويجعل ذلك في ميزان حسناتك. كل كلمات الشكر والعرفات لاتفيك حقك . لا اضيف شيء لان كلشيء تمام زي العسل لكن عندما اطلعت على نموذج التغيرات توقعت لم يحصل شيء وعند اطلاعي على الجدول وجدت كل ما اتمناه ويبدو انك لم تنزل الحقل BuyerName في النموذج لكثرة مشاغلك . ارجو اعادة تنزيل القاعده ليستفاد منها غيري لاني لم انزلها لكي لايعتقد غيري بان لي دور في صياغتها الجميله ولكي يبقى الفضل لك . اكرر شكري وتقديري
ابوخليل قام بنشر فبراير 27, 2024 الكاتب قام بنشر فبراير 27, 2024 1 ساعه مضت, بونس الخطابي said: الله ينور دربك استاذ ابوخليل . ويجعل ذلك في ميزان حسناتك. كل كلمات الشكر والعرفات لاتفيك حقك . لا اضيف شيء لان كلشيء تمام زي العسل لكن عندما اطلعت على نموذج التغيرات توقعت لم يحصل شيء وعند اطلاعي على الجدول وجدت كل ما اتمناه ويبدو انك لم تنزل الحقل BuyerName في النموذج لكثرة مشاغلك . ارجو اعادة تنزيل القاعده ليستفاد منها غيري لاني لم انزلها لكي لايعتقد غيري بان لي دور في صياغتها الجميله ولكي يبقى الفضل لك . اكرر شكري وتقديري اقتباس لاني لم انزلها لكي لايعتقد غيري بان لي دور في صياغتها الجميله ولكي يبقى الفضل لك . اكرر شكري وتقديري الفضل لله .. لم افهم .. فالحقل BuyerName وضعته في جدول المتابعة فقط .. وهو يمثل حقل الاسم في النموذج الرئيسي .. آأأأه تقصد في نموذج عرض التغييرات بالعكس اذا يوجد اضافة جميل ان ترفعها هنا فنحن جميعا نتعلم ونساعد بعض 1
abouelhassan قام بنشر مارس 17, 2024 قام بنشر مارس 17, 2024 ماشاء الله تبارك الله حضرتك أسطورة ماشاء الله عليك موضوع مهم ومفيد جدا جدا جدا حفظكم الله
الردود الموصى بها
انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد
يجب ان تكون عضوا لدينا لتتمكن من التعليق
انشئ حساب جديد
سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .
سجل حساب جديدتسجيل دخول
هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.
سجل دخولك الان