اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

Foksh

الخبراء
  • Posts

    2,155
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    78

كل منشورات العضو Foksh

  1. أخي الكريم @العبيدي رعد ، انت تريد انشاء مشروع من البداية ؟؟؟؟ وقد اختصرته بسطرين !!!!!!!!
  2. العفو استاذي الكبير @Moosak ، هذا التحمس بداية شهر رمضان والحمد لله . أشكرك مرورك الجميل وملاحظتك اذا انت تعينت اليوم تبي تحفظ الرقم من أول يوم وظيفة , وتقول عني نشيط ههههههههه كرت الموظف سيكون كفيل بهذه المهمة ، ولا تريد أحد يختم عنك حضور خخخخخخخخ تم إصلاح الخطأ بإذن الله
  3. هل جربت استخدام الكود التالي لإيقاف الرسائل التحذيرية:- DoCmd.SetWarnings False
  4. هل الجداول المرتبطة هي نفسها الجداول الموجودة في قاعدة بيانات الجداول ولا تختلف عنها بجدول زائد أو ناقص 🤔 ؟؟ لأنه في حال عدم التطابق فلن يتم إتمام عملية الربط بشكل سليم 🙄 . وجهة نظر قابلة لعدم الصواب
  5. زادك الله من علمه ونفعك به أستاذنا ومعلمنا @ابوخليل ، وأشكر مرورك الجميل . وكتوضيح لقراء الموضوع :- على سبيل المثال ان المسؤول قام بتحديد بداية الدوام الساعة 08:00 AM ونهاية العمل الساعة 04:00 PM ، وقام بتحديد مدة 10 دقائق ليتم بعدها احتساب التأخير ، وأيضاً قام بتحديد عدد 2 تأخير ليتم بعدها احتساب الثالث كيوم إجازة . وجاء الموظف الأول وسجل حضور 08:09 AM فلن يتم احتسابه كيوم تأخير حتى لو تكرر . ولو تم تسجيل الحضور الساعة 08:15 AM فسيتم احتسابه تأخيراً مع ظهور كم مرة تأخر هذا الموظف خلال الشهر . وفي حال تكرار التأخير مرتين والثالثة سيتم احتساب له يوم إجازة عند تسجيله الإنصراف . وطبعاً لن يتم تسجيل الحضور والإنصراف للموظف أكثر من مرة في اليوم الواحد . وسيتم توسيع الفكرة لتشمل المغادرة والعودة خلال نفس اليوم ( وقت الدوام ) .
  6. السلام عليكم ورحمة الله وبركاته ، أخواني وأساتذتي ومعلمينا ( دون استثناء ) لكثرة الطلبات على برنامج إدارة الحضور والإنصراف للموظفين ، وددت مشاركتكم النسخة الأولى الغير مفتوحة المصدر حالياً ، لحين الإنتهاء من التعديلات التي ستتم على البرنامج . دون الإطالة في المقدمة ؛ سأشرح لكم بعض ميزات البرنامج :- أولاً سيتم إضافة الإعدادات الضرورية للبرنامج وهي :- تصنيف الموظفين ( ولكل تصنيف سيتم تحديد عدد أيام الإجازات السنوية له ) . تصنيف الإجازات ( طارئة ، مرضية ، ..... إلخ ) . تحديد وقت بداية ونهاية ساعات العمل الرسمي ، و تحديد مدة السماح للتأخير ( المرونة في العمل ) ، تحديد عدد مرات التأخير ليتم احتساب يوم إجازة في اليوم الأخير من المدة . ثانياً ومن الطبيعي وجود موظفين في قاعدة البيانات ، سيكون قسم لإدخال بيانات الموظفين بشكل بسيط من المعلومات ( ولكم حرية التوسع حسب رغبتكم وحاجتكم كمستخدمين ) ، وطبعاً لكل موظف رقم وظيفي خاص به اعتمد على سلسلة مكونة من التاريخ والوقت الحالي بدون مسافات بهذا التنسيق YYYYMMDDhhmmss ، بحيث لا يكون هناك تكرار نهائي لأي رقم موظف . ثالثاً لوحة تسجيل الحضور والإنصراف عن طريق الرقم الوظيفي ، وتدعم القراءة من الباركود الموجود على باجة الموظف ( طبعاً لاحقاً سيتم إضافة طباعة باجة أو بطاقة للموظف ) ، وفي هذه اللوحة لن تحتاج تحديد الحالة ( حضور أو إنصراف ) فقط أدخل رقم الموظف وسيتم احتساب وقت الحضور وتسجيل مدة التأخير بالدقيقة في الجدول ، وكذلك الأمر للإنصراف . رابعاً لوحة تسجيل الإجازات ، وطبعاً بناءً على المعطيات التي تم إدخالها في نماذج البيانات الأساسية في الإعدادات - سيكون الأمر بسيطاً جداً وتم اعتماد رقم الموظف في المرحلة الأولى من البرنامج وسيتم اعتماد اسم الموظف أيضاً لجلب البيانات لاحقاً . بخطوات بسيطة بعد ادخال رقم الموظف نحدد تاريخ بداية الإجازة ، ثم عدد الأيام المطلوبة كإجازة ، ثم سيتم تلقائياً احتساب يوم نهاية الإجازة ، وطبعاً نوع الإجازة المطلوبة ستقوم باختياره من قائمة نوع الإجازة . خامساً لوحة التقارير ، بحيث سيكون لدينا في المشروع تقرير واحد فقط لكنه سيخدم جميع الطرق التي تريدها كمستخدم ( تقرير للموظفين جميعاً مع وبدون تحديد فترة ، تقرير لموظف واحد مع وبدون تحديد فترة ) . *وطبعاً ما زالت قيد التطوير بشكل خاص ملاحظة:- تم حفظ البرنامج بصيغة Accde كونه قيد التطوير والتعديل حالياً اقترب عيد المسلمين مودعين به شهرهم الفضيل أعاده الله علينا وعليكم باليمن والبركات . وتقبل الله منا ومنكم الطاعات وصالح الأعمال . وسأختم به آخر تعديل على هذا المشروع البسيط ؛ متمنياً أن يكون على قدر الجهد المبذول فيه . وأعتذر بداية عن التأخير في انهاء العمل عليه ، ولكن لضيق الوقت ليس إلا . اليوم انهيت تأسيس الأساسيات في برنامج إدارة الحضور والإنصراف الذي يعمل بنظام بصمة الـ QR . وسأذكر بالتفصيل البسيط ما تم إضافته . الإضافات في النماذج :- ربط قارىء QR يعمل عن طريق الـ USB أو عن طريق الجوال بالنظام . دعم كامل لللغة العربية في قراءة رمز الإستجابة السريعة QR . اعتماد اسم الموظف بالإضافة الى رمز الـ QR . نظام التنبيه لضبط الإعدادات الرئيسية في البرنامج عند تشغيله أول مرة . إحصاء لعدد الموظفين ، الحضور ( على رأس عملهم ) ، المجازين ، المغادرات خلال اليوم . ترحيل بيانات الإجازات والمغادرات والحضور بشكل شهري ( بداية كل شهر ) . الإضافات في الأكواد :- تمت مراجعة جميع الأكواد من أي خطأ محتمل في التنظيم أو آلية العمل . تم إضافة فكرة تثبيت برنامج الربط Barcode2Win من خلال الأكواد ، وفي حال عدم وجوده يتم تحميله من الموقع الرسمي ( يتطلب انترنت ) . تم دمج العديد من الإستعلامات في الأكواد لتقليل مكونات وعناصر النظام وتخفيف العبئ عليه . تم تقسيم العديد من الوظائف لسهولة التعامل معها وصيانتها . تم إضافة نموذج لإعادة تهيئة النظام وتفريغ محتوياته ( الجداول ) ، طبعاً باسوورد تأكيد العملية مدمج في أكواد النموذج . العديد من المميزات التي ستجدونها في المشروع
  7. اذاً لا داعي للتعديل الأخير فضلاً.. لا تنسَ إغلاق الموضوع باختيار أفضل إجابة 😀
  8. تم التعديل. جرب هكذا Sub PrintAllPDFsInFolder() Dim objFSO As Object Dim objFolder As Object Dim objFile As Object Dim strFolderPath As String strFolderPath = CurrentProject.Path & "\Pdf_File\" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strFolderPath) For Each objFile In objFolder.Files If Right(objFile.Name, 4) = ".pdf" Then ShellExecute 0, "Print", objFile.Path, vbNullString, vbNullString, 0 End If Next objFile Set objFSO = Nothing Set objFolder = Nothing Set objFile = Nothing End Sub
  9. للأسف لم أطلع لاني استخدم الجوال ، ولكني اضطررت لنسخ ملفات مكتبتي إلى الجوال ( سابقاً ) للإستفادة منها متى اضطررت ، ولكني على يقين أن المرفق الذي ارفقتي في مشاركتي الأخيرة لن يزيد عن فكرتك شيء 🤗
  10. على افتراض أن اسم المجلد هو Pdf_File ، جرب هذا الكود:- Sub PrintAllPDFsInFolder() Dim objFSO As Object Dim objFolder As Object Dim objFile As Object Dim strFolderPath As String strFolderPath = CurrentProject.Path & "\Pdf_File\" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFolder = objFSO.GetFolder(strFolderPath) For Each objFile In objFolder.Files If Right(objFile.Name, 4) = ".pdf" Then ShellExecute 0, "Print", objFile.Path, 0, 0, SW_HIDE End If Next objFile Set objFSO = Nothing Set objFolder = Nothing Set objFile = Nothing End Sub في الزر الذي تريده ، في حدث عند النقر ، استدع الدالة بهذا الأمر :- PrintAllPDFsInFolder وأخبرنا بالنتيجة 😊
  11. مساهمة في هذا الحديث ، جرب هذا المرفق 😅 ، عله يكون العلاج . في النموذج في حدث عند التحميل انقل الكود الى نموذج البداية في مشروعك . واخبرنا بالنتيجة 😊 * ملاحظة:- الجدول المرتبط هو جدول من قاعدة بياناتي كمثال ، في مشروعك قم باستيراد الجداول من قاعدة بيانات الجداول لديك ، وتأكد من المكتبة التي تسمح للكود بفتح صندوق اختيار الملف ( مايكروسوفت اوفيس 14 أو حسب الإصدار في أوفيس لديك وأعتقد أن لديك اوفيس 2010 ) ReLink.accdb
  12. مداخلة جانبية مع معلمي الفاضل @ابوخليل . جرب هذا الكود Private Sub Form_AfterUpdate() Dim recordId As Long Dim allFieldsFilled As Boolean allFieldsFilled = True ' قم بفحص ملء كل الحقول Dim ctl As Control For Each ctl In Me.Controls If ctl.ControlType = acTextBox Then ' التأكد من أن الحقل هو حقل نصي If IsNull(ctl.Value) Then allFieldsFilled = False Exit For ' توقف الفحص عندما يتم العثور على حقل غير ممتلئ End If End If Next ctl ' إذا كانت جميع الحقول ممتلئة، قم بعرض رسالة بمحتوى الحقل Id If allFieldsFilled Then recordId = Me.ActiveControl.Value ' استخدم الحقل النشط حاليًا MsgBox "تم إنشاء السجل برقم: " & recordId End If End Sub واعلامنا بالنتيجة 😊
  13. ومشاركة مع معلمنا الجليل @ابوخليل جرب هذا الكود أيضاً لتحقيق الهدف. Dim fullName As String Dim firstName As String Dim lastName As String Dim nameParts() As String Dim i As Integer Dim j As Integer Dim middleName As String ' افتراضًا أن القيمة المطلوبة موجودة في حقل النموذج المسمى "FullName" fullName = Me.FullName.Value ' تقسيم الاسم الكامل إلى أجزاء باستخدام الفاصلة كفاصل nameParts = Split(fullName, " ") ' الاسم الأول هو الجزء الأول من الاسم الكامل firstName = nameParts(0) ' الاسم الأخير هو الجزء الأخير من الاسم الكامل lastName = nameParts(UBound(nameParts)) For i = 1 To UBound(nameParts) - 1 ' الاسم الوسيط يتكون من الأجزاء بين الاسم الأول والاسم الأخير middleName = "" For j = 1 To UBound(nameParts) - 1 If j = i Then Continue For End If middleName = middleName & " " & nameParts(j) Next j Debug.Print firstName & " " & Trim(middleName) & " " & lastName Next i جرب هذا الكود واخبرنا بالنتيجة 😊
  14. في حدث بعد التحديث لمربع النص Prog Private Sub prog_AfterUpdate() If Me.prog.Value Like "*plan*" Then Me.cast.Value = "complete" End If End Sub جرب الكود واخبرنا بالنتيجة 😊
  15. كان المقصد الحقول ، ولكن خطأ مطبعي من التصحيح التلقائي في الكيبورد 😅
  16. من التبويب أدوات قاعدة البيانات Database Tools اضغط على مدير الجداول المرتبطة Linked Table Manager ستظهر لك قائمة بالجداول المرتبطة. حدد جميع الجداول المرتبطة التي ترغب في إلغاء التقسيم لها. انقر على زر موافق لإلغاء تقسيم الجداول. أو اضغط زر الماوس اليمين على احد الجداول المرتبطة واختر Linked Table Manager وقم بتحديد جميع الجداول ثم موافق لإستعادتها من قاعدة بيانات الجداول.
  17. بناءً على ما تقدم به أستاذنا @أبوبسمله ، أعتقد ان الصارة النافعة التي تتحدث عنها هي بسبب فتح النموذج بشرط تصفية على سجل محدد . والثانية هذا أمر طبيعي كون النموذج لا يعرض البيانات التي اختفت في نموذج فرعي .
  18. جزاكم الله كل خير أستاذ @kkhalifa1960 مبدع ومتميز 🤗
  19. لا تعجب من عدم وجود ردود اخي الكريم ،، في فكرتك ارفق ملف لتتوضح الفكرة أكثر 🤗
  20. لحذف السجلات الفارغة من الجداول :- قم بانشاء استعلام حذف واختر الجدول المستهدف ، ثم اختر الحقول ، وحدد الشرط Is Null في الحقول .
  21. يا سلاااام عليك وعلى مفرداتك معلمنا الكبير
  22. اخي الكريم الخطأ عندك في ازدواجية الوظيفة . لاحظ انك وضعت في حدث الزر حدث عند تحميل النموذج وهذا غير صحيح.
  23. في النموذج اجعل مصدر البيانات استعلام من داخل النموذج ( وليس استعلام خارجي ) ، وقم باختيار الجداول الذي تريدها ( اذا كانت اكثر من جدول ) ، ثم عند حقل رقم العامل اجعل الشرط مربع نص غير منضم في النموذج ليكون ناتجه عند ادخال رقم عامل عرض البيانات التي تريدها. وفي حدث بعد التحديث لهذا المربع Docmd.Requery هذه الفكرة تخيلية بدن كمبيوتر في الوقت الحالي 🤗
  24. جزاك الله خير أخوي @أبوبسمله ، الفكرة كانت اجتهاد للأسف ودون فتح الملف لأنه في ذاك الوقت ما كنت عند الكمبيوتر
×
×
  • اضف...

Important Information