بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
3534 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
145
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Foksh
-
اختصاراً لوقتك و وقت الاساتذة ، لم لا تقوم بالافاق الملف .
-
هذا جزء من مشروع سابق ، ويظهر تقريباً الفكرة ذاتها ، ولكن مع تأسيس مضبوط لمتطلبات الفكرة .. طبعاً التنفيذ تم على جميع الأجزاء التي يتم فيها الدفع ( دائن / مدين ) ... للأفراد أو الشركات ..
-
نعم أخي الكريم ، تستطيع استخلاص اليوم والشهر والسنة بشكل منفصل بأكثر من طريقة ، بالإعتماد على حقل الرقم القومي :- السنة لوحدها = YearPart: IIf(Left([Stucard],1)="3",2000,1900)+Val(Mid([Stucard],2,2)) الشهر لوحده = MonthPart: Val(Mid([Stucard],4,2)) اليوم لوحده = DayPart: Val(Mid([Stucard],6,2))
-
كما أعتقد وجود خطأ في البيانات التي في المرفق الأخير الذي تم اعتماده للعمل !!! حيث مثلاً الطالب صاحب الرقم القومي = 31705180106695 موجود له سجلات في الجدول "Tbl_degree_Detail" ولكن للأسف ليس له سجل في الجدول الخاص بالطلاب "Tbl_student" واعتقد انه في الصف الثاني وله درجات بمجموع = "368" لتحقيق الشروط للمواد المعتمدة . وعليه فإنه من الطلاب الأوائل الـ 10 ، مع العلم أنه ليس له سجل في الجدزل "tbl_Temp" أيضاً .. فكيف ستكون النتائج صحيحة ما لم تكن البيانات سليمة !!! أعتذر إذا كانت الملاحظات التي أطرحها ليست ذات أهمية .
-
في محاولتي سابقاً لاستخلاص تاريخ الميلاد من الرقم القومي ، استخدمت هذا السطر في الاستعلام :- BirthDate: DateSerial(IIf(Left([Stucard],1)="3",2000,1900)+Val(Mid([Stucard],2,2)),Val(Mid([Stucard],4,2)),Val(Mid([Stucard],6,2))) إن كانت تحقق غاية بخصوص تاريخ الميلاد
-
يعني ان حقل النسبة هو المعتمد في ترفيع الطالب الى صف أعلى أو اعتباره غير مكمل لصفه الدراسي ... اذا يتم اعتماده للتمييز بين تقدير ودرجات الطلاب عن بعضهم . طبعاً سيتم استثناء الطلاب الذين لهم "غ" من نتيجة الفلترة !!
-
أما إن كان تركيز فكرة الـ 10 الأوائل يصب على قيمة حقل النسبة alnesbah ( اي بعد احتساب المواد الداخلة أو .... إلخ من تفرعات ) ، فسؤالي هل النتيجة التالية صحيحة ؟؟ Query1 alsaf_Id term_Num Studentname alnesbah Stucard BirthDate 1 1 كارما مجاهد محمد مجاهد عمران %100 31807110105389 2018-07-11 1 2 كارما مجاهد محمد مجاهد عمران %100 31807110105389 2018-07-11 2 1 تمارا عادل سعيد عبدالفتاح احمد %100 31702210104146 2017-02-21 2 2 تمارا عادل سعيد عبدالفتاح احمد %88 31702210104146 2017-02-21 3 1 امل حسين سيد عبدالمنعم %96 31601300101609 2016-01-30 3 2 اروي اشرف حسني محمد %87.25 31608252106827 2016-08-25 4 1 احمد سامح عبدالسلام نمر سلومه %80 31506162203214 2015-06-16 4 2 احمد سامح عبدالسلام نمر سلومه %72.67 31506162203214 2015-06-16 5 1 الاء عوض حمدالله احمد علي %70 31401200101602 2014-01-20 5 2 الاء محمد نصرالدين فهمي محمد %66 31407080106069 2014-07-08 6 1 احمد رامي سيد امين %80 31307130100518 2013-07-13 6 2 احمد رامي سيد امين %66.67 31307130100518 2013-07-13 وهل فعلاً نسبة النجاح المئوية تمت بعد احتساب المواد الداخلة في النجاح و المجموع و النشاط ، أم قبل ؟؟؟
-
هل هذه النقطة ستستند الى استخراج تاريخ الميلاد من الرقم القومي للطالب 🤔 ؟؟ أم أنه من الأساس لا يوجد حقل لتاريخ ميلاد الطالب ( بعد الإطلاع على المرفق طبعاً )
-
وعليكم السلام ورحمة الله وبركاته .. أهلا بأشقائنا في السودان الحبيب ، وبمشاركتك الأولى نرحب بك معنا في عالمنا الصغير .. باعتقادي ومن وجهة نظري ( الغير ملزمة طبعاً ) أن احتساب الرصيد التراكمي له عدة أشكال للحصول عليه ، فمثلاً في أحد نشاريعي القديمة كنت قد توجهت الى اضافة حقل "الرصيد الحالي" لكل عميل بحيث يبدأ من 0 ، ويتم تحديثه بالقيمة الجديدة حسب نوع الحركة ( لنفترض = سحب أو إيداع ) وطبعاً سيكون الأمر مشروطاً برقم العميل الفريد والغير مكرر . وعليه فملاحظاتي في ملفك المرفق هي :- في الجدول Bill_info ، ولنفترض CustomerID = 1 له 5 حركات ( منها 2 مدين ، و 3 دائن ) فبعد كل حركة إدخال سجل جديد يتم انشاء دالة أو استعلام تحديث بحيث اذا كانت العملية مدين فيتم اضافتها الى الحقل السابق الذي قلنا انه مخصص للرصيد التراكمي ، وان كانت دائن يتم خصمها أو طرحها من رصيده .. وعليه تستطيع تتبع كل حركة بتاريخها و قيمتها ... إلخ . أتمنى أن تكون الفكرة قد وصلت بشكل صحيح و واضح . ومتأكد أنك ستجد الكثير من الأفكار التي يمكن تطبيقها وتنفيذها .
-
الآن جميع طلاب الشفهي سيخضعون للياقة ، صحيح ؟ أي لا يوجد استثناءات !! يتم توزيعهم على جلستين (صباحي / مسائي) بنفس مبدأ الشفوي . القدرة الاستيعابية للياقة تختلف : صباحي = 70 طالب مسائي = 60 طالب يتم أخذ الطلاب من جدول Tb_Tawze_Shafawe بترتيب ظهورهم ( حسب Magmoaa ) . يتم حفظ التوزيع في جدول Tb_Tawze_Leyaka . للتأكيد . يوجد حقل From_Mag_Shafawe سنستخدمه لتوثيق أن المجموعة ( أو جزء منها ) جاءت من مجموعة شفوي رقم كذا . يتم تجاهل يوم الجمعة كالعادة من التوزيع . يتم التوزيع من تاريخ معين سيتم تحديده ( أخبرني هذه النقطة بوضوح ) . الترقيم Magmoaa_Leyaka سيبدأ من 1 ويستمر بترتيب التوزيع دون إعادة الترقيم . هل هناك أي استثناءات أو شروط إضافية لم تذكرها بعد ❔ على سبيل المثال :- هل نحتاج ربط اللياقة بتاريخ الشفوي محدد ❓ هل نراعي توزيع اللياقة حسب المدرسة أو الصف أو نوزعهم ككتلة واحدة فقط حسب ترتيب الشفوي ❓
-
أخي أحمد الحمد لله انه الأمور كانت نتيجتها كما تريد ، وان شاء الله متابع مع توزيع اللياقة ، بالنسبة لاختيار أفضل إجابة ، فهي عادة يا صديقي تُعطي لصاحب الحل وليس لصاحب الموضوع 😅 ، وهي عادة دلالة على أن الموضوع تم إغلاقه وانتهت جميع مشاكله .. لذا اجعلها آخر شيء حتى ننتهي من التوزيع اليوم ان شاء الله .
-
أخي أحمد ، هل هذا المثال صحيح :- مثال توضيحي لو كانت : Cou_Stu = 45 (عدد الطلاب). Seaa_Kaa_Shafawe = 20 (سعة القاعة). فسيتوزعون كالآتي : الجلسة 1 : 20 طالب (صباحي) الجلسة 2 : 20 طالب (مسائي) اليوم التالي : الجلسة 3 : 5 طلاب (صباحي فقط) استخدم هذا التعديل في دالة التوزيع الشفهي ، وطابقها مع حساباتك ومتطلباتك ان كانت صحيحة Dim db As DAO.Database Dim rs As DAO.Recordset Dim rsInsert As DAO.Recordset Dim sql As String Dim GroupNo As Long Dim DateCounter As Date Dim DayCounter As Long Dim Period As String Dim StudentLeft As Long Dim MaxPerSession As Long Dim StudentsThisSession As Long Set db = CurrentDb ' جلب جميع الصفوف لجميع المدارس بترتيب واضح sql = "SELECT * FROM Tb_Cou_Stu ORDER BY ID_School_B, ID_Room_B" Set rs = db.OpenRecordset(sql, dbOpenSnapshot) Set rsInsert = db.OpenRecordset("Tb_Tawze_Shafawe", dbOpenDynaset) Do Until rs.EOF ' بدء التوزيع من اليوم المحدد لكل صف بشكل مستقل DateCounter = StartDate DayCounter = 1 GroupNo = 1 StudentLeft = rs!Cou_Stu MaxPerSession = rs!Seaa_Kaa_Shafawe Do While StudentLeft > 0 ' تجاوز الجمعة Do While Weekday(DateCounter, vbSaturday) = 6 DateCounter = DateAdd("d", 1, DateCounter) DayCounter = DayCounter + 1 Loop ' جلسة صباحية StudentsThisSession = IIf(StudentLeft >= MaxPerSession, MaxPerSession, StudentLeft) rsInsert.AddNew rsInsert!ID_School_C = rs!ID_School_B rsInsert!ID_Room_C = rs!ID_Room_B rsInsert!Date_Shafawe = DateCounter rsInsert!Day_Shafawe = DayCounter rsInsert!S_M = "صباحي" rsInsert!Magmoaa = GroupNo rsInsert!Cou_Stu_Shafawe = StudentsThisSession rsInsert.Update StudentLeft = StudentLeft - StudentsThisSession GroupNo = GroupNo + 1 ' جلسة مسائية (إن تبقى طلاب) If StudentLeft > 0 Then StudentsThisSession = IIf(StudentLeft >= MaxPerSession, MaxPerSession, StudentLeft) rsInsert.AddNew rsInsert!ID_School_C = rs!ID_School_B rsInsert!ID_Room_C = rs!ID_Room_B rsInsert!Date_Shafawe = DateCounter rsInsert!Day_Shafawe = DayCounter rsInsert!S_M = "مسائي" rsInsert!Magmoaa = GroupNo rsInsert!Cou_Stu_Shafawe = StudentsThisSession rsInsert.Update StudentLeft = StudentLeft - StudentsThisSession GroupNo = GroupNo + 1 End If ' الانتقال لليوم التالي DateCounter = DateAdd("d", 1, DateCounter) DayCounter = DayCounter + 1 Loop rs.MoveNext Loop rs.Close: rsInsert.Close Set rs = Nothing: Set rsInsert = Nothing: Set db = Nothing MsgBox "تم توزيع جلسات الشفوي لجميع الصفوف بشكل صحيح", vbInformation + vbMsgBoxRight, "نجاح" مسألة الصباحي والمسائي لم أطبقها حالياً ، فهي ليست ذات علاقة بآلية التوزيع في الوقت الحالي ,
-
اذا كان المقصود من كلام أخونا صاحب الموضوع هو الكتابة على ملف PDF يستعمله كقالب !!!! فهذه نقطة لا ولم ولن يتم تطبيقها من خلال اكسيس إلا بإنشاء تقرير ثم تصديره كملف Pdf . غير ذلك فلن تحصل على إختراع يلبي حاجتك وفكرتك.
-
عرض اختيارات متعددة من مربع سرد وتحرير ومربع قائمة في نفس التقرير
Foksh replied to moho58's topic in قسم الأكسيس Access
استبدل الدالة القديمة ، بالدالة التالية ، Private Sub AddToTempSelected() On Error GoTo ErrorHandler Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSQL As String Dim anneeValue As Variant Dim gradeValue As Variant Dim wilayaValue As Variant Dim existingWilaya As String Dim wilayaArray As Variant Dim wilayaExists As Boolean Dim i As Integer Dim currentYear As Integer Dim previousYear As Integer Set db = CurrentDb() currentYear = Me.ANNEE3.Column(0) previousYear = currentYear - 1 anneeValue = previousYear & "/" & currentYear gradeValue = Me.GRADE3.Column(0) wilayaValue = Trim(Me.lst_XX.Column(0)) strSQL = "SELECT wilaya FROM temp_selected " & _ "WHERE annee = '" & Replace(anneeValue, "'", "''") & "' " & _ "AND grade = '" & Replace(gradeValue, "'", "''") & "'" Set rs = db.OpenRecordset(strSQL) If Not rs.EOF Then existingWilaya = Nz(rs!wilaya, "") If existingWilaya <> "" Then wilayaArray = Split(existingWilaya, " - ") wilayaExists = False For i = LBound(wilayaArray) To UBound(wilayaArray) If Trim(wilayaArray(i)) = wilayaValue Then wilayaExists = True Exit For End If Next i If Not wilayaExists Then If existingWilaya <> "" Then existingWilaya = existingWilaya & " - " & wilayaValue Else existingWilaya = wilayaValue End If strSQL = "UPDATE temp_selected SET wilaya = '" & Replace(existingWilaya, "'", "''") & "' " & _ "WHERE annee = '" & Replace(anneeValue, "'", "''") & "' " & _ "AND grade = '" & Replace(gradeValue, "'", "''") & "'" db.Execute strSQL, dbFailOnError End If Else strSQL = "UPDATE temp_selected SET wilaya = '" & Replace(wilayaValue, "'", "''") & "' " & _ "WHERE annee = '" & Replace(anneeValue, "'", "''") & "' " & _ "AND grade = '" & Replace(gradeValue, "'", "''") & "'" db.Execute strSQL, dbFailOnError End If Else strSQL = "INSERT INTO temp_selected (annee, grade, wilaya) " & _ "VALUES ('" & Replace(anneeValue, "'", "''") & "', '" & Replace(gradeValue, "'", "''") & "', '" & Replace(wilayaValue, "'", "''") & "')" db.Execute strSQL, dbFailOnError End If CleanUp: If Not rs Is Nothing Then rs.Close Set rs = Nothing Set db = Nothing Exit Sub ErrorHandler: MsgBox "حدث خطأ أثناء محاولة تحديث البيانات", vbCritical + vbMsgBoxRight, "خطأ" Resume CleanUp End Sub حيث سيتم تخزين القيمة في الجدول مباشرة بالتنسيق الذي تريده ( السنة التي تم اختيارها = 2025 ، سيتم تخزينها = 2024 / 2025 في الحقل بعد ان تم تغيير نوعه الى حقل نصي ) BASE_e.accdb -
أخي الكريم ، بعد تحميل المرفق وهو نفسه المرفق السابق في موضوعك الأول ، كنا قد وددنا منك أولا أن تشرح لنا آليه العمل على مشروعك ، بما أنك ارلت كامل المشروع . يعني اشرح لنا آلية العمل على المشروع ، والسبب طبعاً أن من سيقوم بتحميل المرفق لن يقوم بدراسة كامل مشروعك ويستغرق منه الأمر ساعات حتى يفهم فكرتك وطريقتك .. أرجو أن أكون قد أوضحت لك المطلوب منك . أو تقوم بتعديل المرفق بحيث يحتوي فقط الأقسان التي لها علاقة بالمطلوب لتصغير مساحة دراسة مشروعك مع شرحك طبعاً
-
عرض اختيارات متعددة من مربع سرد وتحرير ومربع قائمة في نفس التقرير
Foksh replied to moho58's topic in قسم الأكسيس Access
بأقرب فرصة إن شاء الله 😇 . -
بأقرب فرصة سنحاول معاً إيجاد حل ، حال وصولي للكمبيوتر 🤗.
-
طيب .. بطريقتي سأسأل .. هل الفرق هو الحقول التالية :- TNO, NASS, nass1 MSNO, MS_NAMEX من جدول Tab_Msaneed ID_Xsub, Code, Parentx, Total, LVLno, Xsub MAIN_sub من جدول TAB_Subject_X يعني مقصدي انت تريد اضافة كافة الحقول الى الاستعلام الذي خرجت به ويلبي حاجتك في القيم المطلوب عرضها ، صحيح ؟؟؟ مع العلم أنك تستطيع إزالة الشرط :- AND TAB_Subject.ID IN (76, 159, 1873) هل هذا الاستعلام يلبي احتياجك على سبيل المثال :- SELECT TAB.MNO, TAB.TNO, TAB.NASS, TAB.nass1, Tab_Msaneed.MSNO, Tab_Msaneed.MS_NAMEX, TAB_Subject.ID, TAB_Subject.ID_Xsub, TAB_Subject.SName, TAB_Subject.Code, TAB_Subject.Parentx, TAB_Subject.Total, TAB_Subject.LVLno, TAB_Subject.LVL1, IIf(TAB_Subject.LVL1 = 0, Null, (SELECT TOP 1 SName FROM TAB_Subject AS L1 WHERE L1.LVL1 = TAB_Subject.LVL1 AND L1.LVL2 = 0 AND L1.LVL3 = 0 AND L1.LVL4 = 0)) AS LVL1name, TAB_Subject.LVL2, IIf(TAB_Subject.LVL2 = 0, Null, (SELECT TOP 1 SName FROM TAB_Subject AS L2 WHERE L2.LVL1 = TAB_Subject.LVL1 AND L2.LVL2 = TAB_Subject.LVL2 AND L2.LVL3 = 0 AND L2.LVL4 = 0)) AS LVL2name, TAB_Subject.LVL3, IIf(TAB_Subject.LVL3 = 0, Null, (SELECT TOP 1 SName FROM TAB_Subject AS L3 WHERE L3.LVL1 = TAB_Subject.LVL1 AND L3.LVL2 = TAB_Subject.LVL2 AND L3.LVL3 = TAB_Subject.LVL3 AND L3.LVL4 = 0)) AS LVL3name, TAB_Subject.LVL4, IIf(TAB_Subject.LVL4 = 0, Null, (SELECT TOP 1 SName FROM TAB_Subject AS L4 WHERE L4.LVL1 = TAB_Subject.LVL1 AND L4.LVL2 = TAB_Subject.LVL2 AND L4.LVL3 = TAB_Subject.LVL3 AND L4.LVL4 = TAB_Subject.LVL4)) AS LVL4name, TAB_Subject.Xsub, TAB_Subject_X.MAIN_sub, TAB.TYPE1, (SELECT LISTname FROM DATA_list WHERE NOM2 = TAB.TYPE1 AND NOM1 = 1) AS TYPE1name, TAB.TYPE2, (SELECT LISTname FROM DATA_list WHERE NOM2 = TAB.TYPE2 AND NOM1 = 2) AS TYPE2name FROM ((TAB INNER JOIN Tab_Msaneed ON TAB.MUSNAD = Tab_Msaneed.MSNO) INNER JOIN TAB_Subject_X ON TAB.MNO = TAB_Subject_X.MNO) INNER JOIN TAB_Subject ON TAB_Subject_X.SUB_ID = TAB_Subject.ID ORDER BY TAB.TNO;