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

الردود الموصى بها

قام بنشر

السلام عليكم ورحمة الله وبركاته

اخوني الكرام

استفساري هو كود للبحث والتأكد من عدم تكرار صنف داخل سجلات النموذج الفرعي قبل الحفظ

بمعني عند الضغط علي رز الحفظ يقوم بالبحث فى سجلات النموذج الفرعي وعند وجود صنف مكرر يقوم بتنبيهي بذلك وبالتالـي لا يقبل الحفظ

وكان لي فى السابق موضوع مشابه بخصوص التاكد من عدم وجود حقل كمية فارغ بسجلات النموذج الفرعي

وافادني استاذنا ابو خليل جزاه الله كل خير  عن الكود وهو كالتالي

     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
 

مرفق صورة توضيحية  والقاعدة .

ولكم جزيل الشكر .,,,

 

 

Capture.JPG

KFC.rar

قام بنشر

وعليكم السلام :smile:

 

انا اعتقد ان الطريقة الصحيحة هي ،

  1. عند إضافة صنف ،
  2. الكود يجب ان يتأكد من وجود الصنف على القائمة او لا:
  • اذا الصنف غير موجود ، فيتم إضافة الصنف كالعادة ،
  • اذا كان الصنف موجود ، فيجب الذهاب الى ذلك السجل ، واجراء العملية عليه (سواء + او -) مثلا :smile:

 

جعفر

  • Like 1
قام بنشر (معدل)

استاذنا الغالي جعفر

لمحة جيدة وفي محلها وقد ناقشتها من قبل مع استاذي واخونا رمهااان  جزاه الله كل خير ...وقد توصلنا للنتيجة التي تفضلت واشرت اليها .

ولكن هذا الموضوع مختلف 

وطلبي ما تفضلت وذكرته اعلاه  مع تغيير بسيط وهو :

عند اضافة صنف يقوم الكود بالبحث في سجلات النموذج الفرعي واذا وجد الصنف موجود يعطي رساله تنبيه ثم ينتقل الي هذا السجل او الصنف المكرر

ملحوظة : النظام يعمل بطريقة الشاشة اللمس

وجزاك الله كل خير استاذي الكريم

تم تعديل بواسطه wael_rafat
قام بنشر

حيا الله الجميع

اخ وائل ممكن تقول اين الاختلاف مع الموضوع التالي:

http://www.officena.net/ib/topic/61544-اضافة-صنف-الى-النموذج-الفرعي-من-خلال-رز-امر-بالنموذج-الرئيسي/?page=2

هل فقط الاختلاف التنبيه فقط : اذا كان هو فاعتقد التعديل سهل جدا وعلى الموضوع السابق !

كما انه اليك هذا الموضوع لنفس الهدف وعليك محاولة التطبيق :

http://www.officena.net/ib/topic/63159-الذهاب-لسجل-موجود-عند-الاضافة/

بالتوفيق

 

قام بنشر

حيا الله الجميع

اخ وائل ممكن تقول اين الاختلاف مع الموضوع التالي:

http://www.officena.net/ib/topic/61544-اضافة-صنف-الى-النموذج-الفرعي-من-خلال-رز-امر-بالنموذج-الرئيسي/?page=2

هل فقط الاختلاف التنبيه فقط : اذا كان هو فاعتقد التعديل سهل جدا وعلى الموضوع السابق !

 

نعم استاذي الفاضل انا اريد فقط التنبيه بوجود الصنف 

وعليه تكون الصورة كالتالي:-

 عند الضغط على الصنف  هناك امرين :

1 - فى حالة عدم وجود الصنف بالسجلات يقوم بالاضافة العادية بغض النظر عن العدد ( 1 - 2 - 3..... الخ ) ... ( وهذا مطبق وموجود حاليا بالمرفق ) .

2- في حالة وجود الصنف بالسجلات يقوم فقط باعلامي او تنبيهي بوجود هذا الصنف ( من خلال رسالة تنبيهية بالاستمرار او الانتقال الى هذا الصنف المضاف مسبقا للتعديل عليه )

اتمني تكون الصورة واضحة ... وجزاك الله كل خير  استاذنا الجميل رمهااان . 

 

 

 

قام بنشر

2- في حالة وجود الصنف بالسجلات يقوم فقط باعلامي او تنبيهي بوجود هذا الصنف ( من خلال رسالة تنبيهية بالاستمرار او الانتقال الى هذا الصنف المضاف مسبقا للتعديل عليه )

بالاستمرار : ماذا تقصد هنا الاستمرار الى اين ! لم افهمه خاصة ان الخيار الاخر هو الانتقال الى الصنف للتعديل عليه !  ام انك تقصد عدم الاستمرار ولغاء الامر ؟!!

تحياتي

قام بنشر

تفضل ولعله ماطلبت لانه بصراحة لي تحفظ على طريقة الكود لديك ولكنك اخ وائل مصر عليه !

كما يمكنك اخذ فكرة الاخ حسين هنا

http://www.officena.net/ib/topic/64121-ادراج-الكميه-في-مربع-حوار-استعلام-من-خلال-لوحة-ارقام-مصممه-داخل-النموذج/

خصوصا انه يبدو اخذ فكرة الزيادة والنقصان من برنامجك !:wink2:

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

بالتوفيق

 

قام بنشر

استاذي الغالي رمهان

سامحني غلبتك معي ... ولكن الكود بهذا الشكل اختلف تماما في طريقة الاداء

واعتقد ان الطريقة الاولي هي الافضل 

وهي كود عند الضغط على زر الحفظ وعند وجود تكرار رقم الصنف فى السجلات يقوم بتنبيهي فقط  للعلم

نفس فكرة الكود لتنبيهي على وجود كميات فارغة  وهو

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

وسامحني مرة اخري  وبارك الله فيك

 

قام بنشر

نعم استاذي الفاضل انا اريد فقط التنبيه بوجود الصنف 

وعليه تكون الصورة كالتالي:-

 عند الضغط على الصنف  هناك امرين :

1 - فى حالة عدم وجود الصنف بالسجلات يقوم بالاضافة العادية بغض النظر عن العدد ( 1 - 2 - 3..... الخ ) ... ( وهذا مطبق وموجود حاليا بالمرفق ) .

2- في حالة وجود الصنف بالسجلات يقوم فقط باعلامي او تنبيهي بوجود هذا الصنف ( من خلال رسالة تنبيهية بالاستمرار او الانتقال الى هذا الصنف المضاف مسبقا للتعديل عليه )

اتمني تكون الصورة واضحة ... وجزاك الله كل خير  استاذنا الجميل رمهااان . 

 

على قولة الاستاذ ابا خليل : هذه ماخطت اناملك !

ولي عودة معك ! مشغول الان !

تحياتي

قام بنشر

أخي وائل :smile:

خلينا نعطي الاستاذ رمهان استراحة ، والله يخليك جرب المرفق :smile:

 

الكود التالي هو اللي يقوم بالعمل:

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

قام بنشر

مشكور اخوي جعفر واتوقع ان الاخ وائل عايز الشغل على زر الحفظ وهنا انا حسولف معاه شويه :

اخ وائل : في نص المشاركة الاصلية طلبك في زر الحفظ ولكن مع النقاش تحول الى الضغط على الازرار وكما اشرت لك سابقا ! وعالعموم خلينا في الزبدة :

انت تريد ان التشييك عند زر الحفظ ؟ في برنامجك الحالي عند النقر على سطر جديد خالي فانه يضيف الصنف كسطرا جديدا وبكمية 1 ولا يزيد سجل سابق ! تمام ! اتفقنا ياباشا ؟! طيب لو حصل ان تم تكرار هذه العمليه ثلاث مرات بمعنى اصبح لدينا احد الاصناف مكرر في ثلاث سجلات وبكميات مختلفة !

هنا ياترى ماهو التنبيه الذي سيظهر عند النقر على زر حفظ ؟ تريده يقول لك هناك 3 سجلات ؟ واين يذهب : هل يذهب لاخرهم ام اولهم ام ماذا ؟

تحياتي

قام بنشر (معدل)

استاذ جعفر ... مبدع دائما كالعادة وبارك الله فيك وزادك الله من علمة

استاذ رمهان  ... انت صح 100%   اعتذر  عن الخطأ  حيث انني لم اراجع الفكرة جيدا

ولكنني لما وجدت انها ستؤثر على الكود الاساسي للبرنامج حاولت اني اطبقها بطريقة اخري بمكان اخر

لكن كما تفضلت انت والاستاذ جعفر .... ان المكان الصحيح هو زر الصنف نفسة  ولا تصلح عند زر الحفظ

ولكن المشكلة هو ظهور رسالة التكرار  عند زيادة الكمية  وهذا ما لا اريدة

والذي اريدة هو ظهور الرسالة عند اضافة  الصنف نفسة  مرة اخري  

مرة اخري سامحني على الاطالة  وبارك الله فيك وزادك الله من علمة

ولا تنسي ان هذه الطريقة توصلت اليها بفضل الله ثم  توجيهك وجهدك

تم تعديل بواسطه wael_rafat
قام بنشر (معدل)

ولا تنسي ان هذه الطريقة توصلت اليها بفضل الله ثم  توجيهك وجهدك

بالعكس اخي وائل انا لي تحفظ على الاكواد ! ولكن حاولت ان اعدل وبالحفاظ على السيناريو تبعك حيث انك لاتريد التغيير كثيرا على السيناريو الحالي ! وهذا ما يزيد الامر صعوبة ايجاد الاجابة المناسبة بدون التغير على الاكواد والتصميم !

الآن هل تمت الاجابة وحسب تعديل الاستاذ جعفر ؟

بالتوفيق

 

تم تعديل بواسطه رمهان
قام بنشر

للاسف استاذ رمهان.... لم يتم التوصل الي ما اريده كما اسلفت

 وهو ظهور رسالة التكرار عند الضغط علي الصنف لزيادة الكمية  وهذا ما لا اريدة

والذي اريدة هو ظهور الرسالة فقط عند اضافة  الصنف نفسة  مرة اخري

على سبيل المثال :

عند الضغط على الصنف زبيدي 1-2-3-...... الخ  ثم الانتقال الي صنف اخر

وعند الضغط مرة اخري على الصنف زبيدي...... ( هنا تظهر رسالة التنــبيه بالتكرار )

وبارك الله فيك ما تقصر ، ومشكور على المتابعة

 

 

 

New.rar

قام بنشر (معدل)

السلام عليكم

للاسف استاذ رمهان.... لم يتم التوصل الي ما اريده كما اسلفت

1. وهو ظهور رسالة التكرار عند الضغط علي الصنف لزيادة الكمية  وهذا ما لا اريدة

2. والذي اريدة هو ظهور الرسالة فقط عند اضافة  الصنف نفسة  مرة اخري

على سبيل المثال :

عند الضغط على الصنف زبيدي 1-2-3-...... الخ  ثم الانتقال الي صنف اخر

وعند الضغط مرة اخري على الصنف زبيدي...... ( هنا تظهر رسالة التنــبيه بالتكرار )

وبارك الله فيك ما تقصر ، ومشكور على المتابعة

.

1. والكود لا يفعل هذا الشئ ، مثل طلبك ، فالكود لا يعمل على ازرار + و - ،

2. وهذا الذي يفعله البرنامج بالضبط ، مثل طلبك ، فالكود يعمل على ازرار الاصناف فقط.

 

وين الخطأ اذا؟

 

جعفر

 

تم تعديل بواسطه jjafferr
قام بنشر

استاذي الغالي جعفر بارك الله في عمرك

من الواضح انني لم استطع توصيل المطلوب كما يجب

لو تسمحلي ناخذ مثال . ادخال فاتورة جديدة  اي ان السجلات فاغة   كويس

اريد ان ادخل من الصنف زبيدي  العدد  5  ماذا افعل ?

اقوم بالضغط على زر الصنف زبيدي  ( 5 ضغطات)  كويس  .. كدا لدينا في الفاتورة  الصتف زبيدي عدد 5

ثم تركت زر الصنف زبيدي وانتقلت الي زر صنف اخر  وادخلت العدد بنفس الطريقة السابقة . كويس 

كدا لدينا في الفاتورة الصنف زبيدي عدد 5  وايضا الصنف الاخر  بالعدد اياكان  كويس

ثم رجعت بالضغط مرة اخري علي زر الصنف زبيدي .......هناااااا تظهر رسالة التكرار 

ولكن في السابق كانت الرساله تظهر بعد الضغطة الاولي علي زر الصنف .

اي ان الكود يقوم بالبحث عن كود الصنف نفسه وهل موجود في الفاتورة  من عدمه بصرف النظر عن كميته

اتمني ان تكون الصورة اتضحت....  وجزاء الله كل خير

 

قام بنشر

معلش أخي وائل ، انا دايخ ومخي ما يستوعب اشياء جديدة اليوم (الكوتا حقة مخي قفلت خلاص :smile:)

مادام الاستاذ رمهان ماشي معاك ، فعلى بركة الله :smile:

 

جعفر

قام بنشر

مرحبا اخ وائل

جربت البرنامج الاخير new    ومش شايف اي مشكلة : انتبه هل تعلم ان هناك فرق عندما تحدد سجل مدخل سابقا ثم الضغط على الصنف وهناك عندما تختار سجلا جديدا فارغا ثم تختارالصنف !!

ثم رجعت بالضغط مرة اخري علي زر الصنف زبيدي .......هناااااا تظهر رسالة التكرار 

وهنا طيب تريد ماذا ؟ لاتخرج الرسالة اذا حصل اختيار صنف جديد بعد اختيار الصنف الاول ؟:wub:

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information