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

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

  1. محمد حسن المحمد

    • نقاط

      7

    • Posts

      2,216


  2. أبو إبراهيم الغامدي
  3. Hamdi Edlbi-khalf

    Hamdi Edlbi-khalf

    الخبراء


    • نقاط

      3

    • Posts

      993


  4. ِAhmed mahmoud a

    ِAhmed mahmoud a

    عضو جديد 01


    • نقاط

      3

    • Posts

      8


Popular Content

Showing content with the highest reputation on 31 ينا, 2022 in all areas

  1. السلام عليكم هذا ما تحتاج وتبحث عنه إن شاء الله أللهم صل على سيدنا محمد وعلى آله وصحبه وسلم لا إله إلا الله وحده لا شريك له، له الملك وله الحمد يحيي ويميت وهو على كل شيء قدير Colorizing.accdb
    2 points
  2. الحمدلله الذى بنعمته تتم الصالحات وجزاهم الله خيرا اخوانى واساتذتى فمنهم تعلمت ومازلت اتعلم مرفق تعديل آخر لكى نحافظ ع تصميم الجدول كما هو لانى كنت قد اضفت حقل لترقيم السجلات كمجموعات باالنسبه للطريقه انشات استعلام qry للحصول على اللجان والصفوف والحصوب على القيم الفريده SELECT DISTINCT stu_gloos.lagna_no, stu_gloos.alsofof_code FROM stu_gloos WHERE ((Not (stu_gloos.lagna_no) Is Null)); قمت بانشاء استعلام qryU للحصول على عدد اللجان لكل صف SELECT qry.lagna_no, Count(qry.lagna_no) AS Countlagna_no FROM qry GROUP BY qry.lagna_no; قمت بالدخول لاستعلام qry_reports فى وضع التصميم واضافه الاستعلام qryU وقمت بعمل علاقه بينهم عن طريق رقم اللجنه قمت باضافه الحقل Countlagna_no من الاستعلام qryU كما بالصوره التاليه قمت بانشاء التقرير باستخدام المعالج وتحديد مستويات التجميع بناء على الحقل الجديد المضاف ثم اللجنه هذا ما قمت بعمله فالمرفق الاخير بهذه المشاركه والاستغناء عن تعديلات الجدول واستعلام التحديث بالتوفيق كشف ملاحظة حسب الصف واللجان -(2).accdb
    2 points
  3. السلام عليكم اخي الفاضل sabry fahmy للتحويل كما تطلب لابد من بناء قاعدة البيانات من الاول بمعني نعمل الحداول والنماذج ونحدد الكود اذا احتاج الامر لو حضرتك عملت (الجدول / الجداول ) وطلبت المساعدة كنت هتلاقي افاضل كتير هيساعدوك ويكملوا معاك لكن لان حضرتك جديد معانا في قسم الاكسيس فنحن نرحب بك ونتمني ان تتقن الاكسيس وترتبط به فتفضل اول جزء في طلبك لاني اعتقد انك هتكمل عليها وتبقي قاعدة كبيرة بحث.accdb
    2 points
  4. أهلا بك @أبو عبدالله الحلوانى نعم ممكن.. لكن في مثالك لن تكون القيمة ثابتة! بل مجرد تحديث الصفحة سوف يرجع إلى وضعه الطبيعي، لكون الحقول غير مرتبطة بجدول بيانات.. الشفرة كالتالي -- نقوم بتحديد صفوف الجدول أولا لأن لنا معها أمران: الأول القيمة المطابقة للبحث وهي في الحقل الثاني من الصف، وللوقوف على الحقل المطابق يلزمنا عمل دوارة فحص.. الثاني إذا تطابقت البيانات نحدد الحقل الذي به صندوق الاختيار ومن ثم نعطيه القيمة True Sub IsChecked() Dim I As Integer Dim tr As Object Set tr = WD.querySelectorAll("table tr") For I = 1 To tr.length - 1 '-- check if second cell in the row matched textbox value If tr(I).childNodes(1).innerText = Me.Text0 Then '-- if true: in fifth cell in the row set checked property true tr(I).childNodes(4).childNodes(0).Checked = True End If Next End Sub TestCheckBoxOnHtml.zip
    2 points
  5. أخي الكريم يمكنك إرسال نسخة عن الملف بها بيانات وهمية لتتم مساعدتك من قبل الإخوة في هذا المنتدى الكريم تقبل تحياتي
    1 point
  6. بعد اذن استاذنا الفاضل @اشرف الاستاذ / @sabry fahmy هذه الرسالة عنيت انا منها كثيرا وهى معناها ان قاعدة البيانات لاتتصل بـخادم ole يعنى قاعدة البيانات بها مشاكل اعمل استيراد فى قاعدة بيانات جديدة وسوف تعمل معاك دون هذه الرسالة انا عملت استيراد وعملت تمام جزاك الله خيرا اخى استاذنا / اشرف
    1 point
  7. تمام أخي الفاضل @الفلاحجى بارك الله فيك .. هذا هو المطلوب ولكن لي طلب أخر هو ( شرح طريقة الحل ) لكي يستفيد الجميع أما بالنسبة للسادة الأفاضل @د.كاف يار و @ابوخليل و @ابو البشر فجزاهم الله عنا خير الجزاء علي ماقدموه من مساعدة
    1 point
  8. شكرا جزيلا اخي الكريم وجزاك الله خيرا اعتذر فلم اعرف كيفية تطبيقه حاولت وفشلت علما اني لدي عمودين لخانة القيد التي اريد جمعها واحد بنون والثاني بنات
    1 point
  9. السلام عليكم ورحمة الله وبركاته ضع في الخلية FB6 واسحب نزولاً تقبل تحياتي كيف كانت النتيجة؟...😊 =IF(B6="";"";SUM(FA6;EV6;EQ6;EL6;EG6;EB6;DW6;DR6;DM6;DH6;DC6;CX6;CS6;CN6;CI6;CD6;BY6;BT6;BO6;BJ6;BE6;AZ6;AU6;AP6;AK6;AF6;AA6;V6;Q6;L6;G6))
    1 point
  10. السلام عليكم اخى محمد حسن واجهتنى مشكلة اخرى عند جمع قيم الاجر اليومى لم تظهر قيمة اجمالى الاجر ولك جزيل الشكر اجمالى اجر الشهر.xlsx
    1 point
  11. السلام عليكم ورحمة الله وبركاته أخي الكريم يمكنك ذلك بإدراج موديول ثم الحساب بالدالة CountA وفق الأسلوب التالي: تختار النطاق المطلوب من:إلى ثم تختار الخلايا المطلوب جمعها ((واستثناء الخلايا التي تحتوي معادلات والخلايا الفارغة سيتم آلياً أي أنك لست بحاجة إلى تحديد الخلايا الفارغة وخلايا المعادلات)) فتظهر النتيجة على شريط الحالة Sub FindText() 'اختيار النطاق.وتحديد خلابا مخصصة لا تحتوي على معادلات وليست فارغة Range("c14:r30").SpecialCells(xlCellTypeConstants, 23).Select 'مكان وضع نتيجة عدد الخلايا فتظهر نتيجة المعادلة مطابقة للنطاق الذي اخترته Sheets("اسم الورقة لديك").Range("Q6") = WorksheetFunction.CountA(Selection) End Sub يرجى اختيار خلية في الورقة المطلوبة يسجل فيها العدد، كما يرجى وضع شكل تطلب من خلال النقر عليه تشغيل الكود وعرض النتيجة. والسلام عليكم
    1 point
  12. أستاذ @jjafferr بل لك وافر الشكر والامتنان على تقبلك مداخلاتي
    1 point
  13. وعليكم السلام - وكيف تنتظر المساعدة من احد بدون رفع ملف مدعوم بشرح كافى عن المطلوب ؟!!!!
    1 point
  14. وجزاكم بمثل ما دعوتم أخي الكريم أحمد @ِAhmed mahmoud a آمين
    1 point
  15. طريقة ColumnHistory فعالة وجديرة بالاهتمام لإختزالها الكثير من الخطوات (وحتى مافي داعي نراقب هذا الحقل من جدول آخر 🙂 ) ، اخي الاستاذ ابو إبراهيم ، شكرا على الشرح والتوضيح ، فإمكانياتك على الشرح بأمثلة جدا مميزة 🙂 جعفر
    1 point
  16. نعم عرف السبب اخي مرسال حتي تظهر النسبة بشكل صحيح في ملفك لا تضرب في 100 عند حساب نسبة الحضور فقط اقسم m3 علي m2 بدون الضرب في 100
    1 point
  17. السلام عليكم اخوي قبل تطبيق النسبة المئوية على الخلية يكون الحساب من 100 يعني عند كتابة 60 ثم تطبيق النسبة تأتي مكتوبة كالاتي 60% اما اذا كانت النسبة المئوية مطبقة سابقا على الخلية عند كتابة 60 ستظهر كالاتي 6000% لحل هذا المشكلة اما الغاء تطبيق النسبة على الخلايا وكتابة الارقام بشكل عادي ثم اعادة تطبيق النسبة او كتاب الارقام بالاعشار في حال ان النسبة مطبقة في الخلايا اي كتابة 0.60 وستظهر 60% اتمنى اكون اجبت سؤالك
    1 point
  18. السلام عليكم ممكن تستخدم المعادلة التالية AGGREGATE(3,5,مدى الخلايا المطلوب) بالتوفيق ان شاء الله السلام عليكم ممكن تستخدم المعادلة التالية AGGREGATE(3,5,مدى الخلايا المطلوب) بالتوفيق ان شاء الله
    1 point
  19. جزالك الله خير الجزاء، بارك الله فيك تمت كما اشرت بفضل الله تسلم اخى محمدحسن
    1 point
  20. طلبي كان إعادة تجربة الشفرة بعد إدخال البيانات فقط نعم هناك طرق كثيرة لمعالجة البيانات وأبسط بكثير من RegExp إذا كانت البيانات في المقطع الأخير نصية وبها فراغات فإن استخدام Split في الدورة الثانية سوف يحدث خللا في البيانات وبما أن السجل التاريخي ذو بيانات ثابتة إلى المقطع الأخير فيمكن استخدام الطريقة التالية Sub SplitHistory() Dim XHistory Dim L, D, T, V XHistory = Split(Application.ColumnHistory("Products", "List Price", "id=1"), vbCrLf) For Each L In XHistory Debug.Print L D = Mid(L, 12, 10) ' Date T = Mid(L, 23, 8) ' Time V = Mid(L, 34) ' Value Debug.Print D, T, V Debug.Print Next End Sub
    1 point
  21. السلام عليكم .. اخوانى الكرام ,, بعد التحية موضوعنا اليوم عن النسخ الاحتياطى لمحتويات فولدر محدد فى وقت محدد من اليوم على اساس يومى او اسبوعى او شهرى كما تريد . قمت بتصميم نموذج فى القاعدة المرفقة يتم تحديد فيه الفولدر المطلوب نسخه و مكان حفظ النسخة والوقت الذى يتم فيه النسخ تلقائيا . كود النسخ المستخدم كالتالى : Public Sub Copy_Folder1() Dim FSO As Object Dim FromPath As String Dim ToPath As String FromPath = Forms!Frm!from 'ToPath = "D:\Old\test" '<< Change ToPath = Forms!Frm!To2 & Format(Now, "yyyy-mm-dd h-mm-ss") If Right(FromPath, 1) = "\" Then FromPath = Left(FromPath, Len(FromPath) - 1) End If If Right(ToPath, 1) = "\" Then ToPath = Left(ToPath, Len(ToPath) - 1) End If Set FSO = CreateObject("scripting.filesystemobject") If FSO.FolderExists(FromPath) = False Then MsgBox FromPath & "المسار المطلوب النسخ منه غير موجود" Exit Sub End If FSO.CopyFolder Source:=FromPath, Destination:=ToPath End Sub مميزات الكود : نسخ محتويات الفولدر بالكامل سواء ملفات او فولدرات فرعية . فى حالة عدم وجود المسار المطلوب وضع النسخة الاحتياطية فيه سيقوم بانشاءه تلقائياً. فى حالة وجود المسار وبه ملفات بنفس الاسم سيتم عمل Overwrite للملفات القديمة واستبدالها بالجديدة (وذلك فى حالة انك غيرت الاسم الذى يتم الحفظ به لأن الافتراضى يحفظ الاسم بالتاريخ ووقت الحفظ بالدقائق وبالتالى من الصعب تشابه الاسماء بين النسخ). شكل النموذج عند الضغط على تشغيل يقوم باستدعاء كود النسخ . فى حالة وصول وقت الجهاز الى الوقت المحدد بالنموذج يقوم باستدعاء كود النسخ . يمكنك كتابة المسار او اختياره عن طريق الازرار الموجودة بجوار الحقل النصى. لحد الآن موصلناش لجزئية التلقائى المذكورة فى العنوان 😅, من المعروف ان لازم تكون القاعدة مفتوحة حتى يعمل النسخ الاحتياطى وبالتالى فى حالة انك قمت بعمل استيراد للبرنامج ده داخل قاعدتك الاساسية المفتوحة طوال اليوم فلا مشكلة وعند وصول الوقت المحدد ستعمل بدون مشاكل .. ولكن ماذا لو اردت ان النسخ يتم حتى لو القاعدة مغلقة ؟ سنقوم بالاستفادة بخاصية مهمة موجودة فى الويندوز وبدون استخدام برامج خارجية تابع معى : فى قائمة Start ابحث عن Task Scheduler وهى خاصية تقوم بعمل مجموعة من الاوامر فى اوقات محددة مثل تشغيل برنامج او اغلاقه او ارسال ايميل مثلا الخ... هذه صورة الواجهة اضغط على Create Basic Task وستفتح لك الواجهة التالية : اكتب اسم المهمة المطلوبة ثم Next : هنا تكرار المهمة يوميا - اسبوعيا - شهريا - مرة واحدة - عند بداية التشغيل للجهاز - عندما اسجل دخول المستخدم - عند حدوث حدث معين . اختر ما يناسبك وفى حالتنا اخترت Daily يومياً . اختر تاريخ بداية العمل و الوقت المطلوب تشغيل المهمة فيه .التالى فى هذه الخطوة تختار ماهية المهمة فتح برنامج معين - ارسال ايميل - عرض رسالة محددة .. اختر Start Program فى حالتنا .. التالى فى هذه الخطوة تقوم باختيار مسار البرنامج المطلوب تشغيله وطبعا فى هذه الحالة البرنامج هو ميكروسوفت اكسس يتم تحديد مسار البرنامج من "C:" ثم تحديد القاعدة المطلوب تشغيلها فى Arguments بنفس الصيغة الموجودة بالصورة (بين علامتين تنصيص والمسار كامل بالامتداد ) #Program/Script "C:\Program Files\Microsoft Office\Office16\MSACCESS.EXE" #Arguments "C:\Users\Amr\Access\Backup\Tasker.Accdb" ثم اضغط على Finish. وبهذا قمنا بعمل مهمة للويندوز انه يفتح القاعدة الخاصة بنا فى وقت معين يومياً ,, باقى العمل داخل القاعدة نفسها كالتالى : فى حدث عند الفتح للنموذج ستجد الكود التالى : Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acFirst Me.To2 = [to] & "\" & [newnm] & " " Call SixHatHideWindow(SW_SHOWMINIMIZED) 'Call Copy_Folder1 '''' نقوم بتفعيل الخيار بعد تحديد الخيارات فى النموذج اول مرة لتعمل بتلقائية فيما بعد 'DoCmd.Quit '''' نقوم بتفعيل الخيار بعد تحديد الخيارات فى النموذج اول مرة لتعمل بتلقائية فيما بعد End Sub السطرين الغير مفعلين يتم تفعليهم بعد تحديد الخيارات الخاصة بيك من النموذج اول مرة وعند تفعيلهم بمجرد تشغيل القاعدة ستقوم بعملية النسخ وتغلق تلقائياً .. وبالتالى ملخص الفكرة ان القاعدة هتكون مغلقة وهتقوم مهمة الويندوز بتشغيلها وعند تشغيلها ستقوم بعمل النسخ الاحتياطى بالبيانات التى تم تحديدها اول مرة ثم تغلق تلقائياً وذلك فى اقل من ثانية قد لا تلاحظها من الاساس . مرفق القاعدة .. جرب ووافنى بالنتيجة .. دمتم بخير. ملحوظة : يمكن عمل المهمة الخاصة بالويندوز عن طريق اسكريبت VBS اختصارا للخطوات ولكن اردت شرح الفكرة من أساسها ويكون هناك مساحة للتطوير فيما بعد . BackupManual+Auto+Timer-AmrAshraf.accdb
    1 point
  22. مشاركه مع اخوانى واساتذتى جزاهم الله خيرا حاجه ع قد حالى ان شاء الله تكون ما تريد وفى انتظار طريقه @د.كاف يار الاخيره للتعلم ايضا مع اخوانى بالتوفيق 1807770602_.accdb
    1 point
  23. السلام عليكم رداً على السؤال التالي: سؤال عن كود البحث في جدولين قمت بعمل محاولة بناء على ما تبين لي من مقصد السائل، وبناء على ملاحظة الأستاذ @د.كاف يار عن كون الفكرة مبتكرة، أعيد رفع المرفقات مع شرح مختزل للفكرة عارٍ من الصور، مع إضافة طريقة أخرى. الفكرة قد تحتاج إلى تهذيب بحكم أنها كانت استجابة عفوية للسائل، أضعها بين أيديكم الغالية، عسى أن يُستفاد منها: أللهم صلِ على سيدنا محمد وعلى آله وصحبه وسلم. تنقسم الطريقة إلى جزئين رئيسيين، الأول منهما ثابت والثاني اقترحت طريقتين له: الجزء الأول: عمل استعلام توحيد بين الجدول الرئيسي والفرعي، يكون فيه من الجدول الفرعي Figlio : 1- الحقل الذي نرغب بالبحث ضمنه. 2- حقل المتسلسل. 3- حقل الربط. ومن الجدول الرئيسي Padre: 1- الحقل الذي نرغب بالبحث ضمنه 2- حقل المتسلسل 3- حقل محسوب قيمته صفر (نستحصل عليها بضرب حقل المتسلسل بالقيمة صفر). بالنسبة لي، قد اخترت أن يكون في نموذج البحث مربع قائمة -على مبدأ (البحث عن الكل) في الإكسل- يكون مصدره الاستعلام الذي سميته في الأنموذج المرفق (SearchQ)، وربطته بفلاتر تُستدعى بناء على معيار حقل البحث (طريقة العرض يمكن تغييرها والتفنن بها وهذه الجزئية ليست موضوع المنشور)، بعد ذلك يتم الانتقال من نموذج البحث إلى نموذج الإدخال (بقسمين الرئيسي والفرعي) بتمرير قيمة حقل الربط وحقل المتسلسل. إلى مربعين غير مرتبطين في نموذج البحث ومن ثم إلى نموذج هدف البحث. (ويمكن ذلك باستخدام المتغيرات). ملحوظة: يوجد في النموذج الفرعي حقل خفي مصدره المتسلسل في الجدول الفرعي. الجزئية الثانية: كيفية تحديد الحقل والسجل الذي يتضمن الهدف! هنا لدينا طريقتان: الأولى: بنقل التركيز إلى الحقل المطلوب : Dim Padre As Integer ' متغير باسم (الأب) لحفظ قيمة معرف السجل في الجدول الرئيسي Dim Figli As Integer ' متغير باسم (الابناء) لحفظ قيمة معر السجل في الجدول الفرعي Padre = Me.id ' حقل خفي في نموذج البحث Figli = Me.ID2 ' حقل خفي في نموذج البحث If Me.ID2 = 0 Then ' هذا الشرط لجعل الكود يتحقق بالانتقال ووقوف في النموذج الرئيسي أو الانتقال ومتابعة البحث في النموذج الفرعي DoCmd.OpenForm "form1" ' إعادة فتح النموذج الهدف لنقل التركيز إليه DoCmd.GoToRecord acDataForm, "Form1", acGoTo, Padre ' فتح النموذج على السجل المنشود DoCmd.GoToControl "[اسم رب العائلة]" ' التركيز على حقل فيه Else DoCmd.OpenForm "form1" DoCmd.GoToRecord acDataForm, "Form1", acGoTo, Padre 'Me.id DoCmd.GoToControl "SubForm" ' نقل التركيز إلى النموذج الفرعي DoCmd.GoToControl "[الاسم]" ' نقل التركيز إلى حقل في النموذج الفرعي ' هذا الجزء لنقل التركيز في النموذج الفرعي إلى السجل المطلوب Dim rstt As dao.recordset Dim rstrng As String rstrng = "[id0]=" & Figli 'Forms!search!Figli Set rstt = Forms!form1!Subform.Form.RecordsetClone rstt.FindFirst rstrng Forms!form1!Subform.Form.Bookmark = rstt.Bookmark Set rstt = Nothing End If الثانية: باستخدام التنسيق الشرطي وهي الطريقة الأفضل برأيي. ويزاد فيها وجود معادلة للتنسيق الشرطي لحقل الهدف في النموذج الرئيسي وأخرى لحقل الهدف في النموذج الفرعي ، ووجود حقلين خفيين في النموذج الرئيسي يأخذان قيمتها من المتغيرين (الأب) و(الأبناء)، ستكون قيمتهما هي محددات معادلتي التنسيق الشرطي. ' سيبدو الكود بهذه الطريقة Dim Padre As Integer Dim Figli As Integer Padre = Me.id Figli = Me.ID2 Forms!form1!CondScnd.Value = Figli ' هنا نجعل حقل المعيار للتنسيق الشرطي يأخذ قيمته من المتغيرات المبين معناها في الكود السابق Forms!form1!CondFrst.Value = Padre DoCmd.GoToRecord acDataForm, "Form1", acGoTo, Padre Forms!form1.Refresh ' مع اختصار المراحل ' وتوفير ضرورة إعادة التركيز إلى نموذج البحث مع كل انتقال إلى الهدف أرجو ممن يعرج على الموضوع التفضل بوضع ملاحظاته أو اقتراحاته أو إضافته. والحمد لله رب العالمين أخيراً المثال من وضع السائل في الرابط المذكور أعلاه (مشكوراً مأجوراً إن شاء الله تعالى) Search in Main form and Sub Form Simultaneously Search_MaiForm_SubFormConditionl.accdb Search_MainF=SubFormSetFocus.accdb
    1 point
  24. الحمد لله الذي بنعمته تتم الصالحات والسلام عليكم
    1 point
  25. 1 point
  26. السلام عليكم ورحمة الله وبركاته أخي الكريم أرجو وضع المعادلة التالية في الخلية G7 من ورقة حضور وانصراف من ملفك وستكون النتيجة مرضية إن شاء الله تعالى. =IF(AND($B7<>"";$D7<>"";$E7<>"";$F7<>"");IF(F7>0;VLOOKUP($B7;'بيانات الموظفين'!$B$7:$T$49;7;0);"");"") والسلام عليكم
    1 point
  27. اذا كنت تريد "جعل النموذج المستمر دائما وأبدا يقف أو يعمل SetFocus على سجل جديد" في النموذج الرئيسي ، اذن استعمل الكود في النموذج الرئيسي ، وإلا فيمكنك استخدامه في النموذج الفرعي . او استخدام كود اخونا ازهر في النموذج الرئيسي ، اذا اردت السجل الجديد والمؤشر يقف في النوذج الفرعي 🙂 واذا دوخك كلامي ، فاعمل تجربة في النوذج الرئيسي ، واذا ما نفع ، فاعمله في الفرعي 🙂 جعفر
    1 point
  28. السلام عليكم ورحمة الله اليك المطلوب مطلوب لكشف المناداة.xlsx
    1 point
  29. Sub Test() Dim m As Long m = Range("A" & Rows.Count).End(xlUp).Row Range("A1:A" & m).Value = Evaluate("=LEFT(A1:A" & m & ",FIND(""."",A1:A" & m & "))&ROW(A1:A" & m & ")") End Sub
    1 point
  30. السلام عليكم أخي الكريم يمكنك كتابة معادلة في الخلية A1 ثم اسحب نزولاً إلى آخر رقم تريده في حال الحذف ستأخذ الخلية الأدنى قيمة الخلية المحذوفة أما في حال الإضافة فأنت بحاجة لسحب المعادلة من جديد بعدد الصفوف المضافة ="*T900."&ROW() والسلام عليكم
    1 point
  31. الخطأ في اي سطر اخى الكريم لو تقصد السطر رقم j5 حضرتك كاتب ٢٨٠+٢٨٠=٥٦٠ ولكن حضرتك كاتب في الرصيد السابق في نفس السطر في الخليه h5 المبلغ بالسالب -280 وفي الخليه g5 مبلغ بالموجب 280
    1 point
×
×
  • اضف...

Important Information