-
Posts
13433 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
280
ابوخليل last won the day on نوفمبر 29
ابوخليل had the most liked content!
السمعه بالموقع
6964 Excellentعن العضو ابوخليل

البيانات الشخصية
-
Gender (Ar)
ذكر
-
Job Title
طالب علم
-
الإهتمامات
تحليل البيانات والتصميم
اخر الزوار
-
ابوخليل started following 🌸 دعوة لتجربة الأداة : دكتور الVBA 🌸 , تنسيق شهادة شكر .. تقرير , مشكلة في صورة كخلفية تقرير و 1 اخر
-
السلام عليكم في المرفق شهادة شكر .. تظهر عندي في برنامجي الاساسي بشكل رائع مع البيانات اللازمة هذه الشهادة هي عبارة عن صورة مكتوب عليها عبارة الشكر المعتادة .. ويتخللها حقول مصدرها الجدول مثل اسم الطالب والسنة والفصل الدراسي واسم المعلمة والمديرة وايضا صور لشعارات خاصة . الى هنا وكل شيء تمام 100% افكر فيما لو تم نشر البرنامج .. فالناس مختلفون في الذوق ووجهات النظر .. فيمكن بعضهم يريد تغيير الخلفية والآخر يريد تغيير النص الثابت في الصورة . لذا طرحت موضوعي هذا اريد ان اجعل الشهادة مرنة .. امكن المستخدم من تغيير عبارة الشكر .. وتغيير الخلفية الخلفية مقدور عليها فقد وضعت بجانب قاعدة البيانات الصورة نفسها مفرغة . ويمكنه تغييرها بما يشاء عنوان الشهادة .. والعبارات اللاحقة : اريد المستخدم ان يكتبها من خلال فورم خاص بشرط امكانية التحكم بنوع الخط ومقاسه ولونه . هل يمكن ذلك على فرضية تحويل الملف الى accde dbs1.rar
-
حضور وانصراف الموظفين .. بسيط مختصر .. وجاهز للعمل
ابوخليل replied to ابوخليل's topic in قسم الأكسيس Access
قبل الشروع في العمل يجب ان نتفق على طريقة ونظام احتساب ساعات العمل : اولا : الطريقة التقليدية : يتم احتساب الوقت من : توقيت الحضور الرسمي وحتى توقيت الخروج الرسمي بمعنى اذا ساعات العمل المعتبرة 8 ساعات وجاء متأخرا عن توقيت الحضور بــ 20 دقيقة وخرج بتوقيت الخروج تماما او بعد التوقيت بــ 20 او 30 دقيقة فلن تنفعه هذه الزيادة بتعويض التأخر في الحضور .. وسيحسب البرنامج له حضور اليوم = 7:40 اي بنقص 20 دقيقة علما انه يوجد مرونة في تأخر الحضور أو الخروج قبل الوقت النظامي في معظم الانظمة .. بحيث يتم التجاوز عن دقائق يحددها المستخدم للبرنامج ثانيا : الطريقة المرنة الحديثة المفتوحة : وهي مطالبة العامل او الموظف بساعات معلومة ومحددة يكون متواجدا فيها في مكان العمل .. وهي ليست مفتوحة تماما كما يتصور .. ولكن المرونة في وقت الدخول ووقت الخروج فالمرونة في اتساع وقت التواجد من 8 ساعات الى 9 او 10 ساعات مثلا ( التحديد برمجي يتحكم فيه المستخدم ) فيمكنه الحضور بعد الموعد بربع ساعة ويعوضها في الخروج بأن يبقى ربع ساعة ، وما زاد يمكن اعتباره وقتا اضافيا -
حضور وانصراف الموظفين .. بسيط مختصر .. وجاهز للعمل
ابوخليل replied to ابوخليل's topic in قسم الأكسيس Access
اذا خصيصة الموظف التواجد في فترتين البرنامج يفهم هذا وعند توقيع اثبات التواجد .. يقوم البرنامج بالنيابة عنه بتوقيع الخروج عن الفترة السابقة الحساب في التقرير : سيعتبر حسب الفترة الواحدة/ اليوم //// .. وتضم الفترتين اذا كانتا خلال يوم واحد على اعتبار الدخول والخروج المتكرر حال الاستئذان المؤقت -
حضور وانصراف الموظفين .. بسيط مختصر .. وجاهز للعمل
ابوخليل replied to ابوخليل's topic in قسم الأكسيس Access
ما المشكلة في تعدد الفترات .. اذا كان بالامكان للموظف ان ان يعمل في اكثر من فترة مثلها مثل الحاصل على الآرض الآن ويعمل به في المطارات والشركات التي تستلزم فترة العمل اكثر من يوم احيانا الفترة تمتد الى 12 ساعة في هذه الشركات نظام اثبات التواجد بعد عدد ساعات محددة يذهب الموظف الموجود والحاضر فعلا ويوقع اثبات تواجد اثبات التواجد هذا في النظام البرمجي هو عبارة عن بداية فترة جديدة -
حضور وانصراف الموظفين .. بسيط مختصر .. وجاهز للعمل
ابوخليل replied to ابوخليل's topic in قسم الأكسيس Access
نعم هذا هو المفترض في جميع الانظمة المتعارف عليها .. التوقيع الأول = حضور سواء جاء اول الوقت او آخره الأصل ان البرنامج يجب ان يعرفهم واحدا واحدا ، ويعرف اوقاتهم المتاح لهم التوقيع فيها . انا صنعت ذلك باحكام .. ولكن طلب الاخ محمد فيما لو تجاوز الوقت اليوم الحالي الى ما بعد منتصف الليل ودخول يوم جديد هنا المعيار الاساسي يكون حجر عثرة ويجب ازالته والبحث عن بديل .. وهنا جاءت الثغرات ...................... بعد كل المحاولات اتضح لي انه من اجل الضبط المحكم ( ما يخرش المية ) يجب اضافة فترة جديدة تخص اليوم التالي هنا يصبح لدينا ثلاث فترات على الأقل .. ويمكن زيادة عدد الفترات عن 3 لمن اراد .. وكل ذلك خلال 24 ساعة تبدأ من الساعة 12:01 صباحا وتنتهي في 11:59 مساء .. حسب تقسيم كل فترة بداية/نهاية ان وافقني على هذا المقترح سوف اقوم باعداده سواء على طريقة تصميم حقلين في الجدول حضور/انصراف //// او طريقة الحقل الواحد والمعرف -
نعم .. تمام .. جزاك الله خيرا وبيني وبينك 🙃 ولا تخبر احد .. الله المستعان ..اصلا الجهاز الثاني لا يوجد عليه طابعة اسهبت وأجدت في الشرح والتفصيل .. جزاك الله خيرا
-
حضور وانصراف الموظفين .. بسيط مختصر .. وجاهز للعمل
ابوخليل replied to ابوخليل's topic in قسم الأكسيس Access
وضعتها كتأسيس لمن يريد تطبيقها .. وهو غير ملزم اتركه دعه ينسى .. هو صاحب الشأن وهو ادرى بمصلحته النظام الجديد مختلف عما سبق تماما .. وهو نظام عالمي شائع التوقيع الاول حضور والثاني خروج .. حتى لو وقع 100 مرة في اليوم في النهاية سيتم الحساب بجمع ما بين التوقيعين الثغرات كثيرة في جميع الانظمة .. ولكن المهم هو اثبات وقت التوقيع لتلافي جميع الثغرات يجب ان يكون هناك شخص مسؤول عن مراقبة عمليات التوقيع الاشكالية التي تواجه الضبط البرمجي المحكم هو دخول يوم جديد .. اتمنى ان تفهم هذه النقطة البعض يستخدم فترة ثالثة لتلافي الثغرة تبدأ من الساعة 12:01 ليلا -
السلام عليكم عندي كمبيوترين على احد الاجهزة صممت تقرير (شهادة شكر ) وجعلت خلفيته صورة وفي التفاصيل بعض الحقول التقرير ممتاز حتى اني جعلت جميع الهوامش = صفر .. من اجل تمدد الصورة على كامل ورقة الـــ A4 عندما نقلت البرنامج الى الجهاز الآخر تغير تصميم التقرير واختلف تمركز الصورة واختلت اماكن الحقول وظهرت الهوامش كبيرة رغم انها صفر الجهاز الاول win10 والاخر win7 ان كان احد من الاخوة مر بهذه التجربة يفيدني فيها .. جزيتم خيرا
-
عجبا .. مشاركات تقارب الألف ولا تكلف نفسك اختيار عنوان مناسب لموضوعك !!!
-
عجيب .. عجيب يبدو انك عدلت على شيء ما اعدت التجربة .. والنتيجة كانت مذهلة التعديلات التي اجراها : تنظيم الكود .. بحيث جعل جميع الاعلانات عن المتغيرات في الأعلى بدل شرط الحقل النصي في الدوال بالمتغير وكذلك في جملة sql استبدل الدالة بالمتغير .. عفريت برمجي اضاف لي متغير اسم الموظف غفلت عن نقله من العمل السابق ... هذه الاضافة لا تخطر على بال المحترفين الا بعد عناء اغلاق السجلات عند نهاية كل شرط .. الحقيقة هذه الحركة تحفة هذه صورة من الخيارات التي استخدمتها : وهذا الكود الاصلي : Private Sub id_AfterUpdate() EmpUserid = id Dim mylevl As Boolean mylevl = Nz(DLookup("Emp_user", "tblEmpNames", "Emp_user='" & Me.id & "'"), 0) EmpFatrah = Nz(DLookup("fatrah", "tblEmpNames", "Emp_user='" & Me.id & "'"), 0) If mylevl = False Then Beep Me.LabelH.Caption = "خطأ!! .. الادخال غير صحيح" Me.TimerInterval = 3000 id = "" id.SetFocus Exit Sub End If Dim rs As Recordset Dim strSql As String strSql = "SELECT TOP 1 tblCheckINOut.id, tblCheckINOut.EmpUser, tblCheckINOut.chekInOut, tblCheckINOut.chkio, tblCheckINOut.ftra_id " & vbCrLf & _ "FROM tblCheckINOut " & vbCrLf & _ "WHERE (((tblCheckINOut.EmpUser)=funEmpUserid())) " & vbCrLf & _ "ORDER BY tblCheckINOut.id DESC;" Set rs = CurrentDb.OpenRecordset(strSql) If rs.RecordCount = 0 Then rs.AddNew rs!EmpUser = id rs!chekInOut = Now() rs!chkio = "I" rs!ftra_id = EmpFatrah Me.txtnm = empName LabelH.Caption = "حضور" Me.Requery Me.TimerInterval = 3000 Me.id = "" Me.id.SetFocus rs.Update Exit Sub End If Dim waitTime As Integer Dim AdTim As Date waitTime = Nz(DLookup("waitBtween", "tblTimeCtrl"), 0) AdTim = DateAdd("n", waitTime, rs!chekInOut) If Now() < AdTim Then Me.id.SetFocus Beep Me.LabelH.Caption = "توقيع مكرر !! انتظر قليلا ..." id = "" Me.TimerInterval = 3000 id.SetFocus Exit Sub Else If rs!chkio = "I" Then rs.AddNew rs!EmpUser = EmpUserid rs!chekInOut = Now() rs!chkio = "O" rs!ftra_id = EmpFatrah Me.txtnm = empName LabelH.Caption = "انصراف" Me.Requery Me.id = "" Me.TimerInterval = 3000 Me.id.SetFocus rs.Update Exit Sub ElseIf rs!chkio = "O" Then rs.AddNew rs!EmpUser = EmpUserid rs!chekInOut = Now() rs!chkio = "I" rs!ftra_id = EmpFatrah Me.txtnm = empName LabelH.Caption = "حضور" Me.Requery Me.TimerInterval = 3000 Me.id = "" Me.id.SetFocus rs.Update Exit Sub End If End If End Sub وهذه هي النتيجة الرائعة : Private Sub id_AfterUpdate() Dim EmpUserid As Variant Dim mylevl As Boolean Dim EmpFatrah As Variant Dim rs As DAO.Recordset Dim strSql As String Dim waitTime As Integer Dim AdTim As Date Dim empName As String ' Declare empName EmpUserid = Me.id ' Corrected logic for mylevl to check for user existence mylevl = Not IsNull(DLookup("Emp_user", "tblEmpNames", "Emp_user='" & EmpUserid & "'")) EmpFatrah = Nz(DLookup("fatrah", "tblEmpNames", "Emp_user='" & EmpUserid & "'"), 0) If mylevl = False Then Beep Me.LabelH.Caption = "خطأ!! .. الادخال غير صحيح" Me.TimerInterval = 3000 Me.id = "" Me.id.SetFocus Exit Sub End If ' Lookup empName once after confirming user existence empName = Nz(DLookup("Emp_Name", "tblEmpNames", "Emp_user='" & EmpUserid & "'"), "") strSql = "SELECT TOP 1 tblCheckINOut.id, tblCheckINOut.EmpUser, tblCheckINOut.chekInOut, tblCheckINOut.chkio, tblCheckINOut.ftra_id " & vbCrLf & _ "FROM tblCheckINOut " & vbCrLf & _ "WHERE (((tblCheckINOut.EmpUser)='" & EmpUserid & "')) " & vbCrLf & _ "ORDER BY tblCheckINOut.id DESC;" Set rs = CurrentDb.OpenRecordset(strSql) If rs.RecordCount = 0 Then rs.AddNew rs!EmpUser = EmpUserid rs!chekInOut = Now() rs!chkio = "I" rs!ftra_id = EmpFatrah Me.txtnm = empName Me.LabelH.Caption = "حضور" Me.Requery Me.TimerInterval = 3000 Me.id = "" Me.id.SetFocus rs.Update rs.Close Set rs = Nothing Exit Sub End If waitTime = Nz(DLookup("waitBtween", "tblTimeCtrl"), 0) AdTim = DateAdd("n", waitTime, rs!chekInOut) If Now() < AdTim Then Me.id.SetFocus Beep Me.LabelH.Caption = "توقيع مكرر !! انتظر قليلا ..." Me.id = "" Me.TimerInterval = 3000 Me.id.SetFocus rs.Close Set rs = Nothing Exit Sub Else If rs!chkio = "I" Then rs.AddNew rs!EmpUser = EmpUserid rs!chekInOut = Now() rs!chkio = "O" rs!ftra_id = EmpFatrah Me.txtnm = empName Me.LabelH.Caption = "انصراف" Me.Requery Me.id = "" Me.TimerInterval = 3000 Me.id.SetFocus rs.Update rs.Close Set rs = Nothing Exit Sub ElseIf rs!chkio = "O" Then rs.AddNew rs!EmpUser = EmpUserid rs!chekInOut = Now() rs!chkio = "I" rs!ftra_id = EmpFatrah Me.txtnm = empName Me.LabelH.Caption = "حضور" Me.Requery Me.TimerInterval = 3000 Me.id = "" Me.id.SetFocus rs.Update rs.Close Set rs = Nothing Exit Sub End If End If End Sub صحيح هو اضاف لي هذا المتغير : Dim EmpUserid As Variant ولكن هذا المتغير تم الاعلان عنه في الوحدة النمطية كمتغير عام وانا لا الومه لانه لا يعلم وليس له الا الظاهر ☺️
-
حضور وانصراف الموظفين .. بسيط مختصر .. وجاهز للعمل
ابوخليل replied to ابوخليل's topic in قسم الأكسيس Access
اختلفت الطريقة تماما ... التوقيع مفتوح .. ........وإن اردت ضوابط مستقبلا حاولنا صنع ذلك اضفت حقلا في جدول الموظفين يبين نوع حضوره : نظامي او مفتوح ( لم يتم التفعيل ) التقارير الآن على المفتوح الفرق بينهما هو : ان النظامي يكون الموظف ملتزما بالوقت الرسمي في الحضور والانصراف ويتم الاحتساب ما بين هذين الوقتين فقط اما المفتوح فالموظف مطالب بعدد ساعات محددة يتواجد فيها .. من غير اعتبار للتوقيت الرسمي ChkInOut_NetUp8.rar -
جزاك الله خيرا جربتها على كود اعمل عليه فعلا الآن النتيجة ممتازة .. خاصة الترتيب والتعليق ايضا التصحيح فقد اضاف لي اغلاق وانهاء مجموعة السجلات ولكني حين نقلته الى الفورم .. ظهر لي خطأ في سطر DlookUp لم احقق في السبب لم ابحث عن المشكلة وقتها حيث كنت اعمل على تحقيق فكرة في رأسي .. ورجعت الى كودي الأصل على ان اعود واجري تجارب اوسع وضعت الموقع في شريط المفضلة لتكون هذه التحفة قريبا مني ..
-
حضور وانصراف الموظفين .. بسيط مختصر .. وجاهز للعمل
ابوخليل replied to ابوخليل's topic in قسم الأكسيس Access
للاسف المشكلة .. لا يمكن التعامل معها .. على طريقتنا الحالية الى وهي دخول اليوم الجديد اتضح لي الآن ان طريقتنا الحالية محكمة للفترة الواحدة فقط وحيث اني وعدتك بتحقيق طلبك على اكمل وجه .. لذا اعتذر عن اطالة مدة انتظارك وقد المحت في ردي عليك في مشاركة سابقة ان الطريقة يجب ان تتم بشكل مختلف وهي اعتماد الحقل الواحد هذه الطريقة لا يعيبها عندي حسب وجهة نظري القاصرة الا الاضطرار لاستخدام العديد من الاستعلامات لاستخراج التقارير اللازمة ولكنها في الوقت نفسه اكثر مرونة واقل في استخدام الجمل البرمجية لن يكون هناك ضوابط في وقت التوقيع .. سيكون التوقيع مفتوحا لجميع الفترات ويمكننا ايضا استخدام النظام المفتوح او المقفل ( سأوضح هذا لاحقا ) انتظرني .. -
حضور وانصراف الموظفين .. بسيط مختصر .. وجاهز للعمل
ابوخليل replied to ابوخليل's topic in قسم الأكسيس Access
نعم ملاحظتك صحيحة يوجد خلل في الدالة .. سوف اعالجه وحقيقة لم اجرب بعدما انهيت التعديلات في نقاشنا الأخير -
حضور وانصراف الموظفين .. بسيط مختصر .. وجاهز للعمل
ابوخليل replied to ابوخليل's topic in قسم الأكسيس Access
كما في الجدول لديك الحضور الساعة 5:47 يوم السبت 29/11 اذا عدد ساعات العمل 8 ساعات فإن الخروج متاح حتى الساعة 2 صباحا يوم الاحد 30/11 وليس 29/11 لذا يجب الانتباه لتاريخ ووقت الكمبيوتر