علي المصري قام بنشر يناير 15, 2017 الكاتب قام بنشر يناير 15, 2017 وصلنا الي وجود تاريخ فارغ عندما يكون اليوم لا يوجد به غياب أو تأخر وقمت بعمل تقريرين احدهم بين تاريخين والأخر لكل الفترة الموجودة نريد ان نكمل العمل
jjafferr قام بنشر يناير 30, 2017 قام بنشر يناير 30, 2017 السلام عليكم أستاذ علي معلش اتحملني شوي ، الطلب ليس متكامل اولا انا نسيت ايش بالضبط اللي لازم يصير (العتب على الشيب) ، ولكني عملت تغيير في الخطة ، وان شاء الله يكون مناسب للنوعين من التقارير اختر تاريخين من النموذج frm_PrintRpt ، للإختيار الاول "بين تاريخين محددين" . 1. لما تضغط على زر عمل التقرير ، البرنامج يعمل جدول خارجي ، به التواريخ والايام و eSIS جميع الطلبة للصف والشعبة ، هذا الجدول المؤقت (tmp_tbl_Dates_Days) في البرنامج المؤقت (tmp_Dates_Days.mdb) يتكون في مجلد الوندوز Temp ، ولست بحاجة لرؤيته ، وعندما يتكون الجدول ، ترى نتائجه في الاستعلام qry_Temp ، 2. تلقائيا الاستعلام qry_T2 يفتح ، وسترى فيه جميع الايام ، سواء بغياب او بدون ، ويجب ان نعدل الحقول في هذا الاستعلام ، ونعمل التقريرين منه رجاء فحص هذا العمل ، لأنه سيستبدل العمل السابق ، ولكني بحاجة الى توجيهك للخطوة التالية اما الاختيار الثاني "طباعة التقرير بالكامل" فيقوم الكود بأخذ اول يوم في الجدول ، وآخر يوم ، ويقوم بنفس العملية اعلاه الاستعلامات الوحيدة التي اعتمدت عليها في هذه الخطوة هي qry_T1 و qry_T2 و qry_Temp ، والشغل كله تقوم به الوحدة النمطية التالية: Option Compare Database Dim tbdf As TableDef, qrydf As QueryDef, fld As Field Dim rst As DAO.Recordset, rst_TQ As DAO.Recordset Dim sfrm As Form Dim wrkAcc As Workspace Dim dbsNew As Database Dim mdb_Name As String Public H1 As Integer Function Make_DB() On Error GoTo err_Make_DB 'populate Arabic day in an array Dim Arabic_Days() As String Set rst = CurrentDb.OpenRecordset("Select * From tbl_Months") rst.MoveLast: rst.MoveFirst ReDim Arabic_Days(7) For i = 1 To 7 Arabic_Days(i) = rst!Day_A rst.MoveNext Next i 'How Many Students mySQL = "SELECT Grade, Section, eSIS FROM tbl_Follow4" mySQL = mySQL & " Where Grade='" & [Forms]![frm_PrintRpt]![StuGrade] & "'" mySQL = mySQL & " AND Section='" & [Forms]![frm_PrintRpt]![StuSection] & "'" mySQL = mySQL & " GROUP BY Grade, Section, eSIS" 'Debug.Print mySQL Set rst_TQ = CurrentDb.OpenRecordset(mySQL) rst_TQ.MoveLast: rst_TQ.MoveFirst How_Many_Students = rst_TQ.RecordCount 'create an empty Dates_Days.mdb in the same folder as the FE 'this will allow more than one user to use This DB Set wrkAcc = CreateWorkspace("AccessWorkspace", "admin", "", dbUseJet) 'database name and path (in the Windows Temp Folder) mdb_Name = GetWinTemp & "\tmp_Dates_Days.mdb" 'mdb_Name = Application.CurrentProject.Path & "\tmp_Dates_Days.mdb" ' Make sure there isn't already a file with the name of the new database. If Dir(mdb_Name) <> "" Then Kill mdb_Name ' Create the new database Set dbsNew = wrkAcc.CreateDatabase(mdb_Name, dbLangGeneral) dbsNew.Close wrkAcc.Close 'make a Table tmp_tbl_Dates_Days using "Make Table" query in the DB Dates_Days.mdb mySQL = "SELECT tmp_tbl_Dates_Days.* INTO tmp_tbl_Dates_Days IN " & Chr(34) & mdb_Name & Chr(34) mySQL = mySQL & " FROM tmp_tbl_Dates_Days" 'Debug.Print mySQL DoCmd.SetWarnings False DoCmd.RunSQL mySQL DoCmd.SetWarnings True 'set the Dates required If Forms!frm_PrintRpt!MyDates = 1 Then fDate = Forms!frm_PrintRpt!FromDate tDate = Forms!frm_PrintRpt!ToDate Else fDate = DMin("[DayDate]", "tbl_Follow4") tDate = DMax("[DayDate]", "tbl_Follow4") End If Set dbsNew = OpenDatabase(mdb_Name) Set rst = dbsNew.OpenRecordset("Select * From tmp_tbl_Dates_Days") For j = 1 To How_Many_Students N = fDate dif = DateDiff("d", fDate, tDate) For i = 0 To dif N = DateAdd("d", i, fDate) 'MsgBox "Date:" & N & vbCrLf & "Day :" & Format(N, "dddd") 'skip Fridays and Saturdays If Weekday(N) <> 6 And Weekday(N) <> 7 Then rst.AddNew rst!DayDate = N rst!DayName = Arabic_Days(Weekday(N)) 'Format(N, "dddd") rst!eSIS = rst_TQ!eSIS rst.Update 'MsgBox Arabic_Days(Weekday(N)) & vbCrLf & Format(N, "dddd") End If Next i rst_TQ.MoveNext Next j 'now make the query qry_Temp based on the new location mySQL = "SELECT Auto_ID, DayDate, DayName, eSiS" mySQL = mySQL & " FROM tmp_tbl_Dates_Days IN " & Chr(34) & mdb_Name & Chr(34) mySQL = mySQL & " ORDER BY Auto_ID" 'delete the old qry_Temp DoCmd.DeleteObject acQuery, "qry_Temp" 'make the new qry_Temp Set qrydf = CurrentDb.CreateQueryDef("qry_Temp", mySQL) rst.Close: Set rst = Nothing rst_TQ.Close: Set rst_TQ = Nothing dbsNew.Close Exit Function err_Make_DB: If Err.Number = 3270 Then 'this field does not have a caption for it, give it the field name ElseIf Err.Number = 3024 Or Err.Number = 91 Or Err.Number = 52 Or Err.Number = 53 Or Err.Number = 3055 Then 'mdb, and Table not found to Delete Resume Next ElseIf Err.Number = 3167 Then 'ignor, Records Deleted Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description End If End Function جعفر 459.2.AbsentLate-10-12-2016.accdb.zip 3
علي المصري قام بنشر فبراير 8, 2017 الكاتب قام بنشر فبراير 8, 2017 أستاذ جعفر جزاك الله خيرا ولا اجد كلام يعطيك حقك لما تقدمه من مساعدات للجميع شكرا جزيلا
jjafferr قام بنشر فبراير 10, 2017 قام بنشر فبراير 10, 2017 أستاذ جعفر جزاك الله خيرا ولا اجد كلام يعطيك حقك لما تقدمه من مساعدات للجميع شكرا جزيلا انا اعتذر عن التأخر في الرد عليك في مشاركتي الاخيرة ، ولكن لم يكن في اليد حيلة ، للأسف ولكن الحمدلله وصلنا الى حل جعفر 1
علي المصري قام بنشر فبراير 10, 2017 الكاتب قام بنشر فبراير 10, 2017 السلام عليكم ورحمة الله وبركاته شكرا على الاهتمام وجزاك الله خيرا اعذرني لعدم تطبيق ما تم انجازة لانه كان عندي لجنة تفتيش على المدرسة في الأيام السابقة عند التطبيق لم احصل على المطلوب وهو ظهور أيام الغياب للطالب بما فيها اليوم الحاضر به الطالب ممكن أكون استخدمت الاستعلامات بشكل خاطئ رجاء تطبيق الاستعلامات الجديدة مع التقرير ( بين تاريخين ، الفترة كاملة ) مع جزيل الشكر
jjafferr قام بنشر فبراير 11, 2017 قام بنشر فبراير 11, 2017 السلام عليكم تفضل هو تقرير واحد ، وكل شئ معتمد على qry_Temp التي يكون فيها التواريخ كاملة ، والتقرير مصدره qry_T22 ، واستعملت الاستعلام المشروط ، حيث جعلت الايام التي ليس فيها غياب ولا تأخير ، باللون الاصفر: . جعفر 459.3.AbsentLate-10-12-2016.accdb.zip 3
علي المصري قام بنشر فبراير 15, 2017 الكاتب قام بنشر فبراير 15, 2017 أستاذ جعفر جزاك الله خيرا شكرا جزيلا على كل ما تقدمه على مساعدتك انا الحين بحاول فهم الوحدة النمطية وكيفية عملها هل يمكن عمل فاصل بين كل أسبوع واخر أي بعد يوم الخميس يظهر فراغ ثم يليه الأسبوع التالي هل كل الاستعلامات الموجودة مطلوبة
jjafferr قام بنشر فبراير 15, 2017 قام بنشر فبراير 15, 2017 السلام عليكم أستاذ علي تم تنظيف البرنامج من مخلفات تجاربي السابقة ، وهذه النتيجة بعد عمل الفاصل بين الاسابيع: . وهذا كود المسافة بعد يوم الخميس Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) If Me.DayName = "الخميس" Then Me.Detail.Height = 0.5 * 1440 Else Me.Detail.Height = Me.DayName.Height End If End Sub صافي يا لبن جعفر 459.4.AbsentLate-10-12-2016.accdb.zip 3
علي المصري قام بنشر فبراير 16, 2017 الكاتب قام بنشر فبراير 16, 2017 السلام عليكم ورحمة الله وبركاته شكرا على الاهتمام وجزاك الله خيرا
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.