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

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

  1. Foksh

    Foksh

    الخبراء


    • نقاط

      44

    • Posts

      5108


  2. منتصر الانسي

    منتصر الانسي

    المشرفين السابقين


    • نقاط

      31

    • Posts

      1457


  3. Ali Mohamed Ali

    Ali Mohamed Ali

    المشرفين السابقين


    • نقاط

      28

    • Posts

      11654


  4. عبدالله بشير عبدالله

Popular Content

Showing content with the highest reputation since 09/06/26 in all areas

  1. اعرض الملف ⭐ هدية ~ الحل المتكامل لتحزيم وتوزيع تطبيقات أكسس كملف تنفيذي احترافي 2026 ⭐ أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. كثيراً ما يقضي مطور ومبرمج قواعد بيانات أكسس أياماً وليالي في تصميم وبرمجة نظامه بأعلى درجات الإتقان والإحترافية ، ولكن عند وصول لحظة تسليم البرنامج للعميل تبدأ التحديات الحقيقية 😵 ، والتي ألخصها بما يلي :- كيف أمنع العميل من العبث بالتصميم وكود الـ VBA ؟ كيف أتخلص من رسائل الأمان المزعجة ؟ كيف أقوم بتثبيت الخطوط الخاصة وتجهيز المرفقات وملفات الـ Back-End بسلاسة ؟ كيف أُقدّم البرنامج للعميل في صورة ملف تثبيت احترافي ( Setup.exe ) وبأيقونة مخصصة ؟ من هذا المنطلق ، وخدمة لإخواني المطورين وصانعي تطبيقات الآكسيس ، يسعدني أن أضع بين أيديكم اليوم أداة :- معالج ومنشئ حزم تثبيت أكسيس الذكي - Access Smart Packager & Setup Builder وهي أداة متطورة تم بناؤها من داخل أكسس نفسه باستخدام نسخة محمولة من Inno ، لتتولى أتمتة عملية التحزيم والتوزيع بالكامل بنقرة زر واحدة ودون أي تعقيد . 🛠️ الميزات والوظائف الرئيسية للأداة :- 1️⃣ التحويل التلقائي الذكي إلى ( ACCDE / MDE ) ، وهنا يلعب الدور إصدار آكسيس الذي تم تشغيل الأداة من خلاله . تحويل فوري ومحمي لقاعدة البيانات بنقرة واحدة لحماية أكواد الـ VBA . فحص وتشخيص ذكي للأخطاء . الأداة لا تكتفي بإظهار رسائل خطأ غامضة ؛ بل تفحص تلقائياً ( صيغة الملف ، القفل والتزامن ، المراجع البرمجية المفقودة بالاسم ، وأخطاء التجميع ... إلخ ) لتخبرك بالسبب الدقيق وحله فوراً . 2️⃣ الأمان وحماية البرنامج :- تعطيل المفتاح الخاصة وخصوصاً مفتاح الـ Shift . حيث تقوم بقفل تشغيل البرنامج بزر Shift وأي مفاتيح خاصة ، لمنع الدخول للنوافذ الخلفية أو نافذة التنقل أو محرر الأكواد . إضافة المواقع الموثوقة ( Trusted Locations ) ؛ فتقوم بتسجيل مسار البرنامج تلقائياً في سجل الويندوز (داخل الـ Registry ) لتعمل الماكرو وأكواد VBA بدون أي تحذيرات أمان. حماية التثبيت بكلمة مرور . وهذه تتيح إمكانية تشفير ملف التثبيت وحمايته بكلمة سر تمنع غير المصرح لهم من تنصيبه . 3️⃣ المعمارية المزدوجة وفصل البيانات ( Front-End و Back-End ) :- دعم كامل للأنظمة المقسمة ؛ بحيث يمكنك تحديد مسار تثبيت مختلف ومستقل لملف البيانات (Back-End) عن ملف الواجهة . دعم تضمين مجلدات وملفات إضافية غير محدودة (مستندات ، صور ، أدلة تشغيل ... إلخ ) . 4️⃣ دعم الأجهزة غير المزودة بأوفيس ( Access Runtime ) :- إمكانية تضمين حزمة التثبيت الخاصة بـ Microsoft Access Runtime ليعمل برنامجك على أي جهاز عميل لا يملك نسخة أوفيس مثبته داخل الويندوز . 5️⃣ التثبيت التلقائي للخطوط واتفاقية الاستخدام :- خيار لتثبيت خطوط البرنامج الخاصة في نظام ويندوز العميل تلقائياً . إظهار شاشة اتفاقية الترخيص ( License Agreement ) قبل بدء التثبيت . 6️⃣ واجهة تثبيت تفاعلية ومخصصة :- تمكنك الأداة من إنشاء إختصارات سطح المكتب وقائمة ابدأ بأيقونة التطبيق المخصصة . دعم واجهات التثبيت باللغة ( العربية / الإنجليزية / أو كلاهما ) ليختار العميل لغته المفضلة لواجهة التثبيت . 7️⃣ نافذة تيرمنال عصرية وملونة ( Live Log Terminal ) :- شاشة سجل تفاعلية حديثة ، تعرض خطوات البناء لحظة بلحظة بنظام ألوان متناسق وواضح ومخصص لسهولة المتابعة . 📥 كيفية الاستخدام :- اختر مشروعك أو أنشئ مشروعاً جديداً . حدد ملف قاعدة البيانات الرئيسي ( وملف قاعدة البيانات الخلفية - الجداول - إن وجد ) والأيقونة . قم بتفعيل الخيارات التي تناسبك من لوحة التحكم ، مثل ( Shift , Trusted Location , Fonts , Runtime ... إلخ ) . اضغط على زر إنشاء حزمة التثبيت ، وسيتكفل البرنامج بالباقي لتجد ملف الـ EXE جاهزاً للتسليم 😁 . 📸 صورة لواجهة الأداة وتبويباتها :- فيديو توضيحي لطريقة الاستخدام بشكل سريع .. أتمنى أن تكون هذه الأداة عوناً وإضافة نافعة لجميع المطورين والمبرمجين في مشاريعهم القادمة ونسألكم خالص الدعاء بظهر الغيب .. صاحب الملف Foksh تمت الاضافه 09/05/26 الاقسام قسم الأكسيس  
    4 points
  2. اعرض الملف أداة البحث السريع {سلسلة الأدوات المساعدة المخصصة} أي شخص يتعامل مع برامج وتطبيقات قواعد البيانات لايمكن أن يستغني عن إستخدام أي وسيلة من وسائل البحث عن البيانات فمثلاً عندما تريد تصفية نموذج بيانات الموظفين لإستعراض بيانات موظف واحد فقط , أو كمثال آخر إذا كنت تعمل على شاشة المبيعات وتريد إدخال رقم الصنف فتقوم بفتح قائمة الأصناف والبحث عن الصنف المطلوب لإرجاع كود الصنف والإحتفاظ به في جدول المبيعات , والكثير من الأمثلة الأخرى المشكلة هنا هو أنك ستكون مضطر لإنشاء نموذج بحث لكل مكان ستحتاج فيه إلى البحث عن البيانات أو على الأقل نموذج واحد لكل نوع من أنواع البيانات ولحل هذه المشكلة أقدم لكم اليوم أداة جميلة وبسيطة تمنحكم إمكانية الحصول على أي عدد قد تحتاجونه من قوائم البحث وبإستخدام نموذج واحد فقط (بالأصخ نموذج رئيسي وآخر فرعي) وقد أسميت الأداة بإسم أداة البحث السريع لأنها بالفعل تقدم أسرع تجربة بحث قد تجدها سواء كنت تستخدم الماوس أو لوحة المفاتيح وكما هو موضح بالصورة المتحركة فلو رأينا سرعة الوصول لنتيجة البحث بإستخدام الماوس وقارناها مع مربع التحرير والسرد أو مربع القائمة سيكون الفارق كبير وكما تعودنا سأرفق لكم ملفي القالب والنسخة التوضيحية والتي ستجدون بداخلها أمثلة عملية لإستخدام الأداة مع ملاحظات وتعليمات أرجو قرائتها بعناية أرجو أن تجدوا في هذه الأداة الفائدة والعون في تسهيل أعمالكم تحياتي صاحب الملف منتصر الانسي تمت الاضافه 09/08/26 الاقسام قسم الأكسيس  
    4 points
  3. المعادلة لا تغمل على اصدار 2010 تعمل على اصدار 2013 وما فوق يمكن استخدام كود لتلوين الخلايا التي بها معادلات الخطوات حدد العمود او الاعمدة - ثم اصغط على الزر تلوين خلايا المعادلات.xlsb
    3 points
  4. معادلة جلب العنوان: =IFERROR(INDEX($K$4:$K$1000,MATCH($B4&$C4&$D4,$H$4:$H$1000&$I$4:$I$1000&$J$4:$J$1000,0)),"") معادلة جلب المهنة: =IFERROR(INDEX($L$4:$L$1000,MATCH($B4&$C4&$D4,$H$4:$H$1000&$I$4:$I$1000&$J$4:$J$1000,0)),"") في إصدارات Excel القديمة يجب إدخال المعادلة كمصفوفة بالضغط على: Ctrl + Shift + Enter أما في Excel 365 وExcel 2021 فيكفي الضغط على Enter فقط، ولا حاجة لاستخدام Ctrl + Shift + Enter.
    3 points
  5. وعليكم السلام ورحمة الله وبركاته .. إليك معادلات شاملة للعيارات من 18 - 24 للحركات مبيعات ومشتريات :- عدد حركات المبيعات للعيار 18 :- ="عدد حركات المبيعات عيار 18 = "&COUNTIFS(C:C,"مبيعات",F:F,18) عدد حركات المشتريات للعيار 18 :- ="عدد حركات المشتريات عيار 18 = "&COUNTIFS(C:C,"مشتريات",F:F,18) عدد حركات المبيعات للعيار 21 :- ="عدد حركات المبيعات عيار 21 = "&COUNTIFS(C:C,"مبيعات",F:F,21) عدد حركات المشتريات للعيار 21 :- ="عدد حركات المشتريات عيار 21 = "&COUNTIFS(C:C,"مشتريات",F:F,21) عدد حركات المبيعات للعيار 24 :- ="عدد حركات المبيعات عيار 24 = "&COUNTIFS(C:C,"مبيعات",F:F,24) عدد حركات المشتريات للعيار 24 :- ="عدد حركات المشتريات عيار 24 = "&COUNTIFS(C:C,"مشتريات",F:F,24) ولو أردت التوسع بتحديد الجديد والمستعمل كمثال :- ="عدد حركات المبيعات الجديدة عيار 21 = "&COUNTIFS(C:C,"مبيعات",E:E,"جديد",F:F,21) ="عدد حركات المبيعات الجديدة عيار 24 = "&COUNTIFS(C:C,"مبيعات",E:E,"جديد",F:F,24) ="عدد حركات المشتريات الجديدة عيار 21 = "&COUNTIFS(C:C,"مشتريات",E:E,"جديد",F:F,21) ="عدد حركات المشتريات الجديدة عيار 24 = "&COUNTIFS(C:C,"مشتريات",E:E,"جديد",F:F,24) ويمكن استعمال معادلة عامة تقرأ تلقائياً الخلايا بقيمها النصية ، كمثال لصف وصنف واحد :- ="عدد حركات "&E1&" "&E2&" عيار "&F3&" = "&COUNTIFS(C:C,E1,E:E,E2,F:F,E3) فتكون النتيجة للمثال السابق = عدد حركات الحالة جديد عيار 21 = 0 وهذا حالياً ما استطعت تنفيذه من طلبك .. الملف للتوضيح :- Book1.xlsx
    3 points
  6. اتفضل اليك الحل السريع تم ادارك الاخطاء المشار اليها وتم عمل كود للنوع جرب وابلاغنا بالامر واي تعديل Copy of تجميع .xlsm
    2 points
  7. بفضل الله سبحانه وتعالى ، ثم لك على هذه السهرة الجميلة والغنية وسماع صوتك .. قد أكملت سهرتي التي تكللت بالنجاح .. وقد كانت الثمرة في نهاية موسم الحصاد تتلخص بـ :- 1) ميزة الإستكشاف التلقائي لقواعد البيانات الخلفية ( Auto-Detect Back-End ) :- يكتشف مسار الـ Back-End واسم الجدول الأصلي آلياً من خاصية tdf.Connect 2) ميزة التعامل مع القواعد المحمية بكلمة مرور ( Password-Protected Back-Ends ) :- يستخرج كلمة المرور تلقائياً إن كانت محفوظة في نص الاتصال ( PWD=... ) أو يدعم تمرير كلمة المرور يدوياً عبر المعامل: DbPassword:="MyPass" 3) دعم العلاقات والتتالي ( Cascade Aware ) :- دالة بسيطة تكتشف الجداول التابعة المربوطة بتتالي الحذف ، بحيث تفك / تعيد حمايتها مع الجدول الرئيسي بلحظة واحدة . 4) عدم الحاجة لاستدعاء أيقاف الحماية ومن ثم تنفيذ أمر يستدعي استعلامات التحديث أو الحذف ، ومن ثم إعادة تفعيل الحماية . 5) دعم مرن لإضافة السجلات في الجداول من النماذج دون الحاجة الى الإستدعاءات السابقة في النقطة السابقة ( إيقاف / تشغيل الحماية ) . 6) ما زال قيد التطوير والتجارب ، هو إمكانية استثناء حقل أو حقول في جدول واحد من التحديث وأبقاء الحماية على بقية الحقول . 7) أيضاً ما زال قيد التطوير فكرة لتتعامل مع القواعد الخارجية ، بحيث يقوم المستخدم بتنفيذ الحماية أو حذفها لجدول محدد في قاعدة بيانات خارجية .
    2 points
  8. تقصدني أنا صح ؟ 😅 سواء كانت هذه نيتك أم لا فأنا أشكرك لطرح هذا السؤال حتى يخرج لنا الأستاذ @Moosak بهذه التحفة فقد قدم لنا قطعة من الصلصال وما علينا إلا تشكيلها كما نشاء وهذه كانت تجربتي ولكن هذا تطلب مني تعديل دالة CheckProtection لتصبح على النحو التالي Public Function CheckProtection(ByVal tblName As String) As Boolean On Error GoTo ErrHandler Dim tmpPath As String tmpPath = Environ("TEMP") & "\DataMacro_Check_" & tblName & ".xml" ' Export the data macro (acTableDataMacro = 12, hidden member) Application.SaveAsText AC_TABLE_DATA_MACRO, tblName, tmpPath ' Read contents using FSO (Unicode) Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(tmpPath) Then Dim ts As Object Set ts = fso.OpenTextFile(tmpPath, 1, False, -1) ' -1 = Unicode Dim result As String result = ts.ReadAll ts.Close On Error Resume Next Kill tmpPath On Error GoTo 0 CheckProtection = True Else Debug.Print "No file was created." CheckProtection = False End If Set fso = Nothing Exit Function ErrHandler: blnIsBlocked = False Debug.Print "No data macro found on '" & tblName & "': " & Err.Description Debug.Print "ERROR: " & Err.Description CheckProtection = False End Function أصبحت نتيجة هذه الدالة من النوع Boolean بدل String لترجع True إذا كان الجدول محمي أو False إذا كان غير محمي وسؤالي للأخ موسى هل سيسبب هذا التغيير أي مشكلة وأنه من الضروري أن يكون ناتج هذه الدالة ذلك النص الطويل؟ الآن عند النقر على الزر الأول سيتم التحقق من وجود الماكرو فإذا لم يجده سينشئه ثم يفتح النموذج If CheckProtection("Tbl_Cust") = False Then ApplyTableProtection "Tbl_Cust" End If DoCmd.OpenForm "frmCust" يمكن أن يكون هذا الكود خلف حدث الإغلاق للنموذج أو أي مكان آخر والعكس في الزر الثاني إذا كان موجود سيزيله ثم يفتح النموذج If CheckProtection("Tbl_Cust") = True Then RemoveTableProtection "Tbl_Cust" End If DoCmd.OpenForm "frmCust" صراحة تعجبني الحلول المبتكرة القابلة للتشكيل وفقاً لطريقة عمل كل شخص برافو أستاذ موسى
    2 points
  9. تتبع الخطوات التالية وهذا هو محتوى المرفق سنغلق النموذج الشاشة الرئيسية ونفتح نموذج إنشاء الإختصار المسمى frmShortcut يفترض أن تكون النتيجة عندك مطابقة لما جاء في الصور
    2 points
  10. السلام عليكم ورحمه الله وبركاته ممكن من التنسيق الشرطي لو الخليه مثلا فيها معادله اضف لون والتنسق اللي =ISFORMULA(A1) وكذلك لامر لو مفيش معادله والخليه فيها قيمه عدديه برده اضف لون وتنسيق =AND(NOT(ISFORMULA(A1)), A1<>"")
    2 points
  11. مع إحترامي لصاحب الفيديو ولكني أجد أن تخصيص أيقونة أكسس بأيقونة أخرى فهذا لن يحل المشكلة لو أردنا تخصيص الأيقونة لكل تطبيق جرب المرفق ولاحظ النتيجة (بعد إنشاء الإختصار يجب فتح التطبيق بإستخدام الإختصار) كل المطلوب هو إستيراد النموذج frmShortcut إلى اي تطبيق والنقر على الزر (إنشاء الإختصار) ويمكن حذف هذا النموذج بعد ذلك ملاحظة هذا الحل مخصص للعمل في ويندوز 10 فقط تحياتي تجربة.rar
    2 points
  12. التحديث الجديد من أداة صانع القوائم المختصرة ، الإصدار الثالث ، ويشمل :- تمكين المستخدم من تعيين أيقونات الـ FaceID بطريقة عصرية وديناميكية . التمكين من استعادة أيقونة أمر الإفتراضية . التعامل الكامل مع جميع الإصدارات من 2003 - 365 طريقة الإستخدام :- أنشئ قائمتك المختصرة الجديدة . حدد اي خيار من القائمة ، وانقر زر الفيس 🙂 . تنقل بين التبويبات والتصنيفات ، واختر ايقونتك التي تريدها .. احفظ القائمة ، وجربها . الزر الذي يمثل أيقونة آكسيس هو زر استعادة الأيقونة الإفتراضية للزر المحدد من القائمة التي انشأتها . ملف التحديث مفتوح المصدر ، للإصدارات أحدث من 2003 :- Menu Builder V.3.zip الإصدار 2003 قريباً ، حال ضبطه 100%
    2 points
  13. اعرض الملف أداة إنشاء الخيارات المخصصة بإستخدام القوائم المختصرة {سلسلة الأدوات المساعدة المخصصة} اليوم أقدم لكم طريقة أخرى من طرق إنشاء قوائم الخيارات المخصصة ولكن هذه المرة بإستخدام القوائم المختصرة السياقية كل ما يتطلب معرفته للعمل بهذه الأداة ستجدونه موضحا ضمن المرفقات وكما تعودنا فمرفق لكم ملف أكسس بإسم النسخة التوضيحية تحتوي على أمثلة عملية توضح طريقة عمل الأداة وطرق الإستفادة منها بالإضافة إلى نسخة بإسم القالب يحتوي الكائنات المطلوب إستيرادها تم في هذه الأداة الأخذ بالإقتراحات التي قدمها الأخ @Foksh والأخ @Moosak في موضوع الأداة السابقة هنا فأصبح نموذج ببناء صيغة أمر الإستدعاء يقوم بإضافة عبارة Select Case ضمن الصيغة وتم إستخدام دالة بدل الإجراء ليتم إرجاع قيمة الخيار مباشرة لأني رأيت بصراحة أن هذين الإقتراحين هما الأنسب لهذه الأداة أرجو أن تجدوا في هذه الأداة الفائدة العلمية والعملية وفي إنتظار أي ملاحظات تقدمونها تحياتي صاحب الملف منتصر الانسي تمت الاضافه 09/19/26 الاقسام قسم الأكسيس  
    2 points
  14. رغم أني أرى أن طريقة عمل الأداة أبسط من تحتاج إلى فيديو لشرحها ولكن إذا كان ولابد فلايوجد أفضل من الأستاذ @Moosak للقيام بالمهمة فهو الوحيد المتمرس في مثل هذا النوع من الفيديوهات
    2 points
  15. Version 1.3

    127 تنزيل

    أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. كثيراً ما يقضي مطور ومبرمج قواعد بيانات أكسس أياماً وليالي في تصميم وبرمجة نظامه بأعلى درجات الإتقان والإحترافية ، ولكن عند وصول لحظة تسليم البرنامج للعميل تبدأ التحديات الحقيقية 😵 ، والتي ألخصها بما يلي :- كيف أمنع العميل من العبث بالتصميم وكود الـ VBA ؟ كيف أتخلص من رسائل الأمان المزعجة ؟ كيف أقوم بتثبيت الخطوط الخاصة وتجهيز المرفقات وملفات الـ Back-End بسلاسة ؟ كيف أُقدّم البرنامج للعميل في صورة ملف تثبيت احترافي ( Setup.exe ) وبأيقونة مخصصة ؟ من هذا المنطلق ، وخدمة لإخواني المطورين وصانعي تطبيقات الآكسيس ، يسعدني أن أضع بين أيديكم اليوم أداة :- معالج ومنشئ حزم تثبيت أكسيس الذكي - Access Smart Packager & Setup Builder وهي أداة متطورة تم بناؤها من داخل أكسس نفسه باستخدام نسخة محمولة من Inno ، لتتولى أتمتة عملية التحزيم والتوزيع بالكامل بنقرة زر واحدة ودون أي تعقيد . 🛠️ الميزات والوظائف الرئيسية للأداة :- 1️⃣ التحويل التلقائي الذكي إلى ( ACCDE / MDE ) ، وهنا يلعب الدور إصدار آكسيس الذي تم تشغيل الأداة من خلاله . تحويل فوري ومحمي لقاعدة البيانات بنقرة واحدة لحماية أكواد الـ VBA . فحص وتشخيص ذكي للأخطاء . الأداة لا تكتفي بإظهار رسائل خطأ غامضة ؛ بل تفحص تلقائياً ( صيغة الملف ، القفل والتزامن ، المراجع البرمجية المفقودة بالاسم ، وأخطاء التجميع ... إلخ ) لتخبرك بالسبب الدقيق وحله فوراً . 2️⃣ الأمان وحماية البرنامج :- تعطيل المفتاح الخاصة وخصوصاً مفتاح الـ Shift . حيث تقوم بقفل تشغيل البرنامج بزر Shift وأي مفاتيح خاصة ، لمنع الدخول للنوافذ الخلفية أو نافذة التنقل أو محرر الأكواد . إضافة المواقع الموثوقة ( Trusted Locations ) ؛ فتقوم بتسجيل مسار البرنامج تلقائياً في سجل الويندوز (داخل الـ Registry ) لتعمل الماكرو وأكواد VBA بدون أي تحذيرات أمان. حماية التثبيت بكلمة مرور . وهذه تتيح إمكانية تشفير ملف التثبيت وحمايته بكلمة سر تمنع غير المصرح لهم من تنصيبه . 3️⃣ المعمارية المزدوجة وفصل البيانات ( Front-End و Back-End ) :- دعم كامل للأنظمة المقسمة ؛ بحيث يمكنك تحديد مسار تثبيت مختلف ومستقل لملف البيانات (Back-End) عن ملف الواجهة . دعم تضمين مجلدات وملفات إضافية غير محدودة (مستندات ، صور ، أدلة تشغيل ... إلخ ) . 4️⃣ دعم الأجهزة غير المزودة بأوفيس ( Access Runtime ) :- إمكانية تضمين حزمة التثبيت الخاصة بـ Microsoft Access Runtime ليعمل برنامجك على أي جهاز عميل لا يملك نسخة أوفيس مثبته داخل الويندوز . 5️⃣ التثبيت التلقائي للخطوط واتفاقية الاستخدام :- خيار لتثبيت خطوط البرنامج الخاصة في نظام ويندوز العميل تلقائياً . إظهار شاشة اتفاقية الترخيص ( License Agreement ) قبل بدء التثبيت . 6️⃣ واجهة تثبيت تفاعلية ومخصصة :- تمكنك الأداة من إنشاء إختصارات سطح المكتب وقائمة ابدأ بأيقونة التطبيق المخصصة . دعم واجهات التثبيت باللغة ( العربية / الإنجليزية / أو كلاهما ) ليختار العميل لغته المفضلة لواجهة التثبيت . 7️⃣ نافذة تيرمنال عصرية وملونة ( Live Log Terminal ) :- شاشة سجل تفاعلية حديثة ، تعرض خطوات البناء لحظة بلحظة بنظام ألوان متناسق وواضح ومخصص لسهولة المتابعة . 📥 كيفية الاستخدام :- اختر مشروعك أو أنشئ مشروعاً جديداً . حدد ملف قاعدة البيانات الرئيسي ( وملف قاعدة البيانات الخلفية - الجداول - إن وجد ) والأيقونة . قم بتفعيل الخيارات التي تناسبك من لوحة التحكم ، مثل ( Shift , Trusted Location , Fonts , Runtime ... إلخ ) . اضغط على زر إنشاء حزمة التثبيت ، وسيتكفل البرنامج بالباقي لتجد ملف الـ EXE جاهزاً للتسليم 😁 . 📸 صورة لواجهة الأداة وتبويباتها :- فيديو توضيحي لطريقة الاستخدام بشكل سريع .. أتمنى أن تكون هذه الأداة عوناً وإضافة نافعة لجميع المطورين والمبرمجين في مشاريعهم القادمة ونسألكم خالص الدعاء بظهر الغيب ..
    2 points
  16. من جمال الفكرة قمت بتنفيذها مباشرة الآن أصبح بالإمكان تصدير الكائنات المطلوبة فقط لعمل الأداة مع التحقق لعدم تصديرها أكثر من مرة
    2 points
  17. كلامك صحيح وفي محله ولكني أريد توضيح نقطة هنا من باب العلم بالشئ لا أكثر هذا ليس شرط في كل الحالات ولكنه سيكون كإجراء وقائي حتى نتأكد من أن لا يتم تنفيذ إجراء بغير قصد فمثلاً في المثال الأول في النسخة التوضيحية نلاحظ عدم حصول أي شيئ عند عدم تحديد أي عنصر في القائمة ولو عدنا للكود خلف زر الأمر سنجد عدم وجود عبارة Case Else Dim intResult As Integer intResult = GetOptions("نموذج إدخال البيانات" & _ ";نموذج تعديل البيانات" & _ ";نموذج إستعراض البيانات" & _ ";نموذج تحديد معايير تصفية التقارير") Select Case intResult Case Is = 1 DoCmd.OpenForm "frm01" Case Is = 2 DoCmd.OpenForm "frm02" Case Is = 3 DoCmd.OpenForm "frm03" Case Is = 4 DoCmd.OpenForm "frm04" End Select ولكن في المثال الثاني سنجد أنه سيتم تنفيذ إجراء لم يكن في الحسبان في هذه الحالة سيتطلب منا إضافة عبارة Case Else وعلى رأي المثل الوقاية خير من العلاج إن شاء الله سأقوم يإضافة هذا الأمر ضمن بناء صيغة الأمر بالإضافة إلى معالجة الملاحظة المقدمة من الأخ @Moosak وذلك في النسخة الجديدة التي أقوم فيها بإضافة الهدية القيمة المقدمة منك
    2 points
  18. كتبت لك الحل في المشاركة السابقة واكرر لم توضح الرقم الاصل او الاساسي هل هو في الخلية O10 او K9 لان الحل يختلف والنتيجة تختلف بفرضية ان الرقم الاصل الاولي هو في K9 اليك الملف AS.xlsx
    2 points
  19. وعليكم السلام ورحمة الله وبركاته اولا لم توضح الرقم الاساسي هل هو في الخلية O10 او K9 اذا كان القيمة في الخلية O10 هي الاساس غيّر معادلة الخلية H10 لتكون: =K10 اما إذا كان الأساس هو نسبة الـ 9% من المجموع الكلي (95975.95) غيّر قيمة الخلية O10 لتكون معادلة بدلاً من رقم ثابت =O9*9% والسبب ان نسبة 9% للرقم 95975.95 ليست 8637.8400 وانما 8637.8355 والفرق بينهما 0.0045 ضرب 12=0.05 (5 سنتيم)
    2 points
  20. أخواني وأساتذتي ومعلمينا ( دون استثناء ) كثير من المطورين ومصممي قواعد البيانات والمشاريع الخاصة بهم ، عندما يقوم بحفظ مشروعه بصيغة Accde ؛ بتفاجئ بأن جهاز العميل لم يقم بتشغيل قاعدة البيانات رغم خلوها من جميع الأخطاء البرمجية ، أو عدم التوافقية في الأكواد بين الناتين 32 و 64 . ولذا يلجأ لحفظ قاعدة البيانات بإصدار مطابق لإصدار أوفيس العميل المثبت في جهازه . أو إجبار العميل على تثبيت إصدارات حديثة أو بنواة معينة ... إلخ . اليوم كانت لي تجربة لتقوم بمهمة تشغيل قاعدة بياناتك على أي إصدار وعلى أي نواة وعلى أي ويندوز دون الحاجة لأي تدخل من مطور البرنامج . تجربتي اليوم ستقوم على مشروع مفتوح المصدر تم طرحه بعنوان الأداة :- معالج ومنشئ حزم تثبيت أكسيس الذكي - Access Smart Packager & Setup Builder كتجربة ليس إلا في هذا الموضوع هنا . على العموم وللتوضيح سأقوم بإرفاق ملف قاعدة البيانات ، والتجربة ممن يرغب بمشاركتنا رأيه ما يلي :- ذكر إصدار ونواة آكسيس الذي قام بالتجربة عليه . ذكر اصدار الويندوز ونواتها أيضاً . ممن يملك إصدارين من آكسيس على جهازه ( مثل أخوكم 😅 ، لدي الإصدارين 2019 - 64 ، والإصدار 2010 - 32 ) ، تجربة الفكرة على الاصدارين ومشاركتنا رأيه بنجاح أو فشل التجربة وهي عنوان الموضوع . وهذه صورة من جهازي الشخصي الذي أملك إصدارين مثبتين عليه . المشاركة مفتوحة لمن يرغب وغير مقتصرة على أحد 😇 . وبناء على النتائج والتفاعل ، سأقوم بفتح موضوع مخصص وطرح الأداة والشرح عنها بكامل تفاصيلها وآلية العمل عليها . وتشجيعاً لمن رغب بالتجربة .. جرب في مربع نص المسار اكتب إشارة # يليها مباشرة officena.net ، وهنا السر العجيب . لاحظ الصورة للتوضيح :- ♻ حيث سيتم استخراج قاعدة البيانات مفتوحة المصدر Accdb وليس Accde ♻ يعني يا صديقي يا مطور البرنامج ، لو في يوم من الأيام ولو بعد 10 سنين ؛ جاء العميل راكضاً ويريد منك إضافات وتعديلات جديدة . وتفاجأت بأن النسخة الأصلية ضاعت منك أو لم تعد موجودة في جهازك ولأي سبب من الأسباب .. فقط اكتب كلمة المرور التي حددتها في الأداة التي سيتم طرحها منفردة في موضعها الخاص , وستحصل على قاعدة بياناتك الأصلية مفتوحة المصدر 😁 . حجم الملف المرفق أكبر من الحد المسموح به ، لذا سأرفعه برابط مباشر على جوجل درايف من هنا . طبعاً حجم قاعدة البيانات هو 10 ميجا ..
    2 points
  21. أعتذر بشدة فعلاً هذا الخطأ كان في القالب والحقيقة لاأعرف كيف حصل ففي الغالب أقوم بتجهيز القالب بناءً على أخر نسخة من النسخة التوضيحية قبل رفعها للمنتدى الغريب أنه لم يذكر أحد هذه المشكلة قبل الأخ @أحمد العيسى تم تصحيح الخطأ وإعادة رفع الأداة
    2 points
  22. بسيطة أخي الكريم .. إذا أردت الإعتماد على المعادلة السابقة في الخلية لكل اسم ، فيمكن استخدام المعادلة التالية في الخلية N9 كمثال ، ونفس الأمر تقوم بسحبها لأسفل :- =TRIM(MID(TRIM(Q9), LEN(O9) + 1, LEN(Q9))) أما إذا كنت تريد معادلة مستقلة ولا تعتمد على المعادلة الأولى لاستخلاص اللقب ( كعدم وجودها أساساً ) ، استخدم المعادلة التالية كمثال :- =TRIM(MID(TRIM(Q9), FIND("^", SUBSTITUTE(TRIM(Q9)&" ", " ", "^", IF(OR(LEFT(TRIM(Q9), 3)="بن ", LEFT(TRIM(Q9), 4)="أبو ", LEFT(TRIM(Q9), 4)="ابو "), 2, 1))) + 1, LEN(Q9))) ملفك بالمحاولتين :- فصل.xlsx
    2 points
  23. مشاركة بسيطة .. أخي الفاضل @egymina2012 ، تعدد الطلبات وكثرة التعديلات تربك وتشوش من يتقدم بتقديم حلول . لذا أرجو منك التوضيح بشكل أكثر وضوحاً للمطلوب ، ويا حبذا لو كان على شكل نقاط . بخصوص طلب تصحيح اسم الفرقة وإضافة ( انتساب و انتظام ) . في الجزء التالي في الكود داخل ملفك الأخير ، وتحديداً في السطر ' تحديث عنوان الفرقة في شيت الطباعة wsPrint.Range("C2").Value = "اسماء الطلاب - " & gradeTitle لاحظ هنا أنه يقوم بإضافة رقم الفرقة نصاً في الخلية C2 .. فإذا كنت تريدها في C3 أيضاً ، فقط أضف السطر التالي مباشرة أسفل الجزء الذي أشرت لك إليه :- wsPrint.Range("C3").Value = "اسماء الطلاب - " & gradeTitle & " ( انتظام - وانتساب )" اما باقي طلباتك فأرجو منك إيضاحها لو تكرمت ..
    1 point
  24. تحياتي وسلامي لك أخي منتصر 🙂 الحقيقة أن هذه الفكرة سبق أن عرضها معلمنا الكبير @jjafferr في هذه المواضيع 👈 سِحر جداول الاكسس في تسجيل الوقائع و سِحر جداول الاكسس في تسجيل الوقائع عن طريق Tables Data Macro لذلك أحس أني عندي فكرة بسيطة عن هذه الميزة .. طبعا الموديول كاملا تم تصميمه عن طريق أداة موجهة بالذكاء الاصطناعي ولعلي أطرحها قريبا إن شاء الله .. والإجابة المباشرة على سؤالك هي : لا لن يؤثر التغيير الذي عملته على عمل الدوال الأخرى في الموديول .. ومن الخير ما فعلت .. حيث كانت دواعي إنشاء تلك الوظيفة (الدالة) هي ضبط الأكواد الرئيسية (تطبيق وفك الحماية عن الجداول) والتأكد من سلامتها .. ولكن أنت فعلت فائدتها للتأكد من وجود الحماية قبل تطبيقها وهذه فطنة منك 👍🙂 جواب هذا السؤال ستحصل عليه بعدما تتعمق في حوار الماكرو هذا .. وضني بك من خلال سهرة البارحة أنك قد عرفت الجواب فعلا 😅🖐️ ننتظر مفاجآتك
    1 point
  25. وحتى لا يتبادر إلى ذهن أي شخص فكرة أنني أملك الحل .. فقد يظن البعض أني أُمهد لموضوع جديد أو فكرة جديدة .😣. فوالله أني لم أتعثر حتى بطرف الخيط ، ولم أستدل إلى فكرة حتى لو لم تكن ناجحة 😇
    1 point
  26. لو عندي شيت به عمود به بعد الخلايا بمعادلات واخري قيم محتاج اميز الخلايا الي فيها المعادلات واميز الخلايا التي تحتوي على قيم
    1 point
  27. شكراً لك هذا الإطراء أخي منتصر ، والحقيقة انك كنت الحافز بمتابعة الموضوع واستكمال هذه الإضافة البسيطة . ولكم النصيب الأكبر مما دعيتم أبا المعتصم .. فعلاً هناك الكثير من الأيقونات ، وقد قدرت تقريباً بـ 3500 ايقونة ، ولكن برأيك هل تصفح 3500 أو حتى 1000 أيقونة سيكون ممتعاً 😅 نعم صحيح ، حتى تتم المعاينة فيجب أن تكون القائمة قد تم إنشاؤها وإضافة محتوياتها .. كحال أن تقوم بتكبير حجم الخط ونوعه قبل أن تكتب فلن يظهر التنسيق والتأثير إلا بوجود نص ، وهنا الشيء ذاته 😊 .
    1 point
  28. سبق وقلت لك انت اذا نويت راح تخرج بأفكار يستعصي على أمثالنا أن نفكر بها 😂
    1 point
  29. فقط لدي ملحوظة بسيطة بعد التطبيق العملي .. 🙂 عند حفظ الأداة كإضافة للبرنامج .. وعند تطبيق الأكواد على قاعدة جديدة فإنها لا تعمل بسبب أنها لا تحتوي على الموديولين التابعين لها وهذا سيحوجك إلى استيرادهما من ملف القالب () ويعيدنا إلى نقطة الإنطلاق من البداية 😅 (بمعنى أنني لازلت محتاج يكون هذا الملف موجود جنبي) ! السؤال هو : هل يمكن إدراج الموديولين تلقائيا في القاعدة التي يتم استخدام الأداة فيها ؟
    1 point
  30. يا سيدي الفاضل الملف فارغ ليس به المعادلات المذكورة في أول رد لي مع ملاحظة أنه يمكنك استبدال الفاصلة ( , ) بالفاصلة المنقوطة ( ; ) حسب إعدادات جهازك
    1 point
  31. لا مجال للإعتذار .. بصماتك ومساعداتك للجميع واضحة للكل ثم أنك قد ذكرت التصحيح فى ردك
    1 point
  32. اسمحوا لي بهذه المداخلة كما ذكر الأساتذة فسبب المشكلة أنك تعتمد الترقيم التلقائي وعند حذف سجل وإدخال سجل جديد بعد الحذف سينتقل للرقم الذي يلي السجل المحذوف هناك حل لهذه النقطة ولكنه حل غير عملي تماماً فهو يحتاج إلى تحقق شرطين الأول أن تكون السجلات المحذوفة في نهاية الجدول والشرط الثاني القيام بإجراء ضغط وإصلاح لقاعدة البيانات وهذين الشرطين من الصعب إن لم يكن مستحيلاً تحقيقهما في الواقع الحل الأنسب هو أن يتم ترقيم السجلات عن طريق البرنامج وقد ذكر الأخ @Foksh إحدى تلك الطرق وهي بإستخدام دالة DMAX رغم أنها ستحل نص المشكلة فهي ستحل مشكلة حذف أخر سجل ولكن لن تحل المشكلة إذا تم حذف سجل من المنتصف هناك طرق مخصصة تحل المشكلة وإحدى تلك الطرق كنت قد قدمتها ضمن سلسلة الأدوات المساعدة المخصصة وهي أداة الترقيم التلقائي المخصص - مع مراعاة الأرقام المفقودة أرجو أن تجد فيها حل للمشكلة
    1 point
  33. كالعادة حبيبنا ،، أنت نزل البتاع وإحنا نجرب 😁.. والأخطاء أو النواقص بتطلع من نفسها 😇🖐️ وبهذي الطريقة بتكتمل التكة الباقية إن شاء الله .. صعب ندخل معاك عالخط من النهاية بعد ما قطعت شوط طويل من البحث والتجربة 🙃 (اطمن) إحنا بندعيلك بالتوفيق والتيسير 😅🤲
    1 point
  34. وعليكم السلام ورحمة الله وبركاته .. مشكلتك أخي الكريم في السطر :- rsFiltered.Close والذي يعنيه ان المتغير لم يتم تنفيذ الجملة :- Set rsFiltered = rs.OpenRecordset عليه في بعض الحالات ؛ وبالتالي بقيت قيمته = لا شيء = Nothing . ففي كودك وتحديداً ، إذا كان rs فارغاً ، فإنه لن يدخل في هذا الشرط :- If Not rs.BOF And Not rs.EOF Then وعليه ، فأني اقترح عليك استبدال هذا الجزء :- rsFiltered.Close rs.Close 'Sets objects to nothing Set rsFiltered = Nothing Set rs = Nothing Set db = Nothing الموجود في الدالة Private Sub LoadArray ، بهذا الجزء البسيط :- If Not rsFiltered Is Nothing Then rsFiltered.Close Set rsFiltered = Nothing End If If Not rs Is Nothing Then rs.Close Set rs = Nothing End If Set db = Nothing ولكن الأفضل تعديل الحلقة أيضاً ، لأنك تقوم بإنشاء rsFiltered عدة مرات داخل الحلقة :- Set rsFiltered = rs.OpenRecordset وأعتقد أيضاً أن الأفضل إغلاقه بعد الانتهاء منه مباشرة ، وليس انتظار نهاية الإجراء . وبالتالي تعديلي على الدالة كاملة سيكون بهذا الشكل :- Private Sub LoadArray() '-------------------------------------------------------- '----------------- '--------------- '---------------- '---------------- '--------------- '--------------- '-------------------------------------------------------- '---------- 'This procedure loads text into the 3rd column of the array '-------------------------------------------------------- '-------------------------------------------------------- Dim db As DAO.Database Dim rs As DAO.Recordset Dim rsFiltered As DAO.Recordset Dim strSQL As String Dim i As Integer strSQL = "SELECT tblData.ID, tblData.[No], tblData.Name, tblData.Stae, tblData.Day, tblData.Date, tblData.Phone, tblData.Village, tblData.Waitingplace, tblData.Subject,tblData.Presence,tblData.Notes " _ & "FROM tblData; " 'Debug.Print strSQL Set db = CurrentDb Set rs = db.OpenRecordset(strSQL) 'This line ensures that the recordset is populated If Not rs.BOF And Not rs.EOF Then 'Loops through the array using dates for the filter For i = LBound(myArray) To UBound(myArray) 'Checks whether the 2nd element of the array = True If myArray(i, 1) Then 'Filter recordset with array dates rs.Filter = "[Date] = " & myArray(i, 0) 'Open up new recordset based on filter Set rsFiltered = rs.OpenRecordset 'Loop through new recordset Do While (Not rsFiltered.EOF) 'Adds text to the 3rd column of the array myArray(i, 2) = myArray(i, 2) & vbNewLine _ & rsFiltered!No & " / " _ & rsFiltered!Village & " / " _ & rsFiltered!Notes rsFiltered.MoveNext Loop rsFiltered.Close Set rsFiltered = Nothing End If 'Debug.Print myArray(i, 2) Next i End If If Not rs Is Nothing Then rs.Close Set rs = Nothing End If 'Sets objects to nothing Set db = Nothing End Sub وأيضاً كملاحظة مهمة . يوجد احتمال آخر يتعلق بالحقل [Date] وهو للعلم حقل مخالف لقواعد آكسيس حيث ان الإسم محجوز لآكسيس ، وبالتالي قد يسبب لك هذا مستقبلاً مشاكل كبيرة إذا كان يحتوي على وقت بالإضافة إلى التاريخ ؛ عندها المقارنة = قد لا تجد السجلات المتوقعة . ومثله اعتقد في الحقل Day .. حيث ان هذه الأسماء محجوزة لأوامر آكسيس . جرب هذه التعديلات بيدك ، وأخبرني بالنتيجة .
    1 point
  35. الاخ Foksh شكرا لك واليك الملف شرح لفورم المحاماه.rar
    1 point
  36. وعليكم السلام ورحمة الله وبركاته ,, أخي أبا المعتصم ، شكراً لك على مرورك العطر .. وأهلاً بتلك الملاحظات ، التي سألخص لك ردي على مجملها :- هنا فعلياً لاحظت أن الخيار يأتي مضمناً فعلاً بمعالج التثبيت ، ويبدو أن السبب في تمرير الأوامر دون تعديل القيمة الافتراضية . إلا أنه فعلياً لا يضيف التطبيق في قائمة ابدأ .. وتمت ملاحقة المجرم في هذا الإنذار الكاذب وهو سطر بسيط إن شاء الله . يبدو من الصورة انك اخترت التجربة هنا على ملف قاعدة بياناتي نفسها 😁 ، ولكن حتى مع تجربتي عليها على إصدار آكسيس 2010 - 32 ، لم تظهر لدي هذه الرسالة ولا بأي مرحلة من مراحل التجارب .. ولكن على العموم سأقوم بالتحقق منها . خيار تضمين مشغل أكسس رن تايم مع الحزمة ، هذا الخيار مخصص فقط في حال كنت تريد دمج حزمة تثبيت أوفيس رن تايم دون اتصال ( Offline Installer مثل AccessRuntime_x86.exe بحجم تقريب من 50 إلى 200 ميجابايت ) ليقوم ملف التنصيب بتثبيتها تلقائياً على الأجهزة التي لا تحتوي على أوفيس . وإذا لم تكن تملك هذا الملف ، يقوم بإلغاء تحديده ببساطة ، وقد أحاول أيضاً إضافة خيار مستقل بتحميل المشغل من خلال روابط موثوقة من مايكروسوفت - في إصدار وتعديل آخر - إن شا ءالله . أيضاً خيار تشغيل التطبيق في وضع الرن تايم (/runtime) ، هذا الخيار مستقل تماماً ولا يتطلب تحميل أي ملف ! فعند تفعيله ، يتم تمرير المعامل /runtime لأكسس العميل المثبت أصلاً في جهازه ، مما يجبر أكسس الكامل على العمل ببيئة الرن تايم المقيدة ( إخفاء أشرطة الأدوات ، منع فتح التصميم ، وعرض النماذج فقط ) . وسأوضح أين نجد نتيجة هذه الميزة عند تفعيلها .. في اختصار سطح المكتب الذي يتم انشاؤه بعد التثبيت ، ادخل على خصائص هذا الاختصار ، وانظر لمسار الملف 😁 ونهايته .. ستلاحظ انه ينتهي كمثال بـ :- .accde" /runtime أو حسب نوع المعامل الذي تم تمريره .. وقد قمت بضبط تعطيل المفاتيح الخاصة كاملة في الإصدار المحدّث إن شاء الله ، فقد كنت في تجاربي قد أوقفت بعض الوظائف ، وتاهت بي التجارب بعدم إعادة تفعيلها . فيما يخص هذه الإضافة ، والتي فعلاً قد سبق لي التفكير بها + مجموعة من الأفكار الكثيرة التي قمت بالتوقف عندها وعدم إضافتها 😅 .. فبإذن الله تعالى سيكون لها تطبيق وتنفيذ مناسب ومحكم ..
    1 point
  37. وعليكم السلام ورحمة الله وبركاته تم العاء AC3 وربط المعادلة بالخلية AC1 للقائمتين مع اضافة كود تلقائي لمسح احد القائمتين عند اختيار الاخرى __المقياس المتدرج 3456 الصفوف العليا2026 - نسخة.xlsb
    1 point
  38. السلام عليكم 🙂 مايكروسوفت عملت اضافة لجداول الاكسس 2010 (وتم ابقاء هذه الميزة للنسخ التالية) ، عملت الاحداث التالية لكل حقل (حقول النص والتاريخ والرقم (ويشمل الرقم التلقائي و العملة) فقط) وهذه الاحداث (هناك تسمى Trigger) كانت ميزة في جداول SQL Server : للسجلات : حدث بعد ادخال السجل ، حدث بعد حذف السجل ، حدث قبل حذف السجل ، للحقول : حدث بعد تحديث الحقل ، حدث قبل تحديث الحقل ويمكن عمل هذه الاحداث والجدول في وضع التصميم: . او الجدول في وضع . لغة كتابة الاحداث ليست VBA وانما الماكرو المضمن ، والذي يمكنه ان ينادي دالة في وحدة نمطية هكذا (هنا ننادي الدالة fMsgbox) : . هناك طريقتين لكتابة الماكرو المضمن ، ونتيجة الكتابة النهائية هي كما نراها في الصورة التالية : - الطريقة اليدوية (وعيبها انها بطيئة ، وخصوصا اذا عندك حقول كثيرة في الجدول ، وعندك جداول كثيرة ، وعندك برامج كثيرة) 1. اذا لم يستطع الماكرو المضمن تنفيذ احد الاوامر ، فإنه يعمل جدول للاخطاء التي صادفها ، اسمه USysApplicationLog ، وتراه هنا: . او ولأنه جدول نظام ، فيكون مخفي ، الى ان تطلب من الاكسس ان يُظهر جميع جداول النظام ، فترى الجدول . لذا ومن واقع تجربة ، انصح بكتابة هذا السطر الاول (لتلافي اي اخطاء ، مما يؤدي لتوقف عمل الماكرو) ، 2. نكتب السطر كما هو ، بعد تغيير اسم الحقل الفريد/المميز في بياناته والمفرس بلا تكرار (انصح بأن يكون عندك حقل فريد ومميز في بياناته ، وانا دائما استعمل في برامجي حقل الترقيم التلقائي ، والذي نستفيد منه هنا استفادة قصوى ، فهو الدليل على محتويات السجل) ، 3. نظيف سجل جديد في الجدول الأخر ، 4. نبدأ بتعبئة الحقول بالامر SetField ، ثم اسم الحقل ، ثم قيمة الحقل ، ونستمر لعدد الحقول التي نريد اضافة بياناتها للجدول الآخر ، . - طريقة برمجية عن طريق عمل ملف XML نضع فيه الاوامر اعلاه ، ثم نستورده لقاعدة البيانات ، والملف عبارة عن ملف نصي ولكن بصيغة XML ، يجمع فيه جميع الاحداث (مرفق نسخة من الملف لقاعدة البيانات التي تم ارفاقها في مشاركتي الاولى) واليكم الجزء للحدث الذي في الصورة الاعلى . وثم نستخدم الكود التالي لإستيراد هذا الملف: من نفس برنامج الاكسس application.LoadFromText acTableDataMacro, "Table_Name", "D:\xml_File.xml" من برنامج اكسس خارجي 'Insert/Load this DataMacro in the Table Events Dim accApp As Object Set accApp = CreateObject("Access.Application") accApp.OpenCurrentDatabase Me.str_DB_Name 'D:\temp\myDB.accdb accApp.LoadFromText acTableDataMacro, Me.lst_Tables, xml_File accApp.CloseCurrentDatabase accApp.Quit Set accApp = Nothing . والطريقة التي عرفت بها الكود اعلاه ، هي: اعمل كود في احد هذه الاحداث او في جميعها ، وليكن بضعة اسطر حتى لا نضيع في الاكواد ، واحفظ الجدول ، ثم استخدم هذا الكود لتصدير DataMacro الذي عملناه لهذا الجدول ، هكذا : application.SaveAsText acTableDataMacro, "Table_Name", "D:\xml_File.xml" . نصائح: اختار الحقول المهمة ، ولا تستعمل جميع الحقول ، الجدول tbl_x_AuditTrail سيزداد حجمه بسرعة ، ولكن كثرة الجداول وكثرة عدد المستخدمين لا يُبطئ العمل ، في الجدول tbl_x_AuditTrail هناك حقل ChangeBy وهو اسم المستخدم عند دخوله الكمبيوتر ، وحقل ChangedOn وهو اسم الكمبيوتر الذي تم التعديل منه ، هاتان الدالتان تكونان في برنامج الواجهة ، طبعا يمكن استبدالها باسم المستخد حسب الصلاحيات ، وIP الكمبيوتر اذا كان لإسم الكمبيوتر اهمية ، الجدول tbl_x_AuditTrail لا تسمح لأحد ان يراه ، لأنه يمكن حذف وتغيير بياناه ، فيصبح عديم الفائدة ، وبما ان برنامجنا كان ذو بيانات حساسة ، فكنا نراقب من يتصفح البيانات كذلك ، بمناداة دالة عند حدث "الحالي" للنموذج ، ونستعمل "Browse" في حقل عن Change_Delete_Insert . ------------------------------------------ 2024-10-30 قاعدة بيانات وبها نموذج لعمل الجميع اعلاه برمجيا جعفر tbl_info_DataMacro.xml.zip
    1 point
  39. أخى الكريم هذه الداة تصلح فقط للملف نفسه وليس لفك كلمة سر أكواد vba
    1 point
  40. تفضل أخى هذا الملف بالمعادلات خارج العمود المطلوب فلترة على كل الأرقام التى تبدأ فى الأحاد من 1 :6 وأيضا صورة توضيحية للطريقة التى تريدها فلتر مخصص.xlsx
    1 point
  41. جرب هذا فقد تم وضع كود وحماية للورقة : 123 عندما تريد ادخال صف جديد تقوم بالضغط مرتين على أخر صف أدخلته -وسوف يتم اضافة الصف الجديد ولكم جزيل الشكر تسطير جدول أتوماتيكيا.xlsm
    1 point
  42. كو حقا رائع أستاذ سليم-ونفذ المطلوب بدقة متناهية جعله الله فى ميزان حسناتك وبارك الله فيك وجزاك خيرا كثيرا
    1 point
  43. تسلم ايديك استاذ أحمد كود حقا رائع ونفذ المطلوب بكل دقة بارك الله فيك وجعله فى ميزان حسناتك
    1 point
  44. أخى العزيز من فضلك لا تقوم بعرض نفس السؤال فى مشاركتين مختلفتين فهذا قد يجعل الإخوة يمتنعون عن مساعدتك
    1 point
  45. تفضل أخى لك ما تريد وهذا فيديو أيضا للشرح اضافة أسطر في جدول.xlsx
    1 point
×
×
  • اضف...

Important Information