-
Posts
3856 -
تاريخ الانضمام
-
Days Won
158
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Foksh
-
أنا شفتك ماشي معاه 😉 ، قلت يمكن متصاحبين جامد ، ومش غلط نتعرف على صحابك هههههههه انا مش رايح بعيد ، أدينا مستنين ( قال على رأي المثل : يا قاعدين يكفيكم شر الجايين 😂 )
- 11 replies
-
- برايل
- شخابيط وافكار
- (و4 أكثر)
-
مشاركة مع الأستاذ @Barna ، من خلال استعلام التحديث التالي :- UPDATE data_dor2 SET N_Arb = IIF(Val(Nz([Dor_Arb], 0)) = -1, -1, IIF(IsNumeric([Dor_Arb]), IIF(Val(Nz([Dor_Arb], 0)) >= 50, Val([Dor_Arb]), IIF(IsNull([TDor_Arb]) OR Val(Nz([TDor_Arb], -1)) = -1, 0, IIF(Val([TDor_Arb]) >= 50, 50, Val([TDor_Arb])) ) ), 0) ), N_Math = IIF(Val(Nz([Dor_Math], 0)) = -1, -1, IIF(IsNumeric([Dor_Math]), IIF(Val(Nz([Dor_Math], 0)) >= 50, Val([Dor_Math]), IIF(IsNull([TDor_Math]) OR Val(Nz([TDor_Math], -1)) = -1, 0, IIF(Val([TDor_Math]) >= 50, 50, Val([TDor_Math])) ) ), 0) ), N_Drast = IIF(Val(Nz([Dor_Drast], 0)) = -1, -1, IIF(IsNumeric([Dor_Drast]), IIF(Val(Nz([Dor_Drast], 0)) >= 50, Val([Dor_Drast]), IIF(IsNull([TDor_Drast]) OR Val(Nz([TDor_Drast], -1)) = -1, 0, IIF(Val([TDor_Drast]) >= 50, 50, Val([TDor_Drast])) ) ), 0) ), N_Since = IIF(Val(Nz([Dor_Since], 0)) = -1, -1, IIF(IsNumeric([Dor_Since]), IIF(Val(Nz([Dor_Since], 0)) >= 50, Val([Dor_Since]), IIF(IsNull([TDor_Since]) OR Val(Nz([TDor_Since], -1)) = -1, 0, IIF(Val([TDor_Since]) >= 50, 50, Val([TDor_Since])) ) ), 0) ), N_Eng = IIF(Val(Nz([Dor_Eng], 0)) = -1, -1, IIF(IsNumeric([Dor_Eng]), IIF(Val(Nz([Dor_Eng], 0)) >= 50, Val([Dor_Eng]), IIF(IsNull([TDor_Eng]) OR Val(Nz([TDor_Eng], -1)) = -1, 0, IIF(Val([TDor_Eng]) >= 50, 50, Val([TDor_Eng])) ) ), 0) ), N_Comp = IIF(Val(Nz([Dor_comp], 0)) = -1, -1, IIF(IsNumeric([Dor_comp]), IIF(Val(Nz([Dor_comp], 0)) >= 50, Val([Dor_comp]), IIF(IsNull([TDor_Comp]) OR Val(Nz([TDor_Comp], -1)) = -1, 0, IIF(Val([TDor_Comp]) >= 50, 50, Val([TDor_Comp])) ) ), 0) ), N_Skills = IIF(Val(Nz([Dor_skills], 0)) = -1, -1, IIF(IsNumeric([Dor_skills]), IIF(Val(Nz([Dor_skills], 0)) >= 50, Val([Dor_skills]), IIF(IsNull([TDor_Skills]) OR Val(Nz([TDor_Skills], -1)) = -1, 0, IIF(Val([TDor_Skills]) >= 50, 50, Val([TDor_Skills])) ) ), 0) ), N_Den = IIF(Val(Nz([Dor_Den], 0)) = -1, -1, IIF(IsNumeric([Dor_Den]), IIF(Val(Nz([Dor_Den], 0)) >= 50, Val([Dor_Den]), IIF(IsNull([TDor_Den]) OR Val(Nz([TDor_Den], -1)) = -1, 0, IIF(Val([TDor_Den]) >= 50, 50, Val([TDor_Den])) ) ), 0) ) WHERE name_student <> "IsNull";
-
يا أهلا وسهلا بالأفكار الجميلة وصاحبها .. جميل جداً جداً لي تعليق على :- لا حاجة لاستخدام vbMsgBoxRtlReading مع vbMsgBoxRight . فهذا يكفي لجعل اتجاه النص RTL ( حتى بدون vbMsgBoxRight، لأن vbMsgBoxRtlReading يتضمن عادةً محاذاة لليمين تلقائية ) . لاحظت انه في حال تم استخدام أزرار أخرى في النموذج ذات علاقة مختلفة مثل اغلاق النموذج من خلال الحدث Docmd.Close وكانت التسمية للزر الجديد = "إغلاق" فإن الدالة ستحاول قراءة التسمية للزر على أنها أحد الحروف ، مما ينتج رسالة الخطأ :- ثم ثم وفي النهاية لن يتم اغلاق النموذج نظام الصوت في بعض الحروف قد يكون غير واضح مثل الحرف ـا "الألف المد" ... ما وظيفة الـ Tag للأزرار الخاصة بالأحرف ؟؟؟؟؟
- 11 replies
-
- 1
-
-
- برايل
- شخابيط وافكار
- (و4 أكثر)
-
وعليكم السلام ورحمة الله وبركاته .. مشكلتك اذا ما خاب ظني ، هي في عدم اضافة المكتبة الموضحة في الصورة التالية :- طبعاً مع اختلاف الرقم 16.0 حسب الإصدار لديك . وإن شاء الله تشتغل معك .
-
لما تكون زهقان وداخل تشوف صحابك بيعملوا ايه فى المنتدى
Foksh replied to ابو جودي's topic in قسم الأكسيس Access
ظهرت عندي فعلاً .. أنت الأروع أستاذي الفاضل مع العلم كنت بفكر بحاجة تانية قيد التحديث -
نسيت ارفاق الملف cont.zip
-
هذا الاستعلام الذي خرجت به كما في الصورة السابقة نتيجته :- SELECT name_student, National_ID, CLASS_CLASS, num_Glos, n_lgna_dor2, sery_dor2, Dor_Arb, Dor_Math, Dor_Drast, Dor_Since, Dor_Eng, Dor_comp, Dor_skills, Dor_Den, TDor_Arb, TDor_Math, TDor_Drast, TDor_Since, TDor_Eng, TDor_Comp, TDor_Skills, TDor_Den, IIF(IsNumeric([Dor_Arb]), IIF(Val(Nz([Dor_Arb],0))>=50, Val([Dor_Arb]), IIF(IsNull([TDor_Arb]) OR Val(Nz([TDor_Arb],-1))=-1, 0, IIF(Val([TDor_Arb])>=50, 50, Val([TDor_Arb])) ) ), 0) AS N_Arb, IIF(IsNumeric([Dor_Math]), IIF(Val(Nz([Dor_Math],0))>=50, Val([Dor_Math]), IIF(IsNull([TDor_Math]) OR Val(Nz([TDor_Math],-1))=-1, 0, IIF(Val([TDor_Math])>=50, 50, Val([TDor_Math])) ) ), 0) AS N_Math, IIF(IsNumeric([Dor_Drast]), IIF(Val(Nz([Dor_Drast],0))>=50, Val([Dor_Drast]), IIF(IsNull([TDor_Drast]) OR Val(Nz([TDor_Drast],-1))=-1, 0, IIF(Val([TDor_Drast])>=50, 50, Val([TDor_Drast])) ) ), 0) AS N_Drast, IIF(IsNumeric([Dor_Since]), IIF(Val(Nz([Dor_Since],0))>=50, Val([Dor_Since]), IIF(IsNull([TDor_Since]) OR Val(Nz([TDor_Since],-1))=-1, 0, IIF(Val([TDor_Since])>=50, 50, Val([TDor_Since])) ) ), 0) AS N_Since, IIF(IsNumeric([Dor_Eng]), IIF(Val(Nz([Dor_Eng],0))>=50, Val([Dor_Eng]), IIF(IsNull([TDor_Eng]) OR Val(Nz([TDor_Eng],-1))=-1, 0, IIF(Val([TDor_Eng])>=50, 50, Val([TDor_Eng])) ) ), 0) AS N_Eng, IIF(IsNumeric([Dor_comp]), IIF(Val(Nz([Dor_comp],0))>=50, Val([Dor_comp]), IIF(IsNull([TDor_Comp]) OR Val(Nz([TDor_Comp],-1))=-1, 0, IIF(Val([TDor_Comp])>=50, 50, Val([TDor_Comp])) ) ), 0) AS N_Comp, IIF(IsNumeric([Dor_skills]), IIF(Val(Nz([Dor_skills],0))>=50, Val([Dor_skills]), IIF(IsNull([TDor_Skills]) OR Val(Nz([TDor_Skills],-1))=-1, 0, IIF(Val([TDor_Skills])>=50, 50, Val([TDor_Skills])) ) ), 0) AS N_Skills, IIF(IsNumeric([Dor_Den]), IIF(Val(Nz([Dor_Den],0))>=50, Val([Dor_Den]), IIF(IsNull([TDor_Den]) OR Val(Nz([TDor_Den],-1))=-1, 0, IIF(Val([TDor_Den])>=50, 50, Val([TDor_Den])) ) ), 0) AS N_Den FROM data_dor2 WHERE (((data_dor2.[name_student])<>"IsNull"));
-
-
وعليكم السلام ورحمة الله وبركاته .. بدايةً وقبل الخوض في التجارب أكثر . جرب هذا الاستعلام الجزئي ، هل يفي بالغرض ؟ SELECT data_dor2.name_student, data_dor2.National_ID, data_dor2.CLASS_CLASS, data_dor2.num_Glos, data_dor2.n_lgna_dor2, data_dor2.sery_dor2, data_dor2.Dor_Arb, data_dor2.Dor_Math, data_dor2.Dor_Drast, data_dor2.Dor_Since, data_dor2.Dor_Eng, data_dor2.Dor_comp, data_dor2.Dor_skills, data_dor2.Dor_Den, data_dor2.TDor_Arb, data_dor2.TDor_Math, data_dor2.TDor_Drast, data_dor2.TDor_Since, data_dor2.TDor_Eng, data_dor2.TDor_Comp, data_dor2.TDor_Skills, data_dor2.TDor_Den, data_dor2.N_Arb, data_dor2.N_Math, data_dor2.N_Drast, data_dor2.N_Since, data_dor2.N_Eng, data_dor2.N_Comp, data_dor2.N_Skills, data_dor2.N_Den, IIf(data_dor2.N_Arb=0, IIf(data_dor2.TDor_Arb>=50, data_dor2.TDor_Arb, data_dor2.TDor_Arb), IIf(data_dor2.TDor_Arb<50, data_dor2.TDor_Arb, 50)) AS Final_Arb, IIf(data_dor2.N_Math=0, IIf(data_dor2.TDor_Math>=50, data_dor2.TDor_Math, data_dor2.TDor_Math), IIf(data_dor2.TDor_Math<50, data_dor2.TDor_Math, 50)) AS Final_Math, IIf(data_dor2.N_Drast=0, IIf(data_dor2.TDor_Drast>=50, data_dor2.TDor_Drast, data_dor2.TDor_Drast), IIf(data_dor2.TDor_Drast<50, data_dor2.TDor_Drast, 50)) AS Final_Drast, IIf(data_dor2.N_Since=0, IIf(data_dor2.TDor_Since>=50, data_dor2.TDor_Since, data_dor2.TDor_Since), IIf(data_dor2.TDor_Since<50, data_dor2.TDor_Since, 50)) AS Final_Since, IIf(data_dor2.N_Eng=0, IIf(data_dor2.TDor_Eng>=50, data_dor2.TDor_Eng, data_dor2.TDor_Eng), IIf(data_dor2.TDor_Eng<50, data_dor2.TDor_Eng, 50)) AS Final_Eng, IIf(data_dor2.N_Comp=0, IIf(data_dor2.TDor_Comp>=50, data_dor2.TDor_Comp, data_dor2.TDor_Comp), IIf(data_dor2.TDor_Comp<50, data_dor2.TDor_Comp, 50)) AS Final_Comp, IIf(data_dor2.N_Skills=0, IIf(data_dor2.TDor_Skills>=50, data_dor2.TDor_Skills, data_dor2.TDor_Skills), IIf(data_dor2.TDor_Skills<50, data_dor2.TDor_Skills, 50)) AS Final_Skills, IIf(data_dor2.N_Den=0, IIf(data_dor2.TDor_Den>=50, data_dor2.TDor_Den, data_dor2.TDor_Den), IIf(data_dor2.TDor_Den<50, data_dor2.TDor_Den, 50)) AS Final_Den FROM data_dor2 WHERE data_dor2.name_student Is Not Null; وبناءً عليه نستكمل باقي المطلوب ..
-
الحصول على عنوان كامل مكتوب من خلال الاكسل لعنوان رابط جوجل
Foksh replied to Abualaa-dr's topic in منتدى الاكسيل Excel
وعليكم السلام ورحمة الله وبركاته .. من جهة قد يكون الأمر صعباً . لكن من خلال خدمات Google Cloud Console ، وتوظيف الـ API بشكل جيد يمكن الحصول على النتيجة القريبة من الطلب الذي تريده . كنت قد توجهت الى استخدام خدمات Google API في عدة مشاريع، قد تجد منها متوفراً في توقيعي نهاية هذه المشاركة .. -
لما تكون زهقان وداخل تشوف صحابك بيعملوا ايه فى المنتدى
Foksh replied to ابو جودي's topic in قسم الأكسيس Access
ايه رأي حضرتك في السويييييييت 🤣 -
لما تكون زهقان وداخل تشوف صحابك بيعملوا ايه فى المنتدى
Foksh replied to ابو جودي's topic in قسم الأكسيس Access
-
لما تكون زهقان وداخل تشوف صحابك بيعملوا ايه فى المنتدى
Foksh replied to ابو جودي's topic in قسم الأكسيس Access
تصدقوا بالله اني بحضر مفاجأة ليك يا بشمهندس محمد مع انه بشمهندس موسى سبقني ، بس الله وكيلك عندي زبون رخم حبتين -
-
طيب ، على حسب ما فهمت من مناقشات سابقة بهذا الخصوص ، جرب هذا التعديل :- Private Sub أمر322_Click() On Error GoTo ErrHandler If DCount("*", "data_dor2", "Not IsNull(n_lgna_dor2)") > 0 Then MsgBox "عفوا .. تم إضافة وترقيم اللجان من قبل", vbCritical + vbMsgBoxRight, "" Exit Sub End If If IsNull(Me.studen_lg) Or Me.studen_lg <= 0 Then MsgBox "عزيزى مدخل البيانات .. من فضلك ضع عدد التلاميذ المطلوبة فى كل لجنة قبل التنفيذ", vbCritical + vbMsgBoxRight, "" Exit Sub End If If IsNull(Me.start_lg) Then MsgBox "عزيزى مدخل البيانات من فضلك ضع بداية ترقيم اللجان قبل التنفيذ", vbCritical + vbMsgBoxRight, "" Exit Sub End If Dim rs As DAO.Recordset Dim lgCounter As Long Dim stdPerGroup As Long Dim i As Long Set rs = Me.RecordsetClone rs.MoveFirst lgCounter = Me.start_lg stdPerGroup = Me.studen_lg i = 0 Do While Not rs.EOF rs.Edit rs!n_lgna_dor2 = lgCounter rs.Update i = i + 1 If i Mod stdPerGroup = 0 Then lgCounter = lgCounter + 1 End If rs.MoveNext Loop Me.Requery MsgBox "تم توزيع الطلاب على اللجان بنجاح", vbInformation + vbMsgBoxRight, "" Exit Sub ErrHandler: MsgBox " : حدث خطأ" & Err.Description, vbCritical + vbMsgBoxRight, "" End Sub
-
وعليكم السلام ورحمة الله وبركاته.. العنوان ليس ذا دلالة على المشكلة . وبدافع الفضول عند فتح الموضوع نجد أن الشرح لا يوصل المطلوب . فما هو الذي لا يتم تنفيذه ؟؟؟؟؟ 😅
-
في النموذج المستمر ؛ اضافة قيمة الى حقل بناء على قيمتين في سجلات أخرى
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
ذهبت أفكارنا في تشعبات كثيرة فعلاً ، ولكن يمكن نقصان المعلومات كان أحد الأسباب 😅 على العموم أعتقد ذهابك إلى مقترحك ، هو أنسب حل يلبي مطلبك بشكل وافي 😇 -
في النموذج المستمر ؛ اضافة قيمة الى حقل بناء على قيمتين في سجلات أخرى
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
هنا ، ممكن يكون أكتر من سيناريو للفكرة .. هل الفترات ستكون مقرونة بتاريخ مثلاً لكل شهر ( متغيرة في حال وجود أشهر مثل شهر رمضان على سبيل المثال انه ممكن يكون وقت العمل أقصر أو متأخر عن الأشهر العادية ... إلخ من سيناريوهات ؟؟؟) ولكن إن كان يحتوي أكثر من سجل فحتماً لازم يكون هناك شرط إضافي . طبعاً كل دي احتمالات قد تكون وهمية بناءً على فكرة استاذي ابو خليل هنا :- لأنه هنا هو حدد الـ ID الخاص بالسجل وليس الخاص بالفترة . على أساس انها ممكن تكون سجلات وحيدة ويتم تحديثها حسب الحاجة . -
في النموذج المستمر ؛ اضافة قيمة الى حقل بناء على قيمتين في سجلات أخرى
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
على فكرة ، ممكن يكون في لبس في فهم ftraName . انا ربطت الموضوع على انه ممكن يكون اسماء الفترات في جدول منفصل وان 1 و 2 دول معرفات الفترات في جدول أسماء الفترات ، وليس الحقل ID اللي في الجدول الحالي tbl_Ftrat .. يعني انا اشتغلت على ان الفترات ليها جدول منفصل وان القيمة ممكن تكون معرف الفترة بناءً على الجملة دي فهمت قصدي !؟ -
في النموذج المستمر ؛ اضافة قيمة الى حقل بناء على قيمتين في سجلات أخرى
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
ولو عاوز أريحك برضو .. جرب ده برضو :- Dim totalMinutes As Double totalMinutes = Nz(DSum("countWorkHours", "tbl_Ftrat", "ftraName IN (1, 2)"), 0) CurrentDb.Execute "UPDATE tbl_Ftrat SET countWorkHours = " & totalMinutes & " WHERE ID = 1", dbFailOnError Me.Refresh -
في النموذج المستمر ؛ اضافة قيمة الى حقل بناء على قيمتين في سجلات أخرى
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
يا صاحبي ، شوف :- totalminutes = Nz(DSum("countWorkHours", "tbl_Ftrat", "ftraName IN ('1','2') AND ID > 1"), 0) انا حددتله الشرط في الحقل countWorkHours ، اللي عاوز اجمع قيمه اللي هو : ftraName والشرط كان IN ('1','2') وشرط السجل اللي عاوز أحدثه : WHERE ID = 1" تبقى فين امشكلة ؟؟ جرب عدل القيم أو نوع الحقل واحكيلي الخلل !!!! -
في النموذج المستمر ؛ اضافة قيمة الى حقل بناء على قيمتين في سجلات أخرى
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
-
في النموذج المستمر ؛ اضافة قيمة الى حقل بناء على قيمتين في سجلات أخرى
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
فيما لو كانت القيمة المخزنة في جدولك يمثل رقم الفترة من جدولها ( معرف الفترة افترضت انه 1 = الصباحية ، 2 = المسائية بغض النظر عن التسمية ) -
في النموذج المستمر ؛ اضافة قيمة الى حقل بناء على قيمتين في سجلات أخرى
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
أنا سأكتفي بما لدي في آخر محاولة ,, في الزر :- Dim totalminutes As Double totalminutes = Nz(DSum("countWorkHours", "tbl_Ftrat", "ftraName IN ('1','2') AND ID > 1"), 0) CurrentDb.Execute "UPDATE tbl_Ftrat SET countWorkHours = " & totalminutes & " WHERE ID = 1", dbFailOnError Me.Refresh الملف المرفق :- Database2.zip -
في النموذج المستمر ؛ اضافة قيمة الى حقل بناء على قيمتين في سجلات أخرى
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
طيب ، كفكرة أخرى بتحديد شروط الفلترة أكثر من خلال الاستدعاء ، جرب هذا التعديل :- Public Sub UpdateRecordSumAfterID_ByFilter(tableName As String, idField As String, idValue As Variant, targetField As String, sumField As String, Optional filterField As String = "", Optional filterValue1 As String = "", Optional filterValue2 As String = "") Dim rs As DAO.Recordset Dim total As Double Dim foundTarget As Boolean Set rs = CurrentDb.OpenRecordset(tableName, dbOpenDynaset) If rs.EOF Then Exit Sub rs.MoveFirst foundTarget = False Do Until rs.EOF If foundTarget Then If filterField <> "" Then If rs.Fields(filterField).Value = filterValue1 Or rs.Fields(filterField).Value = filterValue2 Then total = total + Nz(rs.Fields(sumField).Value, 0) End If Else total = total + Nz(rs.Fields(sumField).Value, 0) End If ElseIf rs.Fields(idField).Value = idValue Then foundTarget = True End If rs.MoveNext Loop rs.MoveFirst Do Until rs.EOF If rs.Fields(idField).Value = idValue Then rs.Edit rs.Fields(targetField).Value = total rs.Update Exit Do End If rs.MoveNext Loop rs.Close Set rs = Nothing DoCmd.RunCommand acCmdRefresh End Sub وسيكون الإستدعاء كالآتي :- Call UpdateRecordSumAfterID_ByFilter( _ "tbl_Ftrat", _ "ID", 1, _ "countWorkHours", _ "countWorkHours", _ "ftraName", _ "فترة صباحية", _ "فترة مسائية")