اذهب الي المحتوي
أوفيسنا

محمد ايمن

الخبراء
  • Posts

    1672
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    8

كل منشورات العضو محمد ايمن

  1. اخي ابو آدم نورت الموضوع الفكرة لدي نموذج مبيعات و بعد ادخال اسم المادة و رقم العدد المطلوب بيعه يتم فحص الكمية الموجودة في المستودع و اعطاء رسالة عن الكمية الحالية ولكن اذا تكرر اسم المادة في الفاتورة الواحدة فلا يعطي الكود مجموع البندين بل بند واحد فقط مثلا تم تكرار مادة تجربة 1 في البند الاول و الثاني و مجموع المادة في البندين 10 ( كل بند 5 ) و كمية المادة الموجودة في المستودع 5 من المفترض ظهور رسالة بان الكمية الحالية هي اقل من الكمية المطلوب بيعها ولكن الكود يقارن كمية المادة الموجودة في المستودع مع كمية المادة المطلوبة في البند الحالي ( 1 او 2 ) لذلك خطرت لي فكرة منع تكرار اسم المادة في الفاتورة الواحدة
  2. الكود السابق يعمل بشكل جيد ولكن هناك ما يعيبه وهو ان الكود يبدأ بالمقارنة من اول حقل الى آخر حقل مع قيمة كافة الحقول عند الاستدعاء كل مرة وبتفصيل اكثر لنفرض تم ادخال قيمة في الحقل الاول بدا الكود بمقارنة قيمة الحقل الاول مع الثاني فالثالث .... الخ ثم يبدا بمقارنة الثاني مع الاول فالثالث ... الخ ثم الثالث مع الاول فالثاني ... الخ ( دوخة ) وعند ادخال اي قيمة في اي حقل يتم تنفيذ الكود من البداية توصلت الى تعديل و الفضل لله عز وجل بحيث يقوم الكود بمقارنة قيمة الحقل الذي تم ادخال البيانات فيه مع باقي الحقول لنفرض تم ادخال البيانات في الحقل الخامس يبدا من الحقل الاول الى السابع و ينهي الحلقة ثم تم ادخال البيانات في الحقل السادس يبدا من الاول حتى السابع و ينهي الحلقة اي ان الكود ينفذ مرة واحدة فقط وانا مازلت بانتظار النتائج منع تكرار القيمة في نفس السجل 4.rar
  3. ولا يهمك اخي الكريم اما بالنسبة الى الكود فكما قلت لك في المشاركة السابقة اضفت الوحدة النمطية و فعلت الكود بقي عليك التجربة و النتائج و بالنسبة الى الشرح فاعذرني نسيت ان اضع شرح و سأضعه في آخر المشاركة اما بالنسبة الى الطلبات فأنا اخالفك الرأي مارايك ان نكمل الطلبين 3 - 5 ( الاسهل فالاصعب ) حدد التقارير كما ارجو منك ان تشرح لي الطلب الخامس فلم تتضح الصورة لي كثيرا شرح الاكواد في الطبات السابقة اولا كود عدم ترك الحقول فارغة Private Sub Date_Exit(Cancel As Integer) If IsNull(Me.Date) Then MsgBox "أدخل التاريخ ", vbInformation Me.Invoic_No.SetFocus Me.Date.SetFocus End If وضعت الكود عند الخروج من حقل التاريخ If IsNull(Me.Date) Then MsgBox "أدخل التاريخ ", vbInformation Me.Invoic_No.SetFocus Me.Date.SetFocus اذا كان الحقل ( date ) فارغا يعطي رسالة ( ادخل التاريخ ) طبعا بقية الحقول تم تنفيذ الكود بنفس الطريقة مع مراعاة مايلي: 1 – تغيير اسم الحقل 2 – تغيير نص الرسالة ثانيا : حقل التفقيط يقوم الحقل باستدعاء كود تحويل الارقام الى حروف و اعطاء النتيجة في هذا الحقل =NoToTxt([نص17],"جنيه مصري","") & " فقط لاغير " وهذا الكود ينفذ بشكل دائم ( طالما ان النموذج مفتوح ) nototxt اسم الكود نص 17 اسم الحقل المراد تنفيذ الكود عليه ثالثا : تعطيل الانتقال بدولاب الفارة blRet = MouseWheelOFF تم وضع هذا الكود عند تحميل النموذج و هو يستدعي وحدة نمطية تعطل الانتقال بين السجلات بدولاب الفارة طبعا ستلاحظ التالي اذهب الى الوحدات النمطية و ستجد وحدتين نمطيتين الاولى باسم TotalToText و الثانية MouseOff الاولى لتحويل الارقام الى احرف ( تفقيط) الثانية لتعطيل الانتقال بدولاب الفارة اذكرك اخي الكريم انه في المرفقات ملف باسم std.dll هذا الملف يجب ان يتواجد دائما في فولدر البرنامج
  4. اخي ابو آدم انت لا تقدم فقط ما ينفع بل ما ينفع وما ينتفع به مع كثير من الخبرة و المعرفة و بصراحة اقولها لك من باب الأخوة سامحك الله انا لا اجاملك بل اقول الحقيقة اما بالنسبة الى اخي محمد عوض مين ابو ايمن ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ المشارك في الموضوع ( ابو آدم ) و ( محمد ايمن ) فمن تقصد ؟ اخي الكريم ما اقصده ان الكود موجود و لكنك لم تستعمله هو انك كتبت الكود و لكنك قمت بايقافه كما ان هناك وحدة نمطية يجب ان توضع في برنامجك ليعمل الكود اي ان الكود موجود و لكن غير مفعل هذا ما اقصده ارجو بعض التوضيح !! اما بالنسبة الى النقطة الاخيرة فأي زر امر تتحدث عنه ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ هل تقصد المشاركة 12 اذا كانت هي فما اقصده ان اخينا ابو آدم وضع كود من عنده ليقوم بالبحث عن الحقول الفارغة و اعطاء رسالة بها و لكن كيف يتم تطبيق هذا الكود ؟؟؟ وضع زر امر ووضع هذا الكود خلفه هذا ما اقصده و اخيرا هذا البرنامج مع تعديلات بسيطة التعديل الاول لتعطيل الانتقال بدولاب الفأرة ( الملف std.dll ) يجب ان يبقى في فولدر البرنامج دائما التعديل الثاني هو لزر طباعة التقرير InvoiceHead حيث انني سهوت للاسف و اخطأت في الكود لذلك اصبح التقرير يظهر بهذا الشكل و قد قمت بتصحيح الكود و للحديث تتمة انشاء الله MAWAD3.rar
  5. بسم الله ماشاء الله اخي ابو آدم فعلا كلمة عبقري لا تفعل شيئا امام ما تقدمه من ابداعات جزاك الله كل خير
  6. اخي الكريم كما قال لك الاخ احمد اسعفنا ببعض التوضيح
  7. اصدقائي الاكارم المرفق السابق يحتوي خطأ وهو ان الكود يقوم بمقارنة الحقل الاول فقط مع باقي الحقول حتى لو تم استدعاء الكود اكثر من مرة المرفق الجديد يحتوي على تعديلات افضل حيث تم حل مشكلة تحديث بيانات الحقل كما تم منع الكود من مقارنة الحقل مع نفسه ( اي ان الكود لا يقارن الحقل الاول اذا تم ادخال بيانات في الحقل الاول و لا يقارن الحقل الثاني عند ادخال بيانات في الحقل الثاني و هكذا ) هذا هو الكود Sub testFields() On Error Resume Next Dim i, j, k, m As Variant Dim aa As Recordset Set aa = Me.Recordset With aa For i = 0 To .Fields.Count j = .Fields(i) m = .Fields(i).Name For k = 0 To .Fields.Count - 1 If .Fields(k).SourceField <> .Fields(m).SourceField Then If j = .Fields(k) Then MsgBox "الحقل مكرر" Exit Sub End If End If Next k Next i End With End Sub وفي حدث ( بعد التحديث لاي حقل ) Me.Refresh Call testFields كيف يمكنني وضع الكود في وحدة نمطية لاستدعاءه في اي نموذج وهل يوجد اي تعديل يجعل الكود اكثر مرونة و كفاءة منع تكرار القيمة في نفس السجل 3.rar
  8. بعد التفكير و التحليل لبعض تطبيقات الاخوة في النتدى توصلت لهذا الكود ولكن هناك مشكلة عن تغيير القيمة في الحقل حيث ان الكود لا يستجيب للتغيير !!!! بعبارة اصح لنفرض تم ادخال القيمة 10 في الحقل الأول و تم ادخال القيمة 10 في الحقل الثاني الكود يعطي مكرر نغير قيمة الحقل 2 الى 20 يبقى الكود يعطي مكرر ماهو الحل ( بدون استخدام الامر docmd.runcommand accmd saverecord) ؟؟؟؟؟ منع تكرار القيمة في نفس السجل 2.rar
  9. اخي الكريم بالنسبة الى اسئلتك فالاجابة كما يلي : 1 - يجب عليك منع الانتقال بالماوس ( الكود موجود في نموذج و لكنك لم تستعمله كما ان الوحدة النمطية الخاصة بالكود غير موجودة ) 2 - نعم قمت بتعديل بعض الخصائص في بعض الحقول و السبب : رقم الفاتورة لا يجب ان يتكرر - التاريخ ممكن ان يتكرر فانت في يوم واحد قد تعطي 20 فاتورة مبيع !!!!! و ليس فاتورة واحدة فقط اما بقية سؤال فلم افهم شيئا 3 - حدث تعديل تقرير ؟؟؟؟؟ بصراحة لم افهم عن ماذا تتحدث هل يمكنك ان تسعفنا ببعض التوضيح ؟؟؟؟؟؟ 4 - الكود يعتمد على تصميم نموذجك و بتوضيح اكبر اذا كان هناك بعض الحقول يمكن ان تبقى فارغة لسبب او لآخر فلا يمكن تطيبق كود اخينا ابو آدم اما اذا كانت جميع الحقول في نموذج يجب ان تملئ بالبيانات عندها يمكن تطبيق الكود 5 - اخي و معلمي ابو آدم وضع زر امر جديد ووضع الكود فيه حيث يقوم الكود بالاختبار لوجود حقول فارغة و جربت ان اضع الكود عند اغلاق النموذج و الكود يعمل كما يمكن وضع الكود عند اي حدث و لكن يجب ان تنتبه اذا كان هناك اي حقول يمكن ان تبقى فارغة لسبب او لآخر فلا يمكن تطبيق الكود
  10. اصدقائي الاكارم وردت مواضيع كثيرة عن عدم تكرار القيم في السجلات و لكن لم يرد اي موضوع عن تكرار القيمة في سجل واحد المرفق التالي فيه نموذج يحتوي على ثمانية حقول في السجل الواحد وضعت كود لمنع تكرار نفس القيمة في السجل الواحد وهو يعمل و لكن المشكلة ان الكود ( كارثي ) بكل معنى الكلمة If Me.item1 = Me.item2 Then MsgBox "rr" ElseIf Me.item1 = Me.item3 Then MsgBox "rr" ElseIf Me.item1 = Me.item4 Then MsgBox "rr" ElseIf Me.item1 = Me.item5 Then MsgBox "rr" ElseIf Me.item1 = Me.item6 Then MsgBox "rr" ElseIf Me.item1 = Me.item7 Then MsgBox "rr" End If هذا الكود يوضع بعد تحديث الحقل الأول و لمنع التكرار في جمع الحقول يجب ان يوضع في جميع الحقول ( لذلك هو كارثي ) هل من طريقة لتحسين هذا الكود ؟؟؟؟ منع تكرار القيمة في نفس السجل.rar
  11. الكود يعمل تمام التمام وضعت الحدث عند اغلاق النموذج طبعا هناك بعض التعديلات التي يجب ان تتم لمنع اغلاق النموذج في هذه الحالة
  12. بسم الله ماشاء الله اخي ابو آدم من الاخير جزاك الله كل خير ( لانو فعلا عبقري يا اخي ) خطرت لي فكرة لماذا لا نضع الكود في حدث ما عوضا عن زر امر !!!! ولكن لي سؤال اخي ابو آدم ماذا لو ان هناك بعض الحقول يمكن ان تبقى فارغة لسبب او لآخر هل الكود سيسبب اي مشاكل ؟؟
  13. اخي الكريم هذا هو المرفق مع بعض التعديلات غير التي طلبتها ( الجدولين InvoiceHead و InvoiceDetails ) حيث تم تغيير خصائص الحقلين ( no و invoice_no ) الى مفهرس ( بدون تكرار ) تلميحات اخي الكريم عندما تضع رز امر او مربع نص قم بتسميته نسبة الى عمله او القيمة التي يحويها مثال : زر اغلاق النموذج سمه clos او exit كي تسهل على نفسك و علينا معرفة وظيفة الزر حاول الابتعاد عن تسمية الازرار او الحقول باسماء عربية ( السبب طبعا هو صعوبة التبديل بين اللغة العربية و الانكليزية في محرر الفيجوال بيسك ) واخيرا و ليس آخرا انا بانتظار ردك على التعديلات حتى نكمل الموضوع ملاحظة : الحقل تفقيط سيعطيك ( خطأ ) في البداية ولكن عند اصدار فاتورة جديدة او العودة الى فاتورة قديمة سيعطيك قيمة الفاتورة كتابة MAWAD2.rar
  14. اخي أبو آدم بعد تسجيل الاداة المرفق يعمل بشكل نظامي 100 % ولكن بقي زر فتح التقرير ( انظر المشاركة 16 ) بصراحة لم افهم عمل هذا الزر !
  15. اخي الكريم بالعكس ( انا من جهتي لا امل عند وضع الطلبات واحد تلو الآخر ) ولكن لا احد يستطيع حمل عشر ( بطيخات ) بيد واحدة سنبدأ على بركة الله و المرفقات قريبا انشالله و للحديث تتمة
  16. بارك الله فيك اخي ابو آدم و بصراحة انا من جهتي افضل ان لا اضع تعليقات من الآن فصاعدا حتى انتهاء الموضوع ( بصراحة ) و من ناحية اخرى حتى لا تقول ان الموضوع غير مهم بالعكس الموضوع مهم جدا ولكن كي لا نطيل الموضوع بالردود و من جهة أخرى ما رأي الاخوة في تأجيل الردود حتى انتهاء الموضوع ؟؟؟
  17. جزاك الله كل خير اخي ابو لميس و افهم من كلامك انه مشابه لنوع object
  18. اخي الكريم كما قال لك الاخ ابو آدم الطلبات كثيرة لذلك قم بتقسيمها و سيساعدك الجميع انشالله لماذا لا تبدأ ب الطلب 1 - 4 حدد النماذج و الحقول المطلوب التعديل عليها و سأبدأ التطبيق ثم نكمل مشوارنا بإذن الله
  19. معلومة جديدة بالنسبة لي جزاك الله كل خير و جزاك الجنة ان شاء لله يا ابا خليل
  20. اخي ابو آدم تحية طيبة هناك ما لم يتضح لي على سبيل المثال dim a as string تم تعريف a على انه متغير من نوع سسلسة dim a as date تم تعريف a على انه تاريخ dim a as Variant الآن ماهو نوع Variant ؟؟؟
  21. اخي ابو آدم جزاك الله خير ( وقد بدأت اشعر بأن هذه العبارة لا تعطيك جزء من حقك ولكن خوفا من سوء الفهم لن استفيض بالمديح ) لي سؤالين السؤال الأول : مامعنى هذه الاكواد If Not Me.NewRecord Then Dim varXX As Variant او بالاصح السطر الأول ماهو الشرط و السطر الثاني ماذا تعني variant ؟؟ السؤال الثاني : هل يمكن استخدام معالج الاخطاء ليقوم تغطية نموذج كامل او قاعدة البيانات بأكملها On Error GoTo Err_Tracker ......... Exit_Tracker_ASS: Exit Sub Err_Tracker: MsgBox Err.Description Resume Exit_Tracker_ASS اقصد هل يمكن ان نضع هذا الكود في وحدة نمطية لتغطي كامل قاعدة البيانات او على الاقل نموذج بأكمله ؟؟
×
×
  • اضف...

Important Information