-
Posts
3092 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
122
Foksh last won the day on أبريل 16
Foksh had the most liked content!
السمعه بالموقع
1681 Excellentعن العضو Foksh

- تاريخ الميلاد 07/02/1982
البيانات الشخصية
-
Gender (Ar)
ذكر
-
Job Title
فني صيانة موبايل وكمبيوتر
-
البلد
الأردن ♥
-
الإهتمامات
برمجة وصيانة الموبايل والكمبيوتر
اخر الزوار
5746 زياره للملف الشخصي
-
سامحك الله معلمي الفاضل ، بل أنا الذي يتعلم منكم صدقني ,, ما انا به الآن ليس إلا ناتج عن توجيهاتكم و السير على خطاكم في العمل
-
سؤال جميل ، طبعاً انت عارف انه يتم قراءة رأس التقرير أولاً وبالتالي لا يمكن جلب القيم كما نريدها ( كما كانت في السابق ) ، لذا سيتم تغيير الفكرة الى التالي .. أولاً تم نقل المتغيرات من الخاص الى العام في مديول منفرد ( فكرة معلمي @ابوخليل ) Public cntNag7 As Long ' ناجح Public cntNag7a As Long ' ناجحة Public cnt3elagy As Long ' له برنامج علاجي Public cnt3elagyF As Long ' لها برنامج علاجي ثانياً تعديل كود التقرير الى التالي :- Private Sub Report_Open(Cancel As Integer) cntNag7 = 0 cntNag7a = 0 cnt3elagy = 0 cnt3elagyF = 0 Dim rs As DAO.Recordset Dim strSQL As String strSQL = "SELECT DISTINCT id_student, gender, alsaf_Id FROM qry_master WHERE rmz=1" Set rs = CurrentDb.OpenRecordset(strSQL) If rs.RecordCount = 0 Then rs.Close Set rs = Nothing Exit Sub End If Do While Not rs.EOF Dim total1 As Double, tot_All As Double, cntRsob As Integer Dim hala As String total1 = DSum("mgmo1", "qry_master", "id_student=" & rs!id_student & " AND rmz=1") tot_All = DSum("Darajh", "Tbl_materil_Detail", "saf_No=" & rs!alsaf_Id & " AND rmz=1") cntRsob = Nz(DCount("*", "qry_master", "id_student=" & rs!id_student & " AND rmz2=1 AND madaNum<>15 AND mgmo1<50"), 0) hala = funResult_A(CDbl(total1), CDbl(tot_All), CInt(cntRsob), CStr(rs!gender)) Select Case hala Case "ناجح" cntNag7 = cntNag7 + 1 Case "ناجحة" cntNag7a = cntNag7a + 1 Case "له برنامج علاجي" cnt3elagy = cnt3elagy + 1 Case "لها برنامج علاجي" cnt3elagyF = cnt3elagyF + 1 End Select rs.MoveNext If rs.EOF Then Exit Do Loop rs.Close Set rs = Nothing DoCmd.Maximize End Sub Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) On Error Resume Next Dim tot_All As Double, cntRsob As Integer Me.total1 = DSum("mgmo1", "qry_master", "id_student=" & [id_student] & " and rmz=1") tot_All = DSum("Darajh", "Tbl_materil_Detail", "saf_No=" & [alsaf_Id] & " and rmz=1") cntRsob = Nz(DCount("mgmo1", "qry_master", "id_student=" & [id_student] & " and rmz2=1" & " and madaNum<>15" & " and mgmo1<50"), 0) Me.alnesbah = funNesbah(CDbl(Me.total1), CDbl(tot_All)) Me.tgyeem1 = funTgyemResult_A(CDbl(Me.total1), CDbl(tot_All)) Me.hala = funResult_A(CDbl(Me.total1), CDbl(tot_All), CInt(cntRsob), CStr(Me.gender)) End Sub Private Sub ReportHeader_Format(Cancel As Integer, FormatCount As Integer) Me.txtNag7_H = cntNag7 Me.txtNag7a_H = cntNag7a Me.txt3elagy_H = cnt3elagy Me.txt3elagyF_H = cnt3elagyF End Sub Private Sub ReportFooter_Format(Cancel As Integer, FormatCount As Integer) Me.Tx01 = cntNag7 Me.Tx02 = cntNag7a Me.Tx03 = cnt3elagy Me.Tx04 = cnt3elagyF End Sub طبعاً تم اضافة الفكرتين في المرفق ، ولك حرية التغيير كما تريد .. Database34.zip
-
العفو استاذي ومعلمي الفاضل.. كلامك في محله ، وكنت في صدد تعديلها ولكن للأمانه انشغلت ،، كلام سليم ومنطقي وفكرة أجمل 😇
-
تمام ، طيب شو رأيك نفكر بطريقتي بحيث انه ما نلعب بالإستعلامات ولا بأي شي تم تأسيسه من طرف أستاذنا أبو خليل ؟؟؟ أول شي بدنا نحجز متغيرات عامة في بداية التقرير للقيم اللي محتاجها ( ناجح ، ناجحة .. إلخ ) ، كالآتي :- Dim cntNag7 As Long '= ناجح Dim cntNag7a As Long '= ناجحة Dim cnt3elagy As Long '= له برنامج علاجي Dim cnt3elagyF As Long '= لها برنامج علاجي وبعدين بدنا نخلي القيم هاي للمتغيرات = 0 لما التقرير يفتح :- Private Sub Report_Open(Cancel As Integer) cntNag7 = 0 cntNag7a = 0 cnt3elagy = 0 cnt3elagyF = 0 End Sub وعلشان ما نخرب اي شي تاني كمان ، وخصوصاً في حدث Detail_Format ، رح نضيف في نهاية الكود ( قبل End Sub طبعاً ) الكود البسيط التالي :- Select Case Me.hala Case "ناجح" cntNag7 = cntNag7 + 1 Case "باجحة" cntNag7a = cntNag7a + 1 Case "له برنامج علاجي" cnt3elagy = cnt3elagy + 1 Case "لها برنامج علاجي" cnt3elagyF = cnt3elagyF + 1 End Select علشان لو حبيت تستخدمة في تقرير تاني بقيم تانية ، تقدر تعدل على كيفك .. المهم وفي آخر خطوة في الحديث ReportFooter_Format ، رح نحدد قيم المتغيرات هاي لمربعات النص اللي رح يتم ادراج القيم العددية ( الإحصاء ) فيها ، كالآتي :- Private Sub ReportFooter_Format(Cancel As Integer, FormatCount As Integer) Me.Tx01 = cntNag7 Me.Tx02 = cntNag7a Me.Tx03 = cnt3elagy Me.Tx04 = cnt3elagyF End Sub طبعاً مربعات النص انا افترضت اسماء لها من عندي ، وفي المرفق التالي التطبيق ، جربه Database33.zip
-
وعليكم السلام ورحمة الله وبركاته .. اعذرني على مداخلتي عن الحل ، ولكن لتتبسط الأمور ، واعتبرني كشخص يقرأ الموضوع وغير متطلع على سوابق الخطوات التي سرت بها مع المعلم أبو خليل .. لم تذكر بناءً على ماذا ، وكيف ، وما هي الأسس التي عليها سيتم الإحصاء ؛ أو حتى توضيح أي نقطة من هذا القبيل 😅 . أنا أفكر معك بصوت عالٍ فقط ، ومتمنياً أن استطيع تقديم المساعدة مع الزملاء والأساتذة . فمثلاً هذه الصورة الناتجة من التقرير ..
-
قمت بإعادة صياغة الأكواد وكتابتها بشكل يضمن عدم ظهور أخطار أثناء التنقل .. Private Sub btnFirst_Click() If Me.RecordsetClone.RecordCount > 0 Then DoCmd.GoToRecord , , acFirst End If End Sub Private Sub btnNew_Click() If Me.AllowAdditions Then DoCmd.GoToRecord , , acNewRec Else MsgBox "النموذج لا يسمح بإضافة سجلات جديدة", vbExclamation + vbMsgBoxRight End If End Sub Private Sub btnNext_Click() With Me.RecordsetClone If .RecordCount > 0 Then .Bookmark = Me.Bookmark .MoveNext If Not .EOF Then DoCmd.GoToRecord , , acNext Else MsgBox "أنت في آخر سجل", vbInformation + vbMsgBoxRight End If End If End With End Sub Private Sub أمر553_Click() If Not Me.NewRecord And Me.CurrentRecord > 0 Then If MsgBox("هل تريد حذف السجل الحالي؟", vbYesNo + vbQuestion + vbMsgBoxRight, "تأكيد الحذف") = vbYes Then DoCmd.RunCommand acCmdDeleteRecord End If Else MsgBox "لا يوجد سجل لحذفه", vbExclamation + vbMsgBoxRight End If End Sub Private Sub أمر554_Click() With Me.RecordsetClone If .RecordCount > 0 Then .Bookmark = Me.Bookmark .MovePrevious If Not .BOF Then DoCmd.GoToRecord , , acPrevious Else MsgBox "أنت في أول سجل", vbInformation + vbMsgBoxRight End If End If End With End Sub Private Sub أمر555_Click() If Me.RecordsetClone.RecordCount > 0 Then DoCmd.GoToRecord , , acLast End If End Sub
-
وعليكم السلام ورحمة الله وبركاته .. برأيي .. عند إغلاق النموذج ، إذا كان السجل الحالي في وضع تحرير ( Dirty ) ، فإن اكسيس ( للأسف ) يقوم بمحاولة حفظه تلقائياً . لكن !!! في بعض الحالات ، إذا كان المستخدم لم "يخرج" من آخر حقل عدله ( يعني لا يزال المؤشر في نفس الحقل ) . أو أن حدث الإغلاق يتم تنفيذه بسرعة قبل أن ينتهي الحفظ ، فإن acCmdSaveRecord لا يتم تننفيذه فعلياً كما تتصور ,, لذلك ، تشغيل استعلام إلحاق بعد هذا الحدث مباشرة قد يتم قبل ما اكسيس ينتهي فعلياً من حفظ السجل ، وده يسبب إن الاستعلام ما يشتغل بشكل صحيح "إلا بعد المحاولة الثانية" . ومن الحلول التي يمكنك الاعتماد عليها .. If Me.Dirty Then Me.Dirty = False فمن وجهة نظري هذا السطر ⬆ أقوى من acCmdSaveRecord لأنه :- أولاً ( وللأسف أيضاً ) يجبر اكسيس على حفظ السجل الحالي يدوياً ، بدون الاعتماد على واجهة المستخدم أو الأحداث التلقائية . لتنفيذ الحفظ في حدث BeforeClose أو BeforeUnload أو Form_BeforeUpdate ، حاول استخدام الفكرة التالية :- Private Sub Form_Unload(Cancel As Integer) If Me.Dirty Then Me.Dirty = False End If DoCmd.SetWarnings False DoCmd.OpenQuery "اسم استعلام الإلحاق الخاص بك" DoCmd.SetWarnings True End Sub
-
تعقيباً على النقطة التالية .. يعني لو موظف جاوب على سؤال 1 ، وكانت اجابته صحيحة !!! وانتهى الوقت ، هل سيتم اعتبار نسبة التقييم مبنية على عدد الاسئلة التي اجاب عليها ومنها يتم احتساب المتوسط !!!!! يعني لو اجابة الموظف صحيحة على السؤال الوحيد = فهو ناجح ( او اي كان التقييم ) .. هل بتصورك هذا الاسلوب صحيح !!
-
وعليكم السلام ورحمة الله وبركاته 🤗 .. تفضل البرنامج ، اضغط هنا .
-
وعليكم السلام ورحمة الله وبركاته ,, هلا أوضحت ما المشكلة ؟
-
Foksh changed their profile photo
-
هذه الفكرة التي اقترحتها .. تم تطبيقها على نموج فرعي واحد ، ونفس الفكرة طبقها على النماذج الفرعية التي تريدها Personnel_affairs.zip
-
وعليكم السلام ورحمة الله وبركاته .. الأصل في المشاركة أن يكون هناك ملف مرفق كي نعرف كيفية تصميم النموذج والجدول والحقل الذي سيتم العمل عليه .. أما بهذا الأسلوب فلن تحصل على حل شافي إلا إن كانت محاولتي محض صدفة لا أكثر 😁 .
-
لا اعلم فعلاً إن كان المحتوى واحد ,, .. وكيف أفتي في مدينتكم ..
-
المشكلة محصورة في الأوفيس أو الويندوز