wael_rafat قام بنشر أكتوبر 6, 2015 قام بنشر أكتوبر 6, 2015 السلام عليكم ورحمة الله وبركاته اخوني الكرام استفساري هو كود للبحث والتأكد من عدم تكرار صنف داخل سجلات النموذج الفرعي قبل الحفظ بمعني عند الضغط علي رز الحفظ يقوم بالبحث فى سجلات النموذج الفرعي وعند وجود صنف مكرر يقوم بتنبيهي بذلك وبالتالـي لا يقبل الحفظ وكان لي فى السابق موضوع مشابه بخصوص التاكد من عدم وجود حقل كمية فارغ بسجلات النموذج الفرعي وافادني استاذنا ابو خليل جزاه الله كل خير عن الكود وهو كالتالي Dim i As Integer Dim rs As Recordset Set rs = Me.F_ordersubform.Form.RecordsetClone rs.MoveLast R = rs.RecordCount rs.MoveFirst For i = 1 To R If IsNull(rs!Qty) Then MsgBox " íæÌÏ ÇÕäÇÝ ÈÇáÝÇÊæÑÉ ÈÏæä ßãíÉ ... ÇÏÎá ÇáßãíÉ ÇæáÇ", vbCritical, " ÈÏæä ßãíÉ " Exit Sub End If rs.MoveNext Next rs.close Set rs = Nothing مرفق صورة توضيحية والقاعدة . ولكم جزيل الشكر .,,, KFC.rar
jjafferr قام بنشر أكتوبر 6, 2015 قام بنشر أكتوبر 6, 2015 وعليكم السلام انا اعتقد ان الطريقة الصحيحة هي ، عند إضافة صنف ، الكود يجب ان يتأكد من وجود الصنف على القائمة او لا: اذا الصنف غير موجود ، فيتم إضافة الصنف كالعادة ، اذا كان الصنف موجود ، فيجب الذهاب الى ذلك السجل ، واجراء العملية عليه (سواء + او -) مثلا جعفر 1
wael_rafat قام بنشر أكتوبر 6, 2015 الكاتب قام بنشر أكتوبر 6, 2015 (معدل) استاذنا الغالي جعفر لمحة جيدة وفي محلها وقد ناقشتها من قبل مع استاذي واخونا رمهااان جزاه الله كل خير ...وقد توصلنا للنتيجة التي تفضلت واشرت اليها . ولكن هذا الموضوع مختلف وطلبي ما تفضلت وذكرته اعلاه مع تغيير بسيط وهو : عند اضافة صنف يقوم الكود بالبحث في سجلات النموذج الفرعي واذا وجد الصنف موجود يعطي رساله تنبيه ثم ينتقل الي هذا السجل او الصنف المكرر ملحوظة : النظام يعمل بطريقة الشاشة اللمس وجزاك الله كل خير استاذي الكريم تم تعديل أكتوبر 6, 2015 بواسطه wael_rafat
رمهان قام بنشر أكتوبر 7, 2015 قام بنشر أكتوبر 7, 2015 حيا الله الجميع اخ وائل ممكن تقول اين الاختلاف مع الموضوع التالي: http://www.officena.net/ib/topic/61544-اضافة-صنف-الى-النموذج-الفرعي-من-خلال-رز-امر-بالنموذج-الرئيسي/?page=2 هل فقط الاختلاف التنبيه فقط : اذا كان هو فاعتقد التعديل سهل جدا وعلى الموضوع السابق ! كما انه اليك هذا الموضوع لنفس الهدف وعليك محاولة التطبيق : http://www.officena.net/ib/topic/63159-الذهاب-لسجل-موجود-عند-الاضافة/ بالتوفيق
wael_rafat قام بنشر أكتوبر 7, 2015 الكاتب قام بنشر أكتوبر 7, 2015 حيا الله الجميع اخ وائل ممكن تقول اين الاختلاف مع الموضوع التالي: http://www.officena.net/ib/topic/61544-اضافة-صنف-الى-النموذج-الفرعي-من-خلال-رز-امر-بالنموذج-الرئيسي/?page=2 هل فقط الاختلاف التنبيه فقط : اذا كان هو فاعتقد التعديل سهل جدا وعلى الموضوع السابق ! نعم استاذي الفاضل انا اريد فقط التنبيه بوجود الصنف وعليه تكون الصورة كالتالي:- عند الضغط على الصنف هناك امرين : 1 - فى حالة عدم وجود الصنف بالسجلات يقوم بالاضافة العادية بغض النظر عن العدد ( 1 - 2 - 3..... الخ ) ... ( وهذا مطبق وموجود حاليا بالمرفق ) . 2- في حالة وجود الصنف بالسجلات يقوم فقط باعلامي او تنبيهي بوجود هذا الصنف ( من خلال رسالة تنبيهية بالاستمرار او الانتقال الى هذا الصنف المضاف مسبقا للتعديل عليه ) اتمني تكون الصورة واضحة ... وجزاك الله كل خير استاذنا الجميل رمهااان .
رمهان قام بنشر أكتوبر 8, 2015 قام بنشر أكتوبر 8, 2015 2- في حالة وجود الصنف بالسجلات يقوم فقط باعلامي او تنبيهي بوجود هذا الصنف ( من خلال رسالة تنبيهية بالاستمرار او الانتقال الى هذا الصنف المضاف مسبقا للتعديل عليه ) بالاستمرار : ماذا تقصد هنا الاستمرار الى اين ! لم افهمه خاصة ان الخيار الاخر هو الانتقال الى الصنف للتعديل عليه ! ام انك تقصد عدم الاستمرار ولغاء الامر ؟!! تحياتي
wael_rafat قام بنشر أكتوبر 8, 2015 الكاتب قام بنشر أكتوبر 8, 2015 استاذي رمهان اقصد بالاستمرار... اي تجاهل التكرار واضافة الصنف مرة اخري . بارك الله فيك
رمهان قام بنشر أكتوبر 11, 2015 قام بنشر أكتوبر 11, 2015 تفضل ولعله ماطلبت لانه بصراحة لي تحفظ على طريقة الكود لديك ولكنك اخ وائل مصر عليه ! كما يمكنك اخذ فكرة الاخ حسين هنا http://www.officena.net/ib/topic/64121-ادراج-الكميه-في-مربع-حوار-استعلام-من-خلال-لوحة-ارقام-مصممه-داخل-النموذج/ خصوصا انه يبدو اخذ فكرة الزيادة والنقصان من برنامجك ! Sub mm(xx) Set rs = Me.F_ordersubform.Form.RecordsetClone rs.FindFirst "itemcode='" & xx & "'" If Not rs.NoMatch Then If MsgBox("الصنف موجود.. الاستمرار؟", vbYesNo) = vbYes Then [Forms]![f_order]![F_ordersubform].SetFocus DoCmd.GoToRecord , , acNewRec End If End If If IsNull([Forms]![f_order]![F_ordersubform]![itemcode]) Then [Forms]![f_order]![F_ordersubform]![itemcode] = xx DoCmd.Beep [Forms]![f_order]![F_ordersubform].SetFocus DoCmd.GoToControl "itemcode" DoCmd.GoToControl "qty" [F_ordersubform]![Qty].SetFocus [Forms]![f_order]![F_ordersubform]![price] = DLookup("item_sale", "tmenu", "itemcode='" & xx & "'") [Forms]![f_order]![F_ordersubform]![Qty] = 1 ElseIf ([Forms]![f_order]![F_ordersubform]![itemcode]) = xx Then [Forms]![f_order]![F_ordersubform]![Qty] = Nz([Forms]![f_order]![F_ordersubform]![Qty]) + 1 ElseIf ([Forms]![f_order]![F_ordersubform]![itemcode]) <> xx Then [Forms]![f_order]![F_ordersubform].SetFocus DoCmd.GoToRecord , , acNewRec [Forms]![f_order]![F_ordersubform]![itemcode] = xx DoCmd.Beep [Forms]![f_order]![F_ordersubform].SetFocus DoCmd.GoToControl "itemcode" DoCmd.GoToControl "qty" [F_ordersubform]![Qty].SetFocus [Forms]![f_order]![F_ordersubform]![price] = DLookup("item_sale", "tmenu", "itemcode='" & xx & "'") [Forms]![f_order]![F_ordersubform]![Qty] = 1 Else [Forms]![f_order]![F_ordersubform]![Qty].Requery End If Me.F_ordersubform.SetFocus DoCmd.RunCommand acCmdSaveRecord ' DoCmd.GoToRecord , , acLast ' Me.F_ordersubform!Qty.SetFocus End Sub بالتوفيق
wael_rafat قام بنشر أكتوبر 11, 2015 الكاتب قام بنشر أكتوبر 11, 2015 استاذي الغالي رمهان سامحني غلبتك معي ... ولكن الكود بهذا الشكل اختلف تماما في طريقة الاداء واعتقد ان الطريقة الاولي هي الافضل وهي كود عند الضغط على زر الحفظ وعند وجود تكرار رقم الصنف فى السجلات يقوم بتنبيهي فقط للعلم نفس فكرة الكود لتنبيهي على وجود كميات فارغة وهو Dim i As Integer Dim rs As Recordset Set rs = Me.F_ordersubform.Form.RecordsetClone rs.MoveLast R = rs.RecordCount rs.MoveFirst For i = 1 To R If IsNull(rs!Qty) Then MsgBox " íæÌÏ ÇÕäÇÝ ÈÇáÝÇÊæÑÉ ÈÏæä ßãíÉ ... ÇÏÎá ÇáßãíÉ ÇæáÇ", vbCritical, " ÈÏæä ßãíÉ " Exit Sub End If rs.MoveNext Next rs.close Set rs = Nothing وسامحني مرة اخري وبارك الله فيك
رمهان قام بنشر أكتوبر 11, 2015 قام بنشر أكتوبر 11, 2015 نعم استاذي الفاضل انا اريد فقط التنبيه بوجود الصنف وعليه تكون الصورة كالتالي:- عند الضغط على الصنف هناك امرين : 1 - فى حالة عدم وجود الصنف بالسجلات يقوم بالاضافة العادية بغض النظر عن العدد ( 1 - 2 - 3..... الخ ) ... ( وهذا مطبق وموجود حاليا بالمرفق ) . 2- في حالة وجود الصنف بالسجلات يقوم فقط باعلامي او تنبيهي بوجود هذا الصنف ( من خلال رسالة تنبيهية بالاستمرار او الانتقال الى هذا الصنف المضاف مسبقا للتعديل عليه ) اتمني تكون الصورة واضحة ... وجزاك الله كل خير استاذنا الجميل رمهااان . على قولة الاستاذ ابا خليل : هذه ماخطت اناملك ! ولي عودة معك ! مشغول الان ! تحياتي
jjafferr قام بنشر أكتوبر 11, 2015 قام بنشر أكتوبر 11, 2015 أخي وائل خلينا نعطي الاستاذ رمهان استراحة ، والله يخليك جرب المرفق الكود التالي هو اللي يقوم بالعمل: Sub mm(xx) Dim rs As DAO.Recordset Set rs = Me.F_ordersubform.Form.RecordsetClone rs.FindFirst "itemcode='" & xx & "'" 'check if this item is already on the list If rs.NoMatch = False Then Dim Msg, Style, Title, Help, Ctxt, Response, MyString Msg = "هذا الصنف موجود على قائمة الزبون ، هل انتقل الى الصنف الموجود" & vbCrLf & _ "This Item already Exists on the list, should we go there" & vbCrLf & vbCrLf & vbCrLf & _ "Yes = انتقل الى الصنف" & vbCrLf & _ "No = اضف الصنف مرة اخرى" Style = vbYesNoCancel + vbCritical + vbDefaultButton3 ' Define buttons. Title = "الصنف مكرر ، ماذا تريد ان تعمل" ' Define title. Response = MsgBox(Msg, Style, Title) If Response = vbYes Then ' User chose Yes. Me.F_ordersubform.Form.Bookmark = rs.Bookmark 'Me.F_ordersubform!Qty.SetFocus Exit Sub End If End If 'NoMatch جعفر 222.1.KFC.mdb.zip
رمهان قام بنشر أكتوبر 11, 2015 قام بنشر أكتوبر 11, 2015 مشكور اخوي جعفر واتوقع ان الاخ وائل عايز الشغل على زر الحفظ وهنا انا حسولف معاه شويه : اخ وائل : في نص المشاركة الاصلية طلبك في زر الحفظ ولكن مع النقاش تحول الى الضغط على الازرار وكما اشرت لك سابقا ! وعالعموم خلينا في الزبدة : انت تريد ان التشييك عند زر الحفظ ؟ في برنامجك الحالي عند النقر على سطر جديد خالي فانه يضيف الصنف كسطرا جديدا وبكمية 1 ولا يزيد سجل سابق ! تمام ! اتفقنا ياباشا ؟! طيب لو حصل ان تم تكرار هذه العمليه ثلاث مرات بمعنى اصبح لدينا احد الاصناف مكرر في ثلاث سجلات وبكميات مختلفة ! هنا ياترى ماهو التنبيه الذي سيظهر عند النقر على زر حفظ ؟ تريده يقول لك هناك 3 سجلات ؟ واين يذهب : هل يذهب لاخرهم ام اولهم ام ماذا ؟ تحياتي
wael_rafat قام بنشر أكتوبر 12, 2015 الكاتب قام بنشر أكتوبر 12, 2015 (معدل) استاذ جعفر ... مبدع دائما كالعادة وبارك الله فيك وزادك الله من علمة استاذ رمهان ... انت صح 100% اعتذر عن الخطأ حيث انني لم اراجع الفكرة جيدا ولكنني لما وجدت انها ستؤثر على الكود الاساسي للبرنامج حاولت اني اطبقها بطريقة اخري بمكان اخر لكن كما تفضلت انت والاستاذ جعفر .... ان المكان الصحيح هو زر الصنف نفسة ولا تصلح عند زر الحفظ ولكن المشكلة هو ظهور رسالة التكرار عند زيادة الكمية وهذا ما لا اريدة والذي اريدة هو ظهور الرسالة عند اضافة الصنف نفسة مرة اخري مرة اخري سامحني على الاطالة وبارك الله فيك وزادك الله من علمة ولا تنسي ان هذه الطريقة توصلت اليها بفضل الله ثم توجيهك وجهدك تم تعديل أكتوبر 12, 2015 بواسطه wael_rafat
رمهان قام بنشر أكتوبر 12, 2015 قام بنشر أكتوبر 12, 2015 (معدل) ولا تنسي ان هذه الطريقة توصلت اليها بفضل الله ثم توجيهك وجهدك بالعكس اخي وائل انا لي تحفظ على الاكواد ! ولكن حاولت ان اعدل وبالحفاظ على السيناريو تبعك حيث انك لاتريد التغيير كثيرا على السيناريو الحالي ! وهذا ما يزيد الامر صعوبة ايجاد الاجابة المناسبة بدون التغير على الاكواد والتصميم ! الآن هل تمت الاجابة وحسب تعديل الاستاذ جعفر ؟ بالتوفيق تم تعديل أكتوبر 12, 2015 بواسطه رمهان
wael_rafat قام بنشر أكتوبر 12, 2015 الكاتب قام بنشر أكتوبر 12, 2015 للاسف استاذ رمهان.... لم يتم التوصل الي ما اريده كما اسلفت وهو ظهور رسالة التكرار عند الضغط علي الصنف لزيادة الكمية وهذا ما لا اريدة والذي اريدة هو ظهور الرسالة فقط عند اضافة الصنف نفسة مرة اخري على سبيل المثال : عند الضغط على الصنف زبيدي 1-2-3-...... الخ ثم الانتقال الي صنف اخر وعند الضغط مرة اخري على الصنف زبيدي...... ( هنا تظهر رسالة التنــبيه بالتكرار ) وبارك الله فيك ما تقصر ، ومشكور على المتابعة New.rar
jjafferr قام بنشر أكتوبر 12, 2015 قام بنشر أكتوبر 12, 2015 (معدل) السلام عليكم للاسف استاذ رمهان.... لم يتم التوصل الي ما اريده كما اسلفت 1. وهو ظهور رسالة التكرار عند الضغط علي الصنف لزيادة الكمية وهذا ما لا اريدة 2. والذي اريدة هو ظهور الرسالة فقط عند اضافة الصنف نفسة مرة اخري على سبيل المثال : عند الضغط على الصنف زبيدي 1-2-3-...... الخ ثم الانتقال الي صنف اخر وعند الضغط مرة اخري على الصنف زبيدي...... ( هنا تظهر رسالة التنــبيه بالتكرار ) وبارك الله فيك ما تقصر ، ومشكور على المتابعة . 1. والكود لا يفعل هذا الشئ ، مثل طلبك ، فالكود لا يعمل على ازرار + و - ، 2. وهذا الذي يفعله البرنامج بالضبط ، مثل طلبك ، فالكود يعمل على ازرار الاصناف فقط. وين الخطأ اذا؟ جعفر تم تعديل أكتوبر 12, 2015 بواسطه jjafferr
wael_rafat قام بنشر أكتوبر 12, 2015 الكاتب قام بنشر أكتوبر 12, 2015 استاذي الغالي جعفر بارك الله في عمرك من الواضح انني لم استطع توصيل المطلوب كما يجب لو تسمحلي ناخذ مثال . ادخال فاتورة جديدة اي ان السجلات فاغة كويس اريد ان ادخل من الصنف زبيدي العدد 5 ماذا افعل ? اقوم بالضغط على زر الصنف زبيدي ( 5 ضغطات) كويس .. كدا لدينا في الفاتورة الصتف زبيدي عدد 5 ثم تركت زر الصنف زبيدي وانتقلت الي زر صنف اخر وادخلت العدد بنفس الطريقة السابقة . كويس كدا لدينا في الفاتورة الصنف زبيدي عدد 5 وايضا الصنف الاخر بالعدد اياكان كويس ثم رجعت بالضغط مرة اخري علي زر الصنف زبيدي .......هناااااا تظهر رسالة التكرار ولكن في السابق كانت الرساله تظهر بعد الضغطة الاولي علي زر الصنف . اي ان الكود يقوم بالبحث عن كود الصنف نفسه وهل موجود في الفاتورة من عدمه بصرف النظر عن كميته اتمني ان تكون الصورة اتضحت.... وجزاء الله كل خير
jjafferr قام بنشر أكتوبر 12, 2015 قام بنشر أكتوبر 12, 2015 معلش أخي وائل ، انا دايخ ومخي ما يستوعب اشياء جديدة اليوم (الكوتا حقة مخي قفلت خلاص ) مادام الاستاذ رمهان ماشي معاك ، فعلى بركة الله جعفر
wael_rafat قام بنشر أكتوبر 13, 2015 الكاتب قام بنشر أكتوبر 13, 2015 هههههه معلش كان الله في عونك استاذي الجميل جعفر وبميزان حسناتك ان شاء الله
رمهان قام بنشر أكتوبر 13, 2015 قام بنشر أكتوبر 13, 2015 مرحبا اخ وائل جربت البرنامج الاخير new ومش شايف اي مشكلة : انتبه هل تعلم ان هناك فرق عندما تحدد سجل مدخل سابقا ثم الضغط على الصنف وهناك عندما تختار سجلا جديدا فارغا ثم تختارالصنف !! ثم رجعت بالضغط مرة اخري علي زر الصنف زبيدي .......هناااااا تظهر رسالة التكرار وهنا طيب تريد ماذا ؟ لاتخرج الرسالة اذا حصل اختيار صنف جديد بعد اختيار الصنف الاول ؟
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.