صالح حمادي قام بنشر يوليو 19, 2016 قام بنشر يوليو 19, 2016 السلام عليكم أخي محمد أليس الملف الذي أرفقته لك هو المطلوب
محمدنجار قام بنشر يوليو 19, 2016 الكاتب قام بنشر يوليو 19, 2016 (معدل) 22 دقائق مضت, صالح حمادي said: السلام عليكم أخي محمد أليس الملف الذي أرفقته لك هو المطلوب وعليكم السلام اخي الكريم صالح حمادي نعم لقد قمت بدراسة الملف وكان رائعا فعلا وهو ما اردته بالضبط .... حقاُ أشكرك لماقمت به من مجهود ..... وشكري موصول الى الاخوة الكرام جعفر ورمهان ....رعاكم الله تم تعديل يوليو 19, 2016 بواسطه محمدنجار
محمدنجار قام بنشر يوليو 19, 2016 الكاتب قام بنشر يوليو 19, 2016 8 ساعات مضت, رمهان said: اخي محمد ارفق المثال الذي به خمس سجلات كما بالصورة الاخيرة ! معليش حنمشي معاك بالملي اخي رمهان أسعد الله أوقاتك هل تود حل السوال بسحرك الخاص لارفق لك المثال ..... ام تكتفي بالسحر الجزائري وحل الاخ صالح حمادي . 23 ساعات مضت, jjafferr said: أخوي محمد انت تعرف ان اسالتك غريبة فياريت تعطينا مثال واضح نقتدي به جعفر شكرا لك اخي الكريم جعفر ... ولمجهودك .... جزاك الله عني خيراً.
jjafferr قام بنشر يوليو 19, 2016 قام بنشر يوليو 19, 2016 السلام عليكم عملي كله معتمد على: 20 ساعات مضت, محمدنجار said: ما احتاجه بالضبط ..هذا المثال . 1. هذه السجلات الخمسة دائما تاتي مع بعض وبنفس الترتيب . 2. لن يكون اكثر من خمس سجلات ، فقط هناك ايظاً حاله ثانية من ثلاث سجلات حيث [ الثالث = (الاول - الثاني) ] 3. قيمة الرابع والخامس تعتمد على قيم الاول والثاني والثالث . 4. تخيل ... وصفة سحر عماني !! لتسهيل الامر ، اضفت الى النموذج زر: أ. اذا النموذج الفرعي فارغ ، فعند النقر على الزر فانه يضيف 5 سجلات فيه حسب ما وضحت انت ، ولا يعمل الزر اذا كان فيه سجلات ، ب. سواء استخدمت الزر او ادخلت البيانات يدويا بنفس الترتيب (نفس الوجبات ونفس الترتيب) ، فهنا يبدأ الكود في العمل ، مثلا: لا يسمح لك بإدخال سجل سادس ، لا يسمح لك تغيير قيمة حقل الكميات في السجل الرابع والخامس ، عند تغيير قيمة حقل الكميات في اي سجل ، فانه يقوم بعملية الحساب من جديد. هذا كود زر الاضافة: Private Sub cmd_add_5_Click() On Error GoTo err_cmd_add_5_Click Dim rst As DAO.Recordset Dim food_list 'save the Record of the Main Form, if not saved If Me.Dirty Then Me.Dirty = False Set rst = Me.main.Form.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount 'this should be a new set, make sure we don't have Records If RC <> 0 Then MsgBox "لا يمكن الاضافة ، توجد سجلات مسبقا" & vbCrLf & _ "Can't add on existing Records" GoTo Exit_cmd_add_5_Click End If food_list = Array("hamor", "zbedy", "nweby", "sheep", "tona") For i = 1 To 5 rst.AddNew rst!cid = Me.ID rst!food = food_list(i - 1) rst.Update Next i Exit_cmd_add_5_Click: rst.Close: Set rst = Nothing Exit Sub err_cmd_add_5_Click: If Err.Number = 3021 Then 'No Records Resume Next ElseIf Err.Number = 3201 Then 'No Record in main Form MsgBox "رجاء تعبئة بيانات النموذج الرئيسي اولا" & vbCrLf & _ "Please fill Main Form first" Resume Exit_cmd_add_5_Click Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub وهذا كود النموذج الفرعي: Private Sub food_AfterUpdate() 'do the calculations for Records 4 and 5 Call Check_Record End Sub Function Check_Record() On Error GoTo err_Check_Record ' If Me.NewRecord = True Then Exit Function If Me.Dirty Then Me.Dirty = False 'DoCmd.RunCommand acCmdSaveRecord Dim food_list Dim rst As DAO.Recordset 'if we have the same list, then DON'T ALLOW CHANGES TO QTY Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount food_list = Array("hamor", "zbedy", "nweby", "sheep", "tona") Counter = 0 For i = 1 To 5 If rst!food = food_list(i - 1) Then Counter = Counter + 1 End If rst.MoveNext Next i If Counter = 5 Then 'get the 4th and 5th Records values rst.MoveFirst Q1 = rst!qty rst.MoveNext Q2 = rst!qty RQ5 = Q2 / 5 rst.MoveNext Q3 = rst!qty RQ4 = Q1 - (Q3 + RQ5) rst.MoveNext rst.Edit rst!qty = RQ4 rst.Update rst.MoveNext rst.Edit rst!qty = RQ5 rst.Update End If Exit_Check_Record: rst.Close: Set rst = Nothing Exit Function err_Check_Record: If Err.Number = 3021 Then Resume Exit_Check_Record Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function Private Sub Form_Current() On Error GoTo err_Form_Current If Me.NewRecord = False Then Exit Sub Dim food_list Dim rst As DAO.Recordset 'if we have the same list, then DON'T ALLOW CHANGES TO QTY Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount food_list = Array("hamor", "zbedy", "nweby", "sheep", "tona") Counter = 0 For i = 1 To 5 If rst!food = food_list(i - 1) Then Counter = Counter + 1 End If rst.MoveNext Next i If Counter = 5 Then Cancel = True Me.Undo DoCmd.GoToRecord , , acPrevious MsgBox "لا يمكنك اضافة سجل جديد" & vbCrLf & _ "Can't add a new Record" Exit Sub End If Exit_Form_Current: rst.Close: Set rst = Nothing Exit Sub err_Form_Current: If Err.Number = 3021 Then Resume Exit_Form_Current Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub Private Sub qty_AfterUpdate() 'do the calculations for Records 4 and 5 Call Check_Record End Sub Private Sub qty_BeforeUpdate(Cancel As Integer) On Error GoTo err_qty_BeforeUpdate Dim food_list Dim rst As DAO.Recordset 'if we have the same list, then DON'T ALLOW CHANGES TO QTY Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount food_list = Array("hamor", "zbedy", "nweby", "sheep", "tona") Counter = 0 For i = 1 To 5 If rst!food = food_list(i - 1) Then Counter = Counter + 1 End If rst.MoveNext Next i If Counter = 5 Then If Me.food = "sheep" Or Me.food = "tona" Then Cancel = True Me.Undo MsgBox "لا يمكنك تغيير قيمة الكمية اذا كانت الوجبة " & vbCrLf & Me.food & vbCrLf & _ "Can't change Qty if food is " & Me.food Exit Sub End If End If Exit_qty_BeforeUpdate: rst.Close: Set rst = Nothing Exit Sub err_qty_BeforeUpdate: If Err.Number = 3021 Then Resume Exit_qty_BeforeUpdate Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 407.قيمة محسوبة.mdb.zip 2
محمدنجار قام بنشر يوليو 19, 2016 الكاتب قام بنشر يوليو 19, 2016 في 2016-07-18 at 11:43, jjafferr said: أخوي محمد انت تعرف ان اسالتك غريبة فياريت تعطينا مثال واضح نقتدي به جعفر اخي الكريم جعفر اسعد الله ايامك ولياليك ..... يا جعفر سيبني أعيَط ... سيبني أعيَط ..... هذا هو الجنون العماني .... حيث من صفات الساحر ..قراءة افكار الاخرين وها انت تجسد ذلك ... لاني كنت افكر بكيفية ادراج هذه السجلات ( بصفقة واحدة) اقصد بكبسة زر ....وما اسرع الاستجابة وهذا الكود الذي طالما حلمت به وطلبته في مواضيع سابقة .احسنت ..أحسنت .. أحسنت
jjafferr قام بنشر يوليو 20, 2016 قام بنشر يوليو 20, 2016 وعليكم السلام هاي احنا ما طلّعنا الزار ولا عزمنا ولا عملنا بخور ولبان وحرمل ولا استعنّا بالشيخ الحل كان بسبب شرحك ومثالك الواضح (مب شرحك الاول ) ، المشكلة تصير لما السائل يسأل بكلمتين ويرفق برنامجه ، وبدون مثال ، وبدون ما يقول اي نموذج / جدول يتكلم عنه ، ولا حتى اي حقل ، بل بعض الاوقات يطلب الجواب بصيغة معينة (يعني هو يكون الـ Navigator وانت السائق ، هو يوجّهك في الاتجاه الذي يريد) ، وبهذه الطريقة ياتوصل الى طريق مسدود او الى طريق وعر حياك الله جعفر
محمدنجار قام بنشر يوليو 20, 2016 الكاتب قام بنشر يوليو 20, 2016 3 دقائق مضت, jjafferr said: وعليكم السلام هاي احنا ما طلّعنا الزار ولا عزمنا ولا عملنا بخور ولبان وحرمل ولا استعنّا بالشيخ مرحبا اخي الكريم .... انا قتلت حالي من العيَاط وانت لم تعمل شيئ مما سبق ..... شو ممكن يصير لو ؟؟ هههههه
محمدنجار قام بنشر يوليو 20, 2016 الكاتب قام بنشر يوليو 20, 2016 (معدل) 26 دقائق مضت, jjafferr said: الحل كان بسبب شرحك ومثالك الواضح (من شرحك الاول ) ، المشكلة تصير لما السائل يسأل بكلمتين ويرفق برنامجه ، وبدون مثال ، وبدون ما يقول اي نموذج / جدول يتكلم عنه ، ولا حتى اي حقل ، بل بعض الاوقات يطلب الجواب بصيغة معينة (يعني هو يكون الـ Navigator وانت السائق ، هو يوجهك فالاتجاه الذي يريد) ، وبهذه الطريقة ياتوصل الى طريق مسدود او الى طريق وعر هذا صحيح اخي .... نحن , اقصد انا وبعض الاخوة المبتدئين في المنتدى لا نفرق بين الفكرة التي تدور بعقولنا وحقيقة تطبيقها على الواقع كذلك ليس لدينا ما يكفي من خبرة لنستطيع ايصال السؤال بكل تفاصيله البرمجية واحتمالاته اليكم ... وهذا طبعا مضيعة لوقتكم والجهد ايظاً , مع اننا نتعلم منكم كثيرا في كل سؤال ورد جزاكم الله خيرا . (( لكنكم قومُ إبتلاكم الله بنا )) .. فَصبرُ حميل .. والله المستعان ... تحياتي لك ولكل الاخوه اعمدة واركان المنتدى ... . تم تعديل يوليو 20, 2016 بواسطه محمدنجار
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.