بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
3093 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
122
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Foksh
-
هل جربته في حدث "on_current" في الحالي ؟؟ أو يمكنك تعطيل التنبيهات من نفس خصائص الآكسيس !!!!!
-
سامحك الله معلمي الفاضل ، بل أنا الذي يتعلم منكم صدقني ,, ما انا به الآن ليس إلا ناتج عن توجيهاتكم و السير على خطاكم في العمل
-
سؤال جميل ، طبعاً انت عارف انه يتم قراءة رأس التقرير أولاً وبالتالي لا يمكن جلب القيم كما نريدها ( كما كانت في السابق ) ، لذا سيتم تغيير الفكرة الى التالي .. أولاً تم نقل المتغيرات من الخاص الى العام في مديول منفرد ( فكرة معلمي @ابوخليل ) 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 ، وكانت اجابته صحيحة !!! وانتهى الوقت ، هل سيتم اعتبار نسبة التقييم مبنية على عدد الاسئلة التي اجاب عليها ومنها يتم احتساب المتوسط !!!!! يعني لو اجابة الموظف صحيحة على السؤال الوحيد = فهو ناجح ( او اي كان التقييم ) .. هل بتصورك هذا الاسلوب صحيح !!
-
وعليكم السلام ورحمة الله وبركاته 🤗 .. تفضل البرنامج ، اضغط هنا .
-
وعليكم السلام ورحمة الله وبركاته ,, هلا أوضحت ما المشكلة ؟
-
هذه الفكرة التي اقترحتها .. تم تطبيقها على نموج فرعي واحد ، ونفس الفكرة طبقها على النماذج الفرعية التي تريدها Personnel_affairs.zip
-
وعليكم السلام ورحمة الله وبركاته .. الأصل في المشاركة أن يكون هناك ملف مرفق كي نعرف كيفية تصميم النموذج والجدول والحقل الذي سيتم العمل عليه .. أما بهذا الأسلوب فلن تحصل على حل شافي إلا إن كانت محاولتي محض صدفة لا أكثر 😁 .
-
لا اعلم فعلاً إن كان المحتوى واحد ,, .. وكيف أفتي في مدينتكم ..
-
المشكلة محصورة في الأوفيس أو الويندوز
-
أعتقد هذا يحتاج موضوع جديد 😅 لأن المطلوب الثاني مختلف عن عنوان المشاركة والطلب الأول .
-
إذا وُجد الحل فهذا دلالة على أن المشكلة قد عُرفت ،، وللأسف ليس لي فكرة عن السبب الرئيسي للمشكلة.. 🤗
-
تأكد من إعدادات النظام الإقليمية Unicode على الأجهزة التي تظهر المشكلة .
-
إليك هذا التعديل اخي الكريم :- Private Sub C8_AfterUpdate() Me.s1 = Null Me.s2 = Null Me.s3 = Null Me.s4 = Null Select Case Me.C8.ListIndex Case 0 Me.s1 = "X" Case 1 Me.s2 = "X" Case 2 Me.s3 = "X" Case 3 Me.s4 = "X" End Select End Sub
-
حسناً.. سألقي نظرة على الملف حال وصولي للكمبيوتر 🤗
-
مطلوب تحديد محتوى كومبوبكس بناء على معلومات حقل بالنموذج
Foksh replied to أحمد العيسى's topic in قسم الأكسيس Access
ما شاء الله عليك ،، ابدعت بتحوير الفكرة للمطلوب الذي تريده . بهذا تستطيع اغلاق الموضوع باختيار أفضل إجابة 😇 . -
وعليكم السلام ورحمة الله وبركاته .. أولاً يجب تنبيهك الى ضرورة حذف المسافة الزائدة من الاختيار الرابع من الكومبوبوكس C8 الآن في حدث بعد التحديث ، استعمل الكود التالي :- Private Sub C8_AfterUpdate() Me.s1 = False Me.s2 = False Me.s3 = False Me.s4 = False Select Case Me.C8.Value Case "سكن اجتماعي" Me.s1 = True Case "سكن أقارب" Me.s2 = True Case "سكن مؤجر" Me.s3 = True Case "محل غير قابل للسكن (مستودع، فوضوي، قبو)" Me.s4 = True End Select End Sub حيث استخدمت الدالة Case بدلاً من الجمل الشرطية If وطبعاً يوجد حل آخر بعيد عن تحديد القيم النصية من الكومبوبوكس ( وخصوصاً أنها باللغة العربية ) ، بحيث نستخدم الـ Index أو فهرس الكومبوبوكس نفسه كالتالي :- Private Sub C8_AfterUpdate() Me.s1 = False Me.s2 = False Me.s3 = False Me.s4 = False Select Case Me.C8.ListIndex Case 0 Me.s1 = True Case 1 Me.s2 = True Case 2 Me.s3 = True Case 3 Me.s4 = True End Select End Sub وهذا أيضاً حل ثالث :- Private Sub C8_AfterUpdate() Me.s1 = (Me.C8.Value = "سكن اجتماعي") Me.s2 = (Me.C8.Value = "سكن أقارب") Me.s3 = (Me.C8.Value = "سكن مؤجر") Me.s4 = (Me.C8.Value = "محل غير قابل للسكن (مستودع، فوضوي، قبو)") End Sub IF.accdb
-
مطلوب تحديد محتوى كومبوبكس بناء على معلومات حقل بالنموذج
Foksh replied to أحمد العيسى's topic in قسم الأكسيس Access
وهذه فكرة كما أشرت لك بتغيير نوع مربع نص Gender إلى مربع تحرير وسرد حيث سيكون له الحدث بعد التحديث = Private Sub Gender_AfterUpdate() If Me.Gender.Value = "ذكر" Then Me.الديانه.RowSource = "مسلم;مسيحي" Me.الديانه.Value = "مسلم" Me.الحالة_الاجتماعية.RowSource = "متزوج;أعزب;مطلق;أرمل" Me.الحالة_الاجتماعية.Value = "متزوج" ElseIf Me.Gender.Value = "أنثى" Then Me.الديانه.RowSource = "مسلمة;مسيحية" Me.الديانه.Value = "مسلمة" Me.الحالة_الاجتماعية.RowSource = "متزوجة;آنسة;مطلقة;أرملة" Me.الحالة_الاجتماعية.Value = "متزوجة" End If End Sub بيانات المدرسين (1).mdb -
حاول التعديل بحيث يكون مربع النص المخصص للإدخال في النموذج الرئيسي بدلاً من الفرعي وإجراء تعديلاتك على هيكلة الكود بحيث يتعامل مع نموذج فرعي