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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

كل منشورات العضو jjafferr

  1. لم الحظ ان القيم عندك كانت نص !! استخدم هذا السطر If Val(Me.n9) > Val(Me.Price_Sales) Then بدلا عن If Me.n9 > Me.Price_Sales Then جعفر
  2. في النموذج الجدولي ، لا تستطيع ان تلون حقل ، إلا بإستعمال التنسيق الشرطي ، فالجواب ، لا يمكن انت حاول تلوت الحقل والنموذج بوضع التصميم ، واخبرنا اذا استطعت جعفر
  3. وعليكم السلام اسنخدم هذا الكود في حدث "بعد التحديث" لحقل n9 Private Sub n9_AfterUpdate() 'Dim i, x As Integer 'x = Me.Price_Sales 'i = Me.n9 'If i > x Then 'MsgBox ("السعر اكبر ") 'Me.Rajmsanf.SetFocus 'Me.n9.SetFocus 'Exit Sub 'End If If Me.n9 > Me.Price_Sales Then MsgBox ("السعر اكبر ") Me.Rajmsanf.SetFocus Me.n9.SetFocus Me.n9 = Me.Price_Sales End If End Sub جعفر
  4. 1. الخطأ لم يكن في Expression فقط ، وانما انت وضعت "...." حول الشرط ، اي لم يكن عندك شرط ، فالنتيجة كانت دائما نفسها: . 2. حدث التقرير يختلف عن حدث النموذج ، يجب ان تضع الحدث في القسم الصحيح: أ. يجب ان تعرف في اي قسم يوجد الحقل الذي تريد عمل كود له ، ب. في حالتنا ، نرى ان القسم هو Detail ، . ج. 99.99% من الوقت نستخدم حدث "التنسيق" او "عند الطباعة" ، ولك الاختيار . جعفر
  5. وعليكم السلام تفضل 'رقم operation_code اذا كان الحقل DoCmd.OpenReport "2invoiceh", acViewPreview, , "[operation_code]=" & Forms![invoiceh]![operation_code] 'نص operation_code اذا كان الحقل DoCmd.OpenReport "2invoiceh", acViewPreview, , "[operation_code]='" & Forms![invoiceh]![operation_code] & "'" جعفر
  6. السلام عليكم اخي وضاح بما اننا توقفنا عن العمل في الموضوع مع ابو ياسين ، رجاء تخبرنا شو اللي تريده بالضبط ، وبالتفصيل لوسمحت جعفر
  7. وعليكم السلام الاستعلام يجب ان يكون هكذا . والتقرير: . جعفر 834.Madin.accdb.zip
  8. وعليكم السلام للعلم : 1. لا تستطيع تلوين خلفية حقل النموذج الجدولي ، 2. الكود يعمل على نموذج فردي ، يعني على سجل واحد فقط. للنموذج الرئيسي استعمل : = Color_Nulls() للنموذج الفرعي استعمل : = Color_Nulls_SubForm() وهكذا اصبحت الوحدة النمطية: Option Compare Database Option Explicit Public Function Color_Nulls() Dim frm As Form Dim ctrl As Control Dim sfrm As Form Dim sctrl As Control Dim Color1 As String Dim Color2 As String Color1 = vbRed Color2 = vbBlue Set frm = Screen.ActiveForm For Each ctrl In frm.Controls If ctrl.ControlType = acTextBox Then 'Main Form If Len(ctrl.Value & "") = 0 Then ctrl.BackColor = IIf(ctrl.BackColor = vbWhite Or ctrl.BackColor = Color2, Color1, Color2) End If ' 'Don't use, the load on the Timer dosen't allow the proper Flashing Effect ' ' ElseIf ctrl.ControlType = acSubform Then ' 'SubForm ' ' Set sfrm = ctrl.Form ' For Each sctrl In sfrm.Controls ' ' If sctrl.ControlType = acTextBox Then ' ' If Len(sctrl.Value & "") = 0 Then ' ' sctrl.BackColor = IIf(sctrl.BackColor = vbWhite Or sctrl.BackColor = vbBlue, vbRed, vbBlue) ' End If ' End If ' ' Next End If Next End Function Public Function Color_Nulls_SubForm() Dim sfrm As Form Dim ctrl As Control Dim Color1 As String Dim Color2 As String Color1 = vbRed Color2 = vbBlue Set sfrm = Screen.ActiveControl.Parent For Each ctrl In sfrm.Controls If ctrl.ControlType = acTextBox Then If Len(ctrl.Value & "") = 0 Then ctrl.BackColor = IIf(ctrl.BackColor = vbWhite Or ctrl.BackColor = Color2, Color1, Color2) End If End If Next End Function جعفر 829.Flash_BG.mdb.zip
  9. قصدك b = a + 1 . جعفر
  10. وعليكم السلام الوحدة النمطية التالية تقوم بالعمل Option Compare Database Option Explicit Public rst As DAO.Recordset ' Public Function Calc_Empty_Fields() Dim i As Integer Dim RC As Integer Dim RF As Integer Dim j As Integer Dim Counter As Integer rst.MoveLast: rst.MoveFirst RC = rst.RecordCount RF = rst.Fields.Count 'Records For i = 1 To RC Counter = 0 'Fields For j = 0 To RF - 1 If IsNumeric(rst(j).Name) And rst(j).Value = -1 Then Counter = Counter + 1 End If 'rst Next j 'rst.Edit ' rst!Sum_Check = Counter 'rst.Update rst.MoveNext Next i Calc_Empty_Fields = Counter rst.Close: Set rst = Nothing End Function . ونناديها من النموذج الفرعي هكذا Private Sub Form_Current() Set rst = Me.RecordsetClone Me.sum_Check = Calc_Empty_Fields() End Sub . جعفر 833.Prog400.mdb.zip
  11. كلامي كله كان ، اذا هذ الطريقة عملت مرادك ، الخطوة التالية اللي ممكن تعملها ، انك ترسل الجدول/الاستعلام بالكود الى الاكسل ، فالكود في برنامجي شبه جاهز ان يقوم بهذه العملية ، فجميع الخيارات موجودة فيه ، وببساطة جعفر
  12. السلام عليكم اخوي ابو عبدالله ، كنت سأعطيك رد بسيط ، ولكن اخي عمر لجمني انتظروا شوي ، وان شاء الله ارجع لكم جعفر
  13. السلام عليكم اخوي ابو ياسين انا ما اعرف انت تروح من اي نموذج او تقرير وتعرض صورته ، انا من البداية كنت اخبرك اي نموذج اكون عليه ، واي حقل ، وانت كنت تأكد لي ، وعليه كنت اشتغل انا ما ادري اذا كنت انزلت المرفق في مشاركتي الماضية ، ولكن هذه نسخة منه ، فرجاء تنزلها. اعرض عليك ما عملته ، وما اراه في البرنامج الذي عملت عليه: سأسترجع من الفاتورة رقم 2: . الصنف 1-1 ، وترى لما حاولت ان استرجع 26 حبة ، لم يقبل البرنامج (هذا الذي تريده من سؤالك) ، بينما الكمية المُباعة كانت 25 ، . عدّلت على الكمية ، فاصبحت 10 ، وهي اقل من الكمية المباعة . وترى ان البرنامج قبلها ، ولم ينقص من الفاتورة الاخرى او الصنف الاخر . وطبعا لا ننسى ان النموذج الرئيسي مرتبط بالنموذج الفرعي برقم الفاتورة كذلك ، . جعفر 828.احتساب الكميه 2.mdb.zip
  14. السلام عليكم ومشاركة مع اخي شفان ، وبالنظر الى الموضوع من زاوية اعلى ، نستطيع ان نرسل اسم النموذج الذي فتح نموذج البحث ، عن طريق المتغير OpenArgs ، هكذا Private Sub Field_DblClick(Cancel As Integer) DoCmd.OpenForm "Search Orient", , , , , , "FrmAmr" End Sub او للنموذج الثاني Private Sub Field_DblClick(Cancel As Integer) DoCmd.OpenForm "Search Orient", , , , , , "FrmMoh" End Sub . ثم من نموذج البحث ، نرجع المعلومة هكذا: Private Sub Orient_DblClick(Cancel As Integer) Forms(Me.Parent.OpenArgs)!Field = Me.Client DoCmd.Close End Sub جعفر
  15. وعليكم السلام في اعدادات النموذج ، نطلب من النموذج الذهاب الى الوحدة النمطية Color_Nulls كل ثانية (1000 معناه ثانية) ، وبهذه الطريقة لا تحتاج ان تضع الكود في كل نموذج ،وانما تعمله من هذه الاعدادات ، وستلاحظ ان النموذجين يعملان (المرفق فيه نموذجين) . وهذه الوحدة النمطية المسؤولة عن العمل Public Function Color_Nulls() Dim frm As Form Dim ctrl As Control Set frm = Screen.ActiveForm For Each ctrl In frm.Controls If ctrl.ControlType = acTextBox Then If Len(ctrl.Value & "") = 0 Then ctrl.BackColor = IIf(ctrl.BackColor = vbWhite Or ctrl.BackColor = vbBlue, vbRed, vbBlue) End If End If Next End Function جعفر 829.Flash_BG.mdb.zip
  16. العفو اخوي ابو ياسين وحياك الله جعفر
  17. اخي ابو ياسين المرفق اللي انا عملته ، اضف له حقل نص جديد ، وجرب الشرطين ينطبقوا عليه. تم اضافة الحقل الفارغ في المرفق الاصلي. جعفر
  18. انت في هذه الحالة حفظت قيمة الحقل ="" ، وانتقل المؤشر الى الحقل التالي جعفر
  19. وعليكم السلام واهلا وسهلا بك في المنتدى ورجاء قراءة قوانين المنتدى قبل وضع مشاركات جديدة تفضل ، المطلوب في برنامجك المرفق ، وهذا الكود يقوم بالعمل: Private Sub cmd_Do_Month_Dates_Click() Dim rst As DAO.Recordset Dim i As Date Set rst = Me.نموذج_فرعي_main_data.Form.RecordsetClone For i = DateSerial(Me.iYear, Me.iMonth, 1) To DateSerial(Me.iYear, Me.iMonth + 1, 0) rst.AddNew rst!dd = Format(i, "dddd") rst!ddate = i rst.Update Next i rst.Close: Set rst = Nothing End Sub جعفر 831.برنامج رواتب.accdb.zip
  20. السلام عليكم اخي ابو ياسين ، يُفضل ان يكون الكود الذي عملته انت ، ان يكون على الحدث "قبل التحديث" ، حتى لا تُحفظ القيمة وينتقل المؤشر الى الحقل التالي وهذا هو مثال طريقتي ، على شروطك: جعفر 830.Validation_Rule.mdb.zip
  21. نصطاد هذا الخطأ ، جرب Private Sub cmd_Do_Records_Click() On Error GoTo err_cmd_Do_Records_Click Dim rst As DAO.Recordset Dim rstSUB As DAO.Recordset 'نقرأ بيانات النموذج الفرعي Set rstSUB = Me.Forme_Sub_Itinerary.Form.RecordsetClone rstSUB.MoveLast: rstSUB.MoveFirst RCsub = rstSUB.RecordCount 'نقرأ كل سجل من سجلات النموذج الفرعي For j = 1 To RCsub 'اذا يوجد علامة صح في حقل "اعمل التغييرات" فقم بحذف السجلات السابقة لهذا الخط ، واعمله من جديد If rstSUB!Do_Changes = -1 Then 'نجهز الجدول لإدخال/حذف بيانات رقم المقعد mySQL = "SELECT Auto_Chair_ID AS Auto, Tabl_bus.*" mySQL = mySQL & " FROM Tabl_bus" mySQL = mySQL & " WHERE Num_Itinerary_ID=" & rstSUB!Auto_ID mySQL = mySQL & " AND Num_Itinerary=" & rstSUB!Num_Itinerary mySQL = mySQL & " AND Num_rihla=" & rstSUB!Num_rihla mySQL = mySQL & " ORDER by Auto_Chair_ID DESC" 'Debug.Print mySQL Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount If RC > rstSUB!Number_seats Then 'نحذف سجلات رقم المقعد من الجدول For i = rstSUB!Number_seats + 1 To RC rst.Delete rst.MoveNext Next i Else 'نضيف سجلات رقم المقعد في الجدول For i = RC + 1 To rstSUB!Number_seats rst.addnew rst!Num_Itinerary_ID = rstSUB!Auto_ID rst!Num_Itinerary = rstSUB!Num_Itinerary rst!Num_rihla = rstSUB!Num_rihla rst![Chair_ No] = i rst.Update Next i End If 'نقوم بتغيير حقل "اعمل التغييرات" ونزيل الصح منها rstSUB.Edit rstSUB!Do_Changes = 0 rstSUB.Update GoTo Exit_cmd_Do_Records_Click End If 'rstSUB rstSUB.MoveNext Next j Exit_cmd_Do_Records_Click: 'احذف البيانات من ذاكرة الكمبيوتر rst.Close: Set rst = Nothing rstSUB.Close: Set rstSUB = Nothing Exit Sub err_cmd_Do_Records_Click: If Err.Number = 3021 Then Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر
  22. في النموذج frmEdrajSenfm ، حقل Alkmiah لا يقبل ادخال رقم اكبر من الحقل Alkmiah في النموذج الفرعي frm_mr هل انا وانت نتكلم عن نفس النماذج؟ انتبه ، انا لا اتكلم عن النموذج الفرعي SubSales
  23. تفضل 828.احتساب الكميه 2.mdb.zip
  24. وهكذا اصبح الكود ، ورجاء تجربته Private Sub cmd_Do_Records_Click() Dim rst As DAO.Recordset Dim rstSUB As DAO.Recordset 'نقرأ بيانات النموذج الفرعي Set rstSUB = Me.Forme_Sub_Itinerary.Form.RecordsetClone rstSUB.MoveLast: rstSUB.MoveFirst RCsub = rstSUB.RecordCount 'نقرأ كل سجل من سجلات النموذج الفرعي For j = 1 To RCsub 'اذا يوجد علامة صح في حقل "اعمل التغييرات" فقم بحذف السجلات السابقة لهذا الخط ، واعمله من جديد If rstSUB!Do_Changes = -1 Then 'نجهز الجدول لإدخال/حذف بيانات رقم المقعد mySQL = "SELECT Auto_Chair_ID AS Auto, Tabl_bus.*" mySQL = mySQL & " FROM Tabl_bus" mySQL = mySQL & " WHERE Num_Itinerary_ID=" & rstSUB!Auto_ID mySQL = mySQL & " AND Num_Itinerary=" & rstSUB!Num_Itinerary mySQL = mySQL & " AND Num_rihla=" & rstSUB!Num_rihla mySQL = mySQL & " ORDER by Auto_Chair_ID DESC" 'Debug.Print mySQL Set rst = CurrentDb.OpenRecordset(mySQL) rst.MoveLast: rst.MoveFirst RC = rst.RecordCount If RC > rstSUB!Number_seats Then 'نحذف سجلات رقم المقعد من الجدول For i = rstSUB!Number_seats + 1 To RC rst.Delete rst.MoveNext Next i Else 'نضيف سجلات رقم المقعد في الجدول For i = RC + 1 To rstSUB!Number_seats rst.addnew rst!Num_Itinerary_ID = rstSUB!Auto_ID rst!Num_Itinerary = rstSUB!Num_Itinerary rst!Num_rihla = rstSUB!Num_rihla rst![Chair_ No] = i rst.Update Next i End If 'نقوم بتغيير حقل "اعمل التغييرات" ونزيل الصح منها rstSUB.Edit rstSUB!Do_Changes = 0 rstSUB.Update GoTo Exit_cmd_Do_Records_Click End If 'rstSUB rstSUB.MoveNext Next j Exit_cmd_Do_Records_Click: 'احذف البيانات من ذاكرة الكمبيوتر rst.Close: Set rst = Nothing rstSUB.Close: Set rstSUB = Nothing End Sub . جعفر 806.2.AAddseat.accdb.zip
×
×
  • اضف...

Important Information