اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

kanory

الخبراء
  • Posts

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

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

  • Days Won

    138

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

  1. اذا كان تقصد ان هناك تقرير اخر وتريد استخدام نفس الكود ... طبق نفس الطريقة .. وبنعدل بسيط في الارقام وبالمحاولة والخطأ حتى تصل للمطلوب لان كل تقرير يختلف عن الاخر من حيث حجم السجلات به Me.PageHeaderSection.Height = 36 * 287
  2. استخدم الكود بهذه الطريقة مع اكمال بقية الكائنات بنفس الطريقة .................. If (Me.Page / 2) = Int(Me.Page / 2) Then Me.PageHeaderSection.Height = 36 * 287 Me.id_تسمية.Visible = False Me.date1_تسمية.Visible = False Else Me.PageHeaderSection.Height = 0 Me.id_تسمية.Visible = True Me.date1_تسمية.Visible = True End If
  3. طيب فكرة على فكر اساتذتنا الكرام نقوم بزيادة ونقصان رأس الصفحة كما يلي .... ضع هذا الكود في حدث عند التنسيق .... If (Me.Page / 2) = Int(Me.Page / 2) Then Me.PageHeaderSection.Height = 36 * 287 Else Me.PageHeaderSection.Height = 0 End If جرب واعلمنا بالنتيجة .....
  4. تفضل .... لاحظ التعديل في الاستعلام والتقرير .... 2.accdb ههههه اسف اخي الكريم لم انتبه لردك ......
  5. تفضل ..... Dim db As DAO.Database Dim qdf As DAO.QueryDef Dim strSQL As String Set db = CurrentDb strSQL = "SELECT sub.* FROM sub WHERE " strSQL = strSQL & "[No] " & Me![cboFirstOperator] & "" & Me![txtCostCenter] & "" db.QueryDefs.Delete "qryMyQuery" Set qdf = db.CreateQueryDef("qryMyQuery", strSQL) Filter (2).accdb
  6. يبدو ان هناك اجراءان في نفس الوقت ..... ماكروا مثلا او امر حدث الخ تفصح برنامج .... انظر تفسير الخطأ من أكسس
  7. أولا : يجب توحيد العبارة التي تكتب في مربع البحث أي قد تكتب < 5.5 وقد تكتب <5.5 اقصد المسافات لذلك فكرتي باختصار : عمل مربعي قائمة الاول لاختيار علامة ( ><= الخ اخرة) والمربع الثاني تختار منها الرقم ثم عمل زر للبحث .... وفقط ... ثانيا : بعض المسميات المستخدمة هي عبارات محجوزة للاكسس والمفروض لا تستخدم مثل sub ....
  8. مو انت بس .... كلنا راجعنا المعلومات معكم فشكرا لكم جميعا ....
  9. ما ذا تعني هذه ..... هل وجدت الحل أم ماذا ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ على العموم تفضل جرب الشيفرة هذه ...... x = NumX xx = Expr1 r = DCount("[numx]", "XtremQ", "[numx]='" & x & "'" & " and [expr1]=" & xx) If r > 0 Then If MsgBox(" هل تريد تكرار حفظ السجل ؟ ", vbYesNo, " تنبيه ") = vbNo Then Me.Undo Exit Sub Dim RS As Object Set RS = Me.Recordset.Clone RS.FindFirst "[numx]='" & x & "'" & " and [expr1]=" & xx If Not RS.EOF Then Me.Bookmark = RS.Bookmark End If End If
  10. الكود موجود ما يحتاج بخور سيدي جعفر .... ماكروا مرتبط بفانك .... 😄
  11. مبارك اخي ناقل العيد ومبارك الترقية تستاهل ... شد حيللك بالتوفيق .... الى الامام
  12. الحمد لله رب العالمين ... حياك الله استاذ . خالد @خالد عبد الغفار
  13. طيب ... تفضل ... Dim rst As Recordset '' Dim ast_1, ast_3, ast_4, ast_10, ast_11, ast_12, ast_t, cast_1 As Integer Set rst = CurrentDb.OpenRecordset("tb_mbd", dbOpenDynaset) With rst .MoveFirst Do While Not .EOF .Edit If rst!case_cod.Value = 1 Or rst!case_cod.Value = 2 Or rst!case_cod.Value = 4 Then rst!m_es_1.Value = rst!m_bg1 rst!m_es_3.Value = rst!m_bg1 * 6 rst!m_es_4.Value = rst!m_bg1 * 0 rst!m_es_10.Value = rst!m_bg1 * 0 rst!m_es_11.Value = rst!m_bg1 rst!m_es_12.Value = rst!m_bg1 rst!m_es_t.Value = rst!m_bg1 'Form.Refrm_esh End If If rst!case_cod.Value = 3 Or rst!case_cod.Value = 5 Then rst!m_es_1.Value = rst!m_bg1 rst!m_es_3.Value = rst!m_bg1 * 6 rst!m_es_4.Value = rst!m_bg1 rst!m_es_10.Value = rst!m_bg1 * 0 rst!m_es_11.Value = rst!m_bg1 rst!m_es_12.Value = rst!m_bg1 * 0 rst!m_es_t.Value = rst!m_bg1 'Form.Refrm_esh End If If rst!case_cod.Value = 6 Then rst!m_es_1.Value = rst!m_bg1 rst!m_es_3.Value = rst!m_bg1 * 5 rst!m_es_4.Value = rst!m_bg1 rst!m_es_10.Value = rst!m_bg1 * 0 rst!m_es_11.Value = rst!m_bg1 * 2 rst!m_es_12.Value = rst!m_bg1 * 0 rst!m_es_t.Value = rst!m_bg1 'Form.Refrm_esh End If If rst!case_cod.Value = 7 Then rst!m_es_1.Value = rst!m_bg1 rst!m_es_3.Value = rst!m_bg1 * 5 rst!m_es_4.Value = rst!m_bg1 * 0 rst!m_es_10.Value = rst!m_bg1 rst!m_es_11.Value = rst!m_bg1 rst!m_es_12.Value = rst!m_bg1 rst!m_es_t.Value = rst!m_bg1 'Form.Refrm_esh End If If rst!case_cod.Value = 8 Then rst!m_es_1.Value = rst!m_bg1 rst!m_es_3.Value = rst!m_bg1 * 5 rst!m_es_4.Value = rst!m_bg1 * 0 rst!m_es_10.Value = rst!m_bg1 rst!m_es_11.Value = rst!m_bg1 rst!m_es_12.Value = rst!m_bg1 * 0 rst!m_es_t.Value = rst!m_bg1 'Form.Refrm_esh End If .Update .MoveNext Loop End With '' Call t rst.close MsgBox "تم التحديث"
  14. وانت في صحة وسلامة ...... اخي خالد ... دقق في البيانات هل هذه النتيجة هي المطلوبة ,,,
  15. نعم ممكن اختزاله ... وذلك بتعديل مسميات مربعات النص قليلا .... انظر الكود وحاول قرائته ..... وسوف ارفق المرفق قريبا ..... myT = Array("الأحد", "الإثنين", "الثلاثاء", "الأربعاء", "الخميس") For Each t In myT If Me.to.Value = t Then For i = 1 To 8 If Format(Me.from, "hh:mm:ss AMPM") >= Format(DLookup("from", "timing", "[period] =" & i), "hh:mm:ss AMPM") And Format(Me.from, "hh:mm:ss AMPM") < Format(DLookup("to", "timing", "[period] =" & i), "hh:mm:ss AMPM") Then Me.Controls(t & i).BackColor = vbYellow End If Next i End If Next t
  16. طيب ان شاء الله الفكرة التي سوف احاول تطبيقها كالتالي : ( حسب ظروفي ..... الله ييسر الامور ) اضيف حقلين Reserve و Reserve1 في الجدول كما في الصورة ( Reserve لعدد نصاب المعلم من حصص الاحتياط خلال اسبوع و حقل Reserve1 عدد حصص الاحتياط المسندة للمعلم أي كلما نقوم باسناد حصة احتياط يتغير الرقم صعودا حتى يصل لعدد حصص الاحتياط في حقل Reserve ويتوقف البرنامج تلقائيا من اسناد حصص لهذا المعلم .... وملاحظة يبدأ البرنامج باسناد حصص الاحتياط للمعلمين الاقل نصاب وهكذا ......... ___________________________________________________ عند عدم وجود معلم احتياط لحصة من الحصص يقوم البرنامج باظهار خانة اسم المعلم المنظر فارغة حتى يتم اسناد الحصة يدويا .....
  17. ما شاء الله تبارك الله تستاهل @Moosak اعانك الله وزادك فضل ....
  18. طيب انظر الصور .... وغير الكود الذي لديك بهذا الكود ...... Dim db As DAO.Database Dim rs As DAO.Recordset Dim rs1 As DAO.Recordset Dim rs2 As DAO.Recordset Dim i, ii, e As Integer Dim str, str1, str2 As String str = "SELECT TBL_Rserve.IdEmployee, TBL_Rserve.Id_Day, TBL_Rserve.Period1, TBL_Rserve.Period2, TBL_Rserve.Period3, TBL_Rserve.Period4, TBL_Rserve.Period5, TBL_Rserve.Period6, TBL_Rserve.Period7, TBL_Rserve.Period8, TBL_Rserve.Id_Absence FROM TBL_Rserve WHERE (((TBL_Rserve.Id_Day)=" & Me.kan & ") AND ((TBL_Rserve.Id_Absence)=2));" str1 = "SELECT TBL_Rserve3.IdEmployee, TBL_Rserve3.Id_Day, TBL_Rserve3.Period, TBL_Rserve3.Id_Period FROM TBL_Rserve3;" str2 = "SELECT TBL_Rserve.IdEmployee, TBL_Rserve.Id_Day, TBL_Rserve.Period1, TBL_Rserve.Period2, TBL_Rserve.Period3, TBL_Rserve.Period4, TBL_Rserve.Period5, TBL_Rserve.Period6, TBL_Rserve.Period7, TBL_Rserve.Period8, TBL_Rserve.Id_Absence FROM TBL_Rserve WHERE (((TBL_Rserve.Id_Day)=" & Me.kan & ") AND ((TBL_Rserve.Id_Absence)=1));" Set db = CurrentDb Set rs = db.OpenRecordset(str) Set rs1 = db.OpenRecordset(str1) Set rs2 = db.OpenRecordset(str2) rs.MoveLast: rs.MoveFirst rs2.MoveLast: rs2.MoveFirst For i = 1 To 8 rs.MoveLast: rs.MoveFirst rs2.MoveLast: rs2.MoveFirst For iii = 1 To rs.RecordCount If rs("Period" & i) > 0 Then For ii = 1 To rs2.RecordCount Dim dd As Integer dd = rs2("IdEmployee") '.Value If IsNull(rs2("Period" & i)) Then If DCount("[IdEmployee]", "TBL_Rserve3", "[IdEmployee] = " & rs2("IdEmployee") & "") = 0 Then rs1.AddNew rs1!IdEmployee = rs2!IdEmployee.Value rs1!Id_Day = rs!Id_Day rs1!Id_Period = i rs1!Period = rs("Period" & i) rs1.Update rs2.MoveNext GoTo mystnext1 End If End If rs2.MoveNext Next ii End If mystnext1: rs.MoveNext Next iii Next i rs.Close Set rs = Nothing اما بالنسبة لــــــــــــ حلها لديك بان تحدد لكل معلم امامه ... حسب نصابة من الحصص عدد معين من حصص الاحتياط في الاسبوع مثلا معلم لدية 24 حصة مثلا تخصص له حصة احتياط واحد ومعلم لدية 10 حصص تخصص له 10 حصص احتياط اسبوعية مثلا أو حسب نظام التعليم لديك .... حتى يتكمن البرنامج من توزيع الاحتياط ومع كل عملية احتياط يتم خضم واحد من حصص الاحتياط وهكذا ....... حاول التعديل وأعلمنا بالنتيجة ....
  19. وضح ... ماهي النتائج الغير صحيحة ولا تترك الموضوع عائم ... حتى نجد حل بامرالله ... ما هي النتائج الظاهرة لديك .. صورة لها ... وصورة للصحيح ...
  20. جرب .... Dim db As DAO.Database Dim rs As DAO.Recordset Dim rs1 As DAO.Recordset Dim rs2 As DAO.Recordset Dim i, ii, e As Integer Dim str, str1, str2 As String str = "SELECT TBL_Rserve.IdEmployee, TBL_Rserve.Id_Day, TBL_Rserve.Period1, TBL_Rserve.Period2, TBL_Rserve.Period3, TBL_Rserve.Period4, TBL_Rserve.Period5, TBL_Rserve.Period6, TBL_Rserve.Period7, TBL_Rserve.Period8, TBL_Rserve.Id_Absence FROM TBL_Rserve WHERE (((TBL_Rserve.Id_Day)=" & Me.kan & ") AND ((TBL_Rserve.Id_Absence)=2));" str1 = "SELECT TBL_Rserve3.IdEmployee, TBL_Rserve3.Id_Day, TBL_Rserve3.Period, TBL_Rserve3.Id_Period FROM TBL_Rserve3;" str2 = "SELECT TBL_Rserve.IdEmployee, TBL_Rserve.Id_Day, TBL_Rserve.Period1, TBL_Rserve.Period2, TBL_Rserve.Period3, TBL_Rserve.Period4, TBL_Rserve.Period5, TBL_Rserve.Period6, TBL_Rserve.Period7, TBL_Rserve.Period8, TBL_Rserve.Id_Absence FROM TBL_Rserve WHERE (((TBL_Rserve.Id_Day)=" & Me.kan & ") AND ((TBL_Rserve.Id_Absence)=1));" Set db = CurrentDb Set rs = db.OpenRecordset(str) Set rs1 = db.OpenRecordset(str1) Set rs2 = db.OpenRecordset(str2) rs.MoveLast: rs.MoveFirst rs2.MoveLast: rs2.MoveFirst For ii = 1 To rs2.RecordCount For iii = 1 To rs.RecordCount For i = 0 To rs.Fields.Count - 4 If Len(rs.Fields(i + 2).Value & "") = 0 Then GoTo Next_i If Len(rs2.Fields(i + 2).Value & "") < 0 Then GoTo Next_ii rs1.AddNew rs1!IdEmployee = rs2.Fields(0).Value rs1!Id_Day = rs!Id_Day rs1!Id_Period = i + 1 rs1!Period = rs.Fields(i + 2).Value rs1.Update rs2.MoveNext Next_i: Next i rs.MoveNext i = i + 1 Next iii Next_ii: Next ii rs.Close Set rs = Nothing
  21. جرب .... واعلمنا .... قد يكون دخولي قليلا هذه الفترة .... عند وجود ملاحظات حاول طرحها ربما تجد من هو متواجد بكثرة الاجابة ... ‏‏‏‏‏‏‏‏برنامج الاحتياطي 2022 - Kan.accdb
  22. اذا تم توزيع حصص الاحتياط بهذه الطريقة من الممكن ان يكون بعض المعلمين يكون نصيبهم من حصص الاحتياط بشكل يومي ... والبعض الاخر لا يتم اسناد حصص لهم ... والله اعلم ... لكن ممكن ذلك التوزيع حسب معطياتك الحالية ... امهلني حتى ارى طريقة للتوزيع حسب معطياتك في الجداول ... ان لم يسبقني احد الزملاء الافاضل بفكرة ... او رد ...
  23. جرب هذا مع تغيير بيانات الكود حسب بيانات النموذج لديك ...... Dim strnum As String Dim iCounter As Integer Dim arrnum() As String Dim Rep_lace As String strnum = Me.kan Rep_lace = Replace(strnum, "(", "") Rep_lace = Replace(Rep_lace, ")", "") arrnum = Split(Rep_lace, "-") For iCounter = LBound(arrnum) To UBound(arrnum) If arrnum(iCounter) > 5 Then With Me.kan .FontBold = True .ForeColor = 255 End With Else With Me.kan .FontBold = False .ForeColor = 0 End With End If Next
×
×
  • اضف...

Important Information