محمد ايمن قام بنشر نوفمبر 17, 2016 قام بنشر نوفمبر 17, 2016 (معدل) الاصدقاء الاكارم تحية طيبة في المثال التالي كود لعدم تكرار التاريخ في النموذج الفرعي في حال التكرار تظهر رسالة و يتم تنفيذ الامر Undo لكن المشكلة انه بعد التراجع عن الادخال يذهب الاكسس الى السجل التالي هل من حل لهذه المشكلة ؟؟ قاعدة بيانات1.rar تم تعديل نوفمبر 17, 2016 بواسطه محمد ايمن
ابو جودي قام بنشر نوفمبر 18, 2016 قام بنشر نوفمبر 18, 2016 17 ساعات مضت, محمد ايمن said: الاصدقاء الاكارم تحية طيبة في المثال التالي كود لعدم تكرار التاريخ في النموذج الفرعي في حال التكرار تظهر رسالة و يتم تنفيذ الامر Undo لكن المشكلة انه بعد التراجع عن الادخال يذهب الاكسس الى السجل التالي هل من حل لهذه المشكلة ؟؟ قاعدة بيانات1.rar اتفضل جرب كده قاعدة بيانات2.rar 2
صالح حمادي قام بنشر نوفمبر 18, 2016 قام بنشر نوفمبر 18, 2016 السلام عليكم و رحمة الله تعالى و بركاته الحل الذي قدمه الأستاذ أبا جودي ممتاز جدا، و لدي محاولة بسيطة رغم أنها أقل من محاولة أستاذي أبا جودي لكن لا بأس بالمحاولة قاعدة بيانات1.rar 2
ابو جودي قام بنشر نوفمبر 18, 2016 قام بنشر نوفمبر 18, 2016 9 ساعات مضت, صالح حمادي said: السلام عليكم و رحمة الله تعالى و بركاته الحل الذي قدمه الأستاذ أبا جودي ممتاز جدا، و لدي محاولة بسيطة رغم أنها أقل من محاولة أستاذي أبا جودي لكن لا بأس بالمحاولة قاعدة بيانات1.rar هههههههه عحبتنى الفكرة حيلة رائعه لو فى اكتر من اعجاب كنت عملت بس للاسف هى اعجاب واحده بس الموجودة انا من وجهة نظرى اللى حابب يشتغل وينجح فى التكويد والبرمجة شخص بيعرف يفكر وبيحاول دايما بتخيل مش شخص عارف البرمجة وخلاص 2
رمهان قام بنشر نوفمبر 18, 2016 قام بنشر نوفمبر 18, 2016 جرب حذف الكود الزائد التالي Private Sub CustName_AfterUpdate() Dim StrSql As String StrSql = "SELECT OrderTbl.CustName, OrderTbl.OrderDate, OrderTbl.OrderID " & vbCrLf & _ "FROM OrderTbl " & vbCrLf & _ "WHERE (((OrderTbl.CustName) In (SELECT [Forms]![MainFrm]![CustName] FROM [OrderTbl] As Tmp GROUP BY [CustName],[OrderDate] HAVING Count(*)>1 And [OrderDate] = [OrderTbl].[OrderDate])) AND ((OrderTbl.OrderDate)=[Forms]![MainFrm]![OrderDate])) " & vbCrLf & _ "ORDER BY OrderTbl.CustName, OrderTbl.OrderDate;" If StrSql > 1 Then MsgBox "fdffffffffffff" End If End Sub حيث لايوجد عنصر بهذا الاسم تحياتي 1
محمد ايمن قام بنشر نوفمبر 18, 2016 الكاتب قام بنشر نوفمبر 18, 2016 السلام عليكم ورحمة الله و بركاته تحية طيبة اصدقائي وشكرا على الحلول هذا هو المطلوب بعينه استاذي رمهان المشكلة في النموذج الفرعي وليس الاساسي 1
ابو جودي قام بنشر نوفمبر 18, 2016 قام بنشر نوفمبر 18, 2016 9 ساعات مضت, محمد ايمن said: السلام عليكم ورحمة الله و بركاته تحية طيبة اصدقائي وشكرا على الحلول هذا هو المطلوب بعينه استاذي رمهان المشكلة في النموذج الفرعي وليس الاساسي خيركم سابق استاذنا الحبيب لن نستطيع رد جميلكم وحسن صنيعكم معنا جزاكم الله عنا خيرا
رمهان قام بنشر نوفمبر 19, 2016 قام بنشر نوفمبر 19, 2016 21 ساعات مضت, محمد ايمن said: السلام عليكم ورحمة الله و بركاته تحية طيبة اصدقائي وشكرا على الحلول هذا هو المطلوب بعينه استاذي رمهان المشكلة في النموذج الفرعي وليس الاساسي اخي الاستاذ محمد ايمن انا جربت حذف الكود السابق واختفت المشكله وبدون تعديل على الكود الموجود بالفرعي. سارفع الملف عندما اجلس امام الكمبيوتر تحياتي 1
محمد ايمن قام بنشر نوفمبر 19, 2016 الكاتب قام بنشر نوفمبر 19, 2016 منذ ساعه, رمهان said: اخي الاستاذ محمد ايمن انا جربت حذف الكود السابق واختفت المشكله وبدون تعديل على الكود الموجود بالفرعي. سارفع الملف عندما اجلس امام الكمبيوتر تحياتي بارك الله فيك استاذي الكريم
رمهان قام بنشر نوفمبر 20, 2016 قام بنشر نوفمبر 20, 2016 (معدل) السلام عليكم احبتي بعد التمعن قليلا نتج معي التالي : 1. عند تجربتي لم استخدم المفتاح انتر بعد الادخال وانما استخدمت الماوس فلم تظهر المشكلة وعند التجربة قد قمت بحذف الكود الزائد وهنا اعتقدت ان المشكلة تكمن في الكود بينما المشكلة تظهر عند استخدام الانتر وحصرا فقط عندما يكون الادخال في السجل الاخير . وهنا اعتذر منكم احبتي 2. كانت هي ليست مشكلة وانما من الطبيعي انه عند الوصول للسجل الاخير بالنموذج الفرعي ثم الضغط على انتر ان يتقل التركيز للرئيسي ومن ثم سجلا جديدا لان الخيارات في الاكسس ومن خيار اعدادات العميل تجد الانتقال للحقل التالي لسلوك مفتاح الادخال . كما يمكن اظهار نافذة tab order لمعرفة تسلسل التاب فالنموذج الفرعي هو احد العناصر للنموذج الرئيسي . المقترحات : 1. وضع خاصية دورة للنموذج الرئيسي ومن التاب غير ذلك الى = السجل الحالي . فهنا عند الضغط على انتر بعد الرسالة وانت في السجل الاخير لا يذهب للرئيسي وسجل جديد الا اذا كنت محتاج وعمدا انه بالضغط على الانتر باستمرار ان يلف على سجلات الفرعي وعند الاخير يبدا بسجل تالي في الرئيسي وهكذا 2. الاستاذ اباجودي قام بتغيير موقع الحدث وعلى مستوى النموذج الفرعي وقبل التحديث فلافضل الاستفادة من الباراميتر cancel وبوضع cancel=true بديلا للتراجع والغاء الحدث 3. الاستاذ صالح حمادي استخدم الانتقال للسجل الاخير مما اجبر الاكسس عدم الذهاب للنموذج الرئيسي وهنا لو كان التعديل في وسط السجلات سيذهب دائما للاخير مما يجعلك تعيد البحث عن السجل الآنف تعديله وبصعوبة قليلا اتمنى ان ظهر السبب استاذنا محمد ايمن لعله يبطل العجب ولكم اجمل التحايا تم تعديل نوفمبر 20, 2016 بواسطه رمهان 2
ابو جودي قام بنشر نوفمبر 20, 2016 قام بنشر نوفمبر 20, 2016 9 ساعات مضت, رمهان said: السلام عليكم احبتي بعد التمعن قليلا نتج معي التالي : 1. عند تجربتي لم استخدم المفتاح انتر بعد الادخال وانما استخدمت الماوس فلم تظهر المشكلة وعند التجربة قد قمت بحذف الكود الزائد وهنا اعتقدت ان المشكلة تكمن في الكود بينما المشكلة تظهر عند استخدام الانتر وحصرا فقط عندما يكون الادخال في السجل الاخير . وهنا اعتذر منكم احبتي 2. كانت هي ليست مشكلة وانما من الطبيعي انه عند الوصول للسجل الاخير بالنموذج الفرعي ثم الضغط على انتر ان يتقل التركيز للرئيسي ومن ثم سجلا جديدا لان الخيارات في الاكسس ومن خيار اعدادات العميل تجد الانتقال للحقل التالي لسلوك مفتاح الادخال . كما يمكن اظهار نافذة tab order لمعرفة تسلسل التاب فالنموذج الفرعي هو احد العناصر للنموذج الرئيسي . المقترحات : 1. وضع خاصية دورة للنموذج الرئيسي ومن التاب غير ذلك الى = السجل الحالي . فهنا عند الضغط على انتر بعد الرسالة وانت في السجل الاخير لا يذهب للرئيسي وسجل جديد الا اذا كنت محتاج وعمدا انه بالضغط على الانتر باستمرار ان يلف على سجلات الفرعي وعند الاخير يبدا بسجل تالي في الرئيسي وهكذا 2. الاستاذ اباجودي قام بتغيير موقع الحدث وعلى مستوى النموذج الفرعي وقبل التحديث فلافضل الاستفادة من الباراميتر cancel وبوضع cancel=true بديلا للتراجع والغاء الحدث 3. الاستاذ صالح حمادي استخدم الانتقال للسجل الاخير مما اجبر الاكسس عدم الذهاب للنموذج الرئيسي وهنا لو كان التعديل في وسط السجلات سيذهب دائما للاخير مما يجعلك تعيد البحث عن السجل الآنف تعديله وبصعوبة قليلا اتمنى ان ظهر السبب استاذنا محمد ايمن لعله يبطل العجب ولكم اجمل التحايا اهلا استاذنا الجليل ومعلمنا القدير للمسات الرمهانية دائما طعم غير انا استفدت حجات مكنتش اعرفها من قبل جزاكم الله تعالى خيرا استاذنا الحبيب 1
محمد ايمن قام بنشر نوفمبر 20, 2016 الكاتب قام بنشر نوفمبر 20, 2016 السلام عليكم ورحمة الله و بركاته استاذي رمهان تحية طيبة بعد التمعن في المرفقات و التجارب كانت النتائج الآتية مرفق اخينا صالح حمادي فهو كما تفضلت اذا كان التعديل في منتصف السجلات سيذهب الى السجل الاخير مما يجعلك تعيد البحث عن السجل المطلوب مرفق اخينا ابا جودي كان هو الحل الشافي و كما تفضلت يكفي استخدام التراجع عن الحدث ( بعد التجربة كانت النتيجة واحدة ) الغريب في الموضوع اني جربت التراجع عن الحدث سابقا ولكن دون فائدة !! ولله حكمته في ان يكون الحل على يد اخينا ابا جودي اما استخدام cancel=true فهو لم يجدي نفعا ابدا !!!! 1
رمهان قام بنشر نوفمبر 20, 2016 قام بنشر نوفمبر 20, 2016 13 دقائق مضت, محمد ايمن said: الغريب في الموضوع اني جربت التراجع عن الحدث سابقا ولكن دون فائدة !! ولله حكمته في ان يكون الحل على يد اخينا ابا جودي انبه فقط على ان الحدث مختلف . فقد يكون جربت بعد التحديث للعنصر. الاستاذ ابا جودي استخدم حدث ثبل التحديث وللنموذج الفرعي. 15 دقائق مضت, محمد ايمن said: اما استخدام cancel=true فهو لم يجدي نفعا ابدا !!!! تنبيه مرة اخرى وتحملني قليلا : الحدث قيل التحديث للنموذج الفرعي واسمحلي بالاختصار ليصبح شكل الكود كامل Private Sub Form_BeforeUpdate(Cancel As Integer) If DCount("PtNo", "OrderTbl", "[OrderDate]=[Forms]![MainFrm].[OrderSubFrm]![OrderDate] AND [PtNo]=[forms]![mainfrm]![PtID]") > 0 Then Cancel = MsgBox("الاسم مكرر") End Sub تحياتي
محمد ايمن قام بنشر نوفمبر 20, 2016 الكاتب قام بنشر نوفمبر 20, 2016 (معدل) تحية طيبة استاذي رمهان استاذي الكريم انا من يثقل عليك لا انت انا فعلا استخدمت الكود قبل التحديث و لكن ليس كما ذكرت انت فقد استخدمته كالتالي Private Sub OrderDate_BeforeUpdate(Cancel As Integer) Dim Uvar1 As Variant Uvar1 = DCount("PtNo", "OrderTbl", "[OrderDate]=[Forms]![MainFrm].[OrderSubFrm]![OrderDate] AND [PtNo]=[forms]![mainfrm]![PtID]") If Uvar1 > 0 Then MsgBox ("الاسم مكرر") Me.Undo End If End Sub وكانت تظهر لي رسالة بشكل دائم ( لم يتم العثور على الخاصية )!!!!!!!!!!!!!!!!!! وحتى عند تجربة الكود الذي ارسلته انت و الكود المرفق من اخي ابا جودي كانت تظهر نفس الرسالة !!!! بصراحة بدات اشك ان هناك خطب ما سانشئ المثال من جديد و اجرب و اعود اليكم بالنتائج تم تعديل نوفمبر 20, 2016 بواسطه محمد ايمن
رمهان قام بنشر نوفمبر 20, 2016 قام بنشر نوفمبر 20, 2016 22 دقائق مضت, رمهان said: Private Sub Form_BeforeUpdate(Cancel As Integer) تحياتي 9 دقائق مضت, محمد ايمن said: Private Sub OrderDate_BeforeUpdate(Cancel As Integer) الحدث مختلف . الاول على مستوى النموذج اي حدث للنموذج قبل التحديث. والاخير على مستوى العنصر وتصبح على خير استاذ محمد والصباح رباح
محمد ايمن قام بنشر نوفمبر 20, 2016 الكاتب قام بنشر نوفمبر 20, 2016 (معدل) تحية طيبة استاذي الكريم اعود اليكم مع النتائج عند استخدام (قبل التحديث) مع الحقل و استخدام خاصية cancel كانت تظهر رسالة لم يتم العثور على الخاصية عند استخدام (قبل التحديث) مع النموذج واستخدام خاصية cancel تظهر رسالة ان الاسم مكرر و لكن لا يحدث شيئ !! ملاحظة لم انتبه سابقا الى ان اخينا ابا جودي استخدم الكود على مستوى النموذج و ليس على الحقل تم تعديل نوفمبر 20, 2016 بواسطه محمد ايمن
co2002co قام بنشر نوفمبر 21, 2016 قام بنشر نوفمبر 21, 2016 9 ساعات مضت, محمد ايمن said: تحية طيبة استاذي الكريم اعود اليكم مع النتائج عند استخدام (قبل التحديث) مع الحقل و استخدام خاصية cancel كانت تظهر رسالة لم يتم العثور على الخاصية عند استخدام (قبل التحديث) مع النموذج واستخدام خاصية cancel تظهر رسالة ان الاسم مكرر و لكن لا يحدث شيئ !! ملاحظة لم انتبه سابقا الى ان اخينا ابا جودي استخدم الكود على مستوى النموذج و ليس على الحقل السلام عليكم ورحمة الله وبركاته اسعد الله اوقاتكم بكل خير طبعا مشكلتي كبيره بالتكرار ومن بحثي بالنت وجدت هذا الكود اتركك مع المثال واتمنى يكون هذا الي انت حب تعمله قاعدة بيانات1.rar طبعا اول تحط بالجدول الحقل الي انت حاب تمنع عنه التكرار سواء كان الحقل رقمي او نصي الكود بيغير الرساله الاساسيه تبعت النظام ويتيح للمستخدم ان يضيف الرساله الي مو حاب يكتبها انا اضفت undo عشان يحذف المكرر الرابط https://technet.microsoft.com/nl-nl/library/ff836345
صالح حمادي قام بنشر نوفمبر 21, 2016 قام بنشر نوفمبر 21, 2016 15 ساعات مضت, رمهان said: 3. الاستاذ صالح حمادي استخدم الانتقال للسجل الاخير مما اجبر الاكسس عدم الذهاب للنموذج الرئيسي وهنا لو كان التعديل في وسط السجلات سيذهب دائما للاخير مما يجعلك تعيد البحث عن السجل الآنف تعديله وبصعوبة قليلا 12 ساعات مضت, محمد ايمن said: مرفق اخينا صالح حمادي فهو كما تفضلت اذا كان التعديل في منتصف السجلات سيذهب الى السجل الاخير مما يجعلك تعيد البحث عن السجل المطلوب السلام عليكم و رحمة الله تعالى و بركاته: شكرا جزيلا أساتذتي الكرام على هذه الملاحظة، لكن يمكن تجاوز هذه المشكلة بتعويض الجزء التالي من الكود: DoCmd.GoToRecord , , acLast بهذا الجزء: DoCmd.GoToRecord , , acPrevious DoCmd.GoToRecord , , acNext بهذا الشكل يصبح البرنامج يطلع رسالة بأن السجل مكرر و عند الضغط على موافق للرسالة يعود لنفس السجل الذي كنت تجري عليه التعديل. هذا و الله أعلم إن كانت هناك ملاحظات أخرى فسنسعى جاهدين لتخطيها بإذن الله جل و على موفقون بإذن الله قاعدة بيانات1.rar
رمهان قام بنشر نوفمبر 21, 2016 قام بنشر نوفمبر 21, 2016 وعليكم السلام اخي صالح فيه ملاحظة بسيطة : لو كان التعديل بالسجل الاول . هنا عليك صيد الخطأ حيث لن يذهب للسابق وانت باول سجل وبعد ذلك سيننتقل السجل للسجل الذي يلي السجل الحالي تحياتي 1
صالح حمادي قام بنشر نوفمبر 21, 2016 قام بنشر نوفمبر 21, 2016 ما شاء الله عليك أستاذي رمهان أنت شديد الملاحظة نفعنا الله بما تقدمه من علم و جزاك الله عنا خير الجزاء. لقد قمت بتغيير طفيف يمكنني من إصطياد الخطأ الذي ذكرته و البقاء في نفس السجل الذي أقوم بالتعديل عليه. If CurrentRecord = 1 Then DoCmd.GoToRecord , , acNext DoCmd.GoToRecord , , acPrevious Else DoCmd.GoToRecord , , acPrevious DoCmd.GoToRecord , , acNext End If قاعدة بيانات1.rar
رمهان قام بنشر نوفمبر 27, 2016 قام بنشر نوفمبر 27, 2016 في 11/21/2016 at 23:54, صالح حمادي said: ما شاء الله عليك أستاذي رمهان أنت شديد الملاحظة نفعنا الله بما تقدمه من علم و جزاك الله عنا خير الجزاء. لقد قمت بتغيير طفيف يمكنني من إصطياد الخطأ الذي ذكرته و البقاء في نفس السجل الذي أقوم بالتعديل عليه. If CurrentRecord = 1 Then DoCmd.GoToRecord , , acNext DoCmd.GoToRecord , , acPrevious Else DoCmd.GoToRecord , , acPrevious DoCmd.GoToRecord , , acNext End If قاعدة بيانات1.rar اعتذر على التاخر اخي وعزيزي الاستاذ صالح بهذا نعم تم التغلب تماما تقبل تحياتي
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.