اذهب الي المحتوي
أوفيسنا

نجوم المشاركات

  1. Foksh

    Foksh

    أوفيسنا


    • نقاط

      9

    • Posts

      3713


  2. ابو جودي

    ابو جودي

    أوفيسنا


    • نقاط

      4

    • Posts

      7124


  3. Moosak

    Moosak

    أوفيسنا


    • نقاط

      4

    • Posts

      2233


  4. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      2

    • Posts

      13066


Popular Content

Showing content with the highest reputation on 07/05/25 in all areas

  1. رغم أن معظم الأكواد تحتاج الى إعادة هيكلة وتصحيح ، ولكن جرب هذا المقترح ، بعد ما تمت تجربته على ملفك السابق :- Private Function GetDateColumn(ByVal searchDate As Date) As Long Dim cell As Range Dim searchRange As Range Set searchRange = wsData.Range(wsData.Cells(HEADER_ROW, DATE_COL_START), _ wsData.Cells(HEADER_ROW, wsData.Columns.Count)) For Each cell In searchRange If IsDate(cell.Value) Then If CDate(cell.Value) = searchDate Then GetDateColumn = cell.Column Exit Function End If End If Next cell GetDateColumn = 0 End Function جرب الملف التالي وشوف النتيجة Book5.zip
    3 points
  2. تمام أخي الكريم ،، نستطيع تلافي المشكلة بإخفاء النموذج بشكل مؤقت أثناء المعاينة !! استخدم الكود التالي في زر المعاينة ، وجرب Private Sub btnPrint_Click() If lstResults.ListCount = 0 Then MsgBox "لا توجد نتائج لطباعتها", vbExclamation: Exit Sub End If Dim sh As Worksheet, nextRow As Long, i As Long, j As Long Const REPORT_SHEET As String = "تقرير الغياب" Me.Hide On Error Resume Next: Application.DisplayAlerts = False Worksheets(REPORT_SHEET).Delete Application.DisplayAlerts = True: On Error GoTo 0 Set sh = Worksheets.Add(After:=Worksheets(Worksheets.Count)) sh.Name = REPORT_SHEET For j = 0 To lstResults.ColumnCount - 1 sh.Cells(1, j + 1).Value = "العمود " & j + 1 Next j sh.Range("A1:" & sh.Cells(1, lstResults.ColumnCount).Address).Font.Bold = True nextRow = 2 For i = 0 To lstResults.ListCount - 1 For j = 0 To lstResults.ColumnCount - 1 sh.Cells(nextRow, j + 1).Value = lstResults.List(i, j) Next j nextRow = nextRow + 1 Next i sh.Columns.AutoFit sh.PageSetup.Orientation = xlPortrait sh.PageSetup.Zoom = False sh.PageSetup.FitToPagesWide = 1 sh.PageSetup.FitToPagesTall = 1 sh.PrintPreview Me.Show End Sub
    2 points
  3. كنت عامل موضوع بهذا الخصوص ولكن لتصفير و حذف بيانات أكثر من جدول ان اردت التوسع هذا رابط الموضوع https://www.officena.net/ib/topic/106503-حذف-بيانات-جداول-منضمة-ومرتبطه-دفعة-واحدة-على-حسب-اختيارك/#comment-642632
    2 points
  4. تفضل أخي عبدالعزيز @Abdelaziz Osman 🙂 هذا الاستعلام لو بتشغله في ال VBA : ' DELETE statement | جملة DELETE Dim sqlDelete As String sqlDelete = "DELETE FROM [TABINDX]" sqlDelete = sqlDelete & " WHERE [ID] = " & var_ID ' Execute The Query | تنفيذ الاستعلام CurrentDb.Execute sqlDelete وهذ لو بتشغله كاستعلام أكسس : DELETE FROM [TABINDX] WHERE [ID] = var_ID ولا تنسى أن تضع قيمة ال ID المطلوب حذفه مكان الـمتغير : var_ID ولو بتحذف كافة محتويات الجدول تكتب كذا : CurrentDb.Execute "DELETE FROM TABINDX"
    2 points
  5. السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله أقدم لكم الملف التالي وهو ببساطة ملف يتم فيه تسجيل الغياب اليومي بشكل سهل ومرن ، ومن خلاله يمكنك الحصول على تقارير لأيام الغياب لأي أسبوع وهو مفيد لشئون الطلبة ومسئولي الحكومة الإلكترونية في التعامل مع خدمة تسجيل الغياب الأسبوعي. وسأترك الشرح بالتفصيل للأخ العزيز / عماد غازي ، وإليكم رابط الفيديو الخطوة الأولي: فك الضغط عن الملف المضغوط ستجد ملف باسم Dummy.xlsx هذا الملف يتم وضع بيانات المدرسة فيه (كود الطالب - اسم الطالب - الصف - الفصل) والملف الثاني ملف برنامج السجل الالكتروني قم بفتحه ونفذ الأمر GETDATA مرة واحدة فقط عند أول استخدام للبرنامج ، بحيث يتم إضافة بيانات الطلاب في البرنامج ، والأمر موجود في شريط الوصول السريع على شكل جرس. أكرر هذا الأمر يقوم بمسح البيانات في البرنامج من قاعدة البيانات DB بالكامل ، لذا وجب التنبيه أن هذا الأمر يتم تنفيذه مرة واحدة فقط عند استخدام البرنامج لأول مرة. تم إضافة ورقة عمل باسم HP فيها تعليمات كيفية التعامل مع البرنامج ، يرجى قراءة التعليمات جيداً قبل التعامل مع البرنامج ** في انتظار إضافاتكم ومقترحاتكم واستفساراتكم حول كيفية استخدام البرنامج أو الإبلاغ عن أي خطأ لكي يتم معالجته إن شاء الله تم تحديث الملف المرفق بتاريخ 6 أكتوبر 2023 الساعة 06:00 مساءاً أسألكم الدعاء لوالدي الذي رحل عن الدنيا ، أسأل الله له المغفرة والرحمة والفردوس الأعلى من الجنة ، وسأعتبر هذا البرنامج صدقة جارية على روح والدي. أخوكم في الله / ياسر خليل أبو البراء رابط الموضوع الأصلي من هنا https://techno7asry.com/forum/t6265 T6265_Electronic Absence Record Tool YasserKhalil Excel-Egy-1.rar
    1 point
  6. السلام عليكم ورحمة الله بركاته مبدع دائما معلمنا Foksh ملاحظنان للاستاذ جلال محمد الاولى في بداية اكواد الفورم Private Const DATE_COL_START As Long = 7 قم بتعديل 7 الى 5 وهو اول عمود به تاريخ في الشيت الملاحظة الثانية الخيار الاخير في القورم غياب مدة بين تاريخين لعدة فصول وتاتى رسالة MsgBox "اختر فصل واحد على الأقل", فاذا كان الخيار فصل واحد لا مشكلة ولكن اذا اردنا اختيار اكثر من فصل فلا توجد وسيلة لذلك لان الفصول في الكائن cmbClass هو ComboBox، وليس ListBox، ولذلك لا يحتوي على خاصية .Selected(index)، فهي خاصة بالكائنات التي تسمح بتحديد متعدد مثل ListBox من النوع fmMultiSelectMulti فاعتقد استبدال cmbClass ب ListBox افضل للخيار الاخير لكما وافر التقدير والاحترام
    1 point
  7. أخواني وأساتذتي ومعلمينا ( دون استثناء ) أعتقد أنه ومن خلال العنوان سيتسائل البعض عن أن المحاولات كانت كثيرة لبناء هذه الفكرة ولكنها مع التحديثات الجديدة تفشل !! وهذا الإعتقاد منطقي 😁 . إلا انه وبهذه التحديثات - واتمنى - أنه قد تم التعامل مع هذه الأخطاء بهذه النسخة المطورة والمحسنة . الإضافات التي تم تأمينها في هذه النسخة :- التعامل مع المرفقات بسلاسة وسهولة من خلال فكرة نسخ المرفق ولصقه في تطبيق الواتس اب ( سطح المكتب ) ، وليس من خلال المسار 😁 . إمكانية الإرسال لأكثر من رقم دفعة واحدة . افصل بين الرقمين بإشارة / فقط . إمكانية إضافة التعبيرات Emoji وإرسالها ضمن الرسائل في الواتس أب . من خلال زر زر لمسح محتوى الرسالة تهيئةً لإرسال جديد . من خلال الزر تضمين محدد لحجم الملفات والمرفقات المرسلة . ( خاص بأصحاب التطويرات الذين يريدون تقييد وإلزام المستخدم بحجم محدد ) . استخدام تايمر متغير للتعامل مع الإرسالات المتعددة لأكثر من رقم . واجهة محاكية وجذابة للبرنامج . لا تحتاج جداول أو مكتبات خارجية .... إلخ . تم كتابة الدوال والأكواد بطريقة تسهل على المطورين إعادة الهيكلة والتصميم حسب حاجتهم في برامجهم . واجهة البرنامج :- :- ضرورة تثبيت برنامج واتس اب سطح المكتب من متجر ويندوز . التأكد من فتح تطبيق الواتس أب سطح المكتب لديك ، لتلافي المشاكل عند اختلاف سرعة إستجابة الكمبيوتر من مستخدم لآخر . WhatsApp Sender 2025.zip
    1 point
  8. يا هلا والله ... والله اشتقنا اتوحشتك كتير يا مولانا بارك الله لنا فى المكتبة العامرة وصاحب المكتبة جزاكم الله خيرا والله موضوع الازرار فكرت فيه واجلته لو تم طلبه قلت ابقى اعمله سبب ما انى ما عملتش كود الازرار انه هيلغى تدرج الوان الازرار لو تم عمل تدرج لأى ازرار فى التصميم ولكن ممكن اعمله وهتكون موجودة نسختين وكل واحد يستخدم اللى يفضله لكن انا منتظر الرد من استاذى الجليل و معلمى القدير و والدى الحبيب الاستاذ @ابوخليل بحيث تتم التعديلات بناء على رغبة معلمى فى حال كانت له رغبات وتطلعات اخرى
    1 point
  9. شكرا لك حبيبنا @Foksh على هذا العطاء والإبداعات 🙂 وفقك الله لما يحب ويرضى وجعلك من المقبولين .. وجمعك الله بوالديك وأحبابك في أعالي جنات النعيم 😊🤲
    1 point
  10. من مكتبتي العامرة وجدت هذا النموذج وقد مر علي سابقا في عدة برامج 🙂 للأسف لا أعلم صاحبه الأصلي ولكنه تقريبا يحقق المطلوب 🙂 ويتم تنفيذه وتطبيقه على جميع النماذج عمل ثيمات لونية للنماذج يمكن تغييرها من قبل المستخدم بكل سهولة.zip
    1 point
  11. مش عارف الافكار عجبتكم واللا ايه محدش رد خالص على كل دى التجربة الثانية للتطوير اولا افتح الجدول باسم : tblThemeSettings تأكد انه فارغ ثم بعد ذلك قم بفتح النموذج : frmTheme والذى بدوره يضيف البيانات الى الجدول السابق فى حال كان الجدول فارغا واتمنى لكم الاستمتاع بتجربة النموذج السحرى : frmTheme فى تعديل ومعاينة واستعراض الثيمات وتحديد الثيم الاساسى الذى تفضله ليتم تطبيقه على كل نماذج القاعدة ويمكن تجربة الثيم الذى يتم اختياره من النموذج : as a test Only ليه انا سميت النموذج : frmTheme بالنموذج السحرى اولا هو غير مرتبط بالجدول وغير منضم اساسا سامع اللى بيقول ما ده شئ عادى وبيحصل طيب لكل ثيم عدد 3 سجلات ليه 3 1- الاول للتحكم فيما يخص المقطع Header 2- الثانى للتحكم فىما يخص المقطع Detail 3- الثالث للتحكم فيما يخص المقطع Footer طيب لاحظو معى ان زر الامر التالى و زر امر السابق لا يتم استعراض السجلات من خلالهم بل يتم استعراض الثيمات طيب وبما ان لكل ثيم 3 سجلات سوف يتم الاستعراض للسجلات الثلاث كل سجل من التبويب الخاص به هههههههه شغل مجانين صحيح محدش يزعق اتحملونى شرح سريع زر الامر : Prev Theme الانتقال الى الثيم السابق زر الامر : Next Theme الانتقال الى الثيم التالى ملحوظة يتم تطبيق كل ثيم بمجرد الضغط على ازرار الانتقال التالى والسابق كمعاينة فقط فى النموذج الحالى للاعدادت الثيم زر الامر : Set as Default Theme لجعل الثيم الحالى هو الثيم الافتراضى الذى يتم تطبيقه على كافة النماذج الازرار Header Section Detail Section Footer Section بداخلهم عناصر التحكم بالعناصر بشكل عام لكل مقطع على حده ممكن تغيير اللون لاى جزئيه تفضلها من خلال اختيار اللون من منتقى الالوان بالضغط على زر الامر : Pick Color الموجود بجانب كل عنصر والخاص به زر الامر : Only Preview من خلاله يتم تطبيق الالوان التى تم تعديلها واختيارها من منتقى الالوان لتتم المعاينة فقط فى النموذج الحالى فى حالة لم تعجبك الالوان بعد التعديلات فقط اغلق النموذج فى حالة اعجبك كل شئ بعد عمل المعاينة للتعديلات هنا يأتى دور زر الامر الاخيــــــــر زر الأمر : Save Color To Theme هو المسئول هن الاحتفاظ بالقيم الجديدة بعد تحديثها داخل جدول اعدادات الثيم لتبقى مخزنة وفق تعديلاتك التى اعجبت بها وتريد الاحتفاظ بها لها الثيم الثيمات(2).accdb
    1 point
  12. ماذا لو حصل زلزال وانهدم المبنى عليهم وعلى جميع الاجهزة سيكون العمل للأحياء منهم حينها في الهواء الطلق والتوقيع على الورق وتستمر الحياة .. والله المستعان لو لاحظت اني عملت ضبط للتبديل بين التوقيع بالبصمة والتوقيع بالباركود او ادخال المعرف بحيث يمكن حجب التوقيع بالباركود او ادخال الرقم على الجميع .. وتفعيل البصمة فقط .. ومع ذلك امكانية استثناء موظف محدد ليتمكن من التوقيع بجميع الطرق من ضمن المطالب: ان البرنامج يكون شقين .. واجهة تحكم .. وواجهة الحضور والتوقيع وان واجهة التحكم لا يتم الدخول اليها الا مرة واحدة فقط عند اعداد البرنامج . وواجهة الحضور عبارة عن شاشة صماء تحتوي على حقل الحضور فقط كما هو الحال في المثال المرفق المطلب : لو اراد مدير النظام التوقيع عن أحد لظرف ما من الظروف ( بتمرير باركود الموظف او معرفه) ... على اعتبار ان البرنامج يعمل على البصمة فقط يكون لدى المدير باركود خاص يمرره فيسمح له البرنامج امكانية التوقيع عن شخص ما عبر باركوده او معرفه (السماح فترة ثواني .. ثم يغلق آليا) أنا الآن اعمل على ذلك ...
    1 point
  13. جزاكم الله خير فكره جميلة جدا و يحتاجها كل مطوري الاكسيس
    1 point
  14. احسنت وبارك الله فيك شكرا لتجاوبك تمت التجربة مع بعض التعديلات البسيطه وكانت فعاله Dim ctrl As Control For Each ctrl In Me.Controls If (ctrl.ControlType = acTextBox Or ctrl.ControlType = acComboBox) Then If (Nz(ctrl.Value, "") = "") Then MsgBox "يرجى تعبئة جميع الحقول قبل الحفظ." & vbCrLf & _ "الحقل الفارغ: " & ctrl.Name, vbExclamation ctrl.SetFocus Exit Sub End If End If Next ctrl ' إذا جميع الحقول تم تعبئتها، يتم الحفظ DoCmd.RunCommand acCmdSaveRecord MsgBox "تم الحفظ بنجاح بنجاح", 0 + 64 + 1048576, "مؤكد" DoCmd.Close
    1 point
  15. كثيرون استفسروا عن كيفية اختيار اسم مخزن في الجدول ، بدلاً من كتابة الرقم بشكل يدوي . ولذا قد صورت هذا الفيديو كفكرة سريعة على الخطوات - وصولاً إلى النتيجة ,, طبعاً كلمة كثيرون = في مجموعة الواتس أب الخاصة بقسم آكسيس وليس في المنتدى 🤣
    1 point
  16. وعليكم السلام ورحمة الله وبركاته ،، وبما اني اتابع من الجوال ، ولم استطع من رؤية الملف . اعتقد ان هناك أكثر من فكرة !!! الأولى قد تعتمد على دالة تتفقد جميع العناصر ذات النوع "مربع نص" بأنها تحتوي قيم وغير فارغة . وهذا قد يسبب مشكلة لأنه حينها لن يميز بين مربعات النص التي تريدها من مربعات نص أخرى على سبيل المثال . الثانية أنه عند الحفظ وقبل إتمام عملية الحفظ التأكد من مربعات النص التي لها مصدر بيانات مرتبط بحقل وليس مربعات النص الغير مضمنة بمصدر بيانات ، وهنا قد تكون مشكلة أيضاً . الثالثة وما أرجحها بشكل أفضل وأقوى ، وهو من خلال الـ TAG . بحيث تضع وسماً لجميع مربعات النص التي تريدها أن يتم التحقق منها ولنفترض = Ham حيث من خلال زر الحفظ نستعمل كود بهذا الشكل تقريباً - ما لم أكن مخطئاً في بعض الأجزاء .. dim ctl as control, missing as string for each ctl in me.controls if lcase(trim(ctl.tag)) = "Ham" then if nz(ctl.value, "") = "" then missing = missing & vbcrlf & ctl.name end if end if next if missing <> "" then msgbox " : الحقول التالية فارغة" & vbcrlf & missing, vbinformation+ vbmsgboxright, "" exit sub end if docmd.runcommand accmdsaverecord docmd.gotorecord,,acnewrec طبعاً ، إذا كنت من الأشخاص الذين يتركون اسم مربع النص كما هو من مصدره من الجدول ، فقد قمت بإضافة فكرة تحديد اسماء المربعات النصية التي لم يتم ادخال بيانات فيها . بكل الأحوال جرب وأخبرنا بالنتيجة ، عل أحد الأساتذة والأخوة يتابع معك من كمبيوتر 🥴 على كل حال جرب خطر على بالي نقطة أخرى من خلال السطر :- missing = missing & vbcrlf & ctl.name بأن نستبدله بالسطر التالي :- missing = missing & vbcrlf & ctl.controls(0).caption فهنا سيأقرأ التسمية ( label ) المرتبطة بكل مربع نص بدلاً من اسم مربع النص نفسه .
    1 point
  17. بعد اذن اخي فادي تفضل من عمل اخونا صالح حمادي جربته وأستخدمه دوما في الشاشات التي تفتح على كامل الشاشة .. يعمل 100% ملائمة النموذج حسب حجم الشاشة صالح حمادي.rar
    1 point
×
×
  • اضف...

Important Information