بحث مخصص من جوجل فى أوفيسنا
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation since 09/01/26 in all areas
-
اعرض الملف ⭐ هدية ~ الحل المتكامل لتحزيم وتوزيع تطبيقات أكسس كملف تنفيذي احترافي 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 الاقسام قسم الأكسيس5 points
-
اعرض الملف أداة البحث السريع {سلسلة الأدوات المساعدة المخصصة} أي شخص يتعامل مع برامج وتطبيقات قواعد البيانات لايمكن أن يستغني عن إستخدام أي وسيلة من وسائل البحث عن البيانات فمثلاً عندما تريد تصفية نموذج بيانات الموظفين لإستعراض بيانات موظف واحد فقط , أو كمثال آخر إذا كنت تعمل على شاشة المبيعات وتريد إدخال رقم الصنف فتقوم بفتح قائمة الأصناف والبحث عن الصنف المطلوب لإرجاع كود الصنف والإحتفاظ به في جدول المبيعات , والكثير من الأمثلة الأخرى المشكلة هنا هو أنك ستكون مضطر لإنشاء نموذج بحث لكل مكان ستحتاج فيه إلى البحث عن البيانات أو على الأقل نموذج واحد لكل نوع من أنواع البيانات ولحل هذه المشكلة أقدم لكم اليوم أداة جميلة وبسيطة تمنحكم إمكانية الحصول على أي عدد قد تحتاجونه من قوائم البحث وبإستخدام نموذج واحد فقط (بالأصخ نموذج رئيسي وآخر فرعي) وقد أسميت الأداة بإسم أداة البحث السريع لأنها بالفعل تقدم أسرع تجربة بحث قد تجدها سواء كنت تستخدم الماوس أو لوحة المفاتيح وكما هو موضح بالصورة المتحركة فلو رأينا سرعة الوصول لنتيجة البحث بإستخدام الماوس وقارناها مع مربع التحرير والسرد أو مربع القائمة سيكون الفارق كبير وكما تعودنا سأرفق لكم ملفي القالب والنسخة التوضيحية والتي ستجدون بداخلها أمثلة عملية لإستخدام الأداة مع ملاحظات وتعليمات أرجو قرائتها بعناية أرجو أن تجدوا في هذه الأداة الفائدة والعون في تسهيل أعمالكم تحياتي صاحب الملف منتصر الانسي تمت الاضافه 09/08/26 الاقسام قسم الأكسيس4 points
-
المعادلة لا تغمل على اصدار 2010 تعمل على اصدار 2013 وما فوق يمكن استخدام كود لتلوين الخلايا التي بها معادلات الخطوات حدد العمود او الاعمدة - ثم اصغط على الزر تلوين خلايا المعادلات.xlsb3 points
-
Version 1.3
123 تنزيل
أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. كثيراً ما يقضي مطور ومبرمج قواعد بيانات أكسس أياماً وليالي في تصميم وبرمجة نظامه بأعلى درجات الإتقان والإحترافية ، ولكن عند وصول لحظة تسليم البرنامج للعميل تبدأ التحديات الحقيقية 😵 ، والتي ألخصها بما يلي :- كيف أمنع العميل من العبث بالتصميم وكود الـ 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 جاهزاً للتسليم 😁 . 📸 صورة لواجهة الأداة وتبويباتها :- فيديو توضيحي لطريقة الاستخدام بشكل سريع .. أتمنى أن تكون هذه الأداة عوناً وإضافة نافعة لجميع المطورين والمبرمجين في مشاريعهم القادمة ونسألكم خالص الدعاء بظهر الغيب ..3 points -
معادلة جلب العنوان: =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
-
وعليكم السلام ورحمة الله وبركاته .. إليك معادلات شاملة للعيارات من 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.xlsx3 points
-
بفضل الله سبحانه وتعالى ، ثم لك على هذه السهرة الجميلة والغنية وسماع صوتك .. قد أكملت سهرتي التي تكللت بالنجاح .. وقد كانت الثمرة في نهاية موسم الحصاد تتلخص بـ :- 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
-
تقصدني أنا صح ؟ 😅 سواء كانت هذه نيتك أم لا فأنا أشكرك لطرح هذا السؤال حتى يخرج لنا الأستاذ @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
-
2 points
-
السلام عليكم ورحمه الله وبركاته ممكن من التنسيق الشرطي لو الخليه مثلا فيها معادله اضف لون والتنسق اللي =ISFORMULA(A1) وكذلك لامر لو مفيش معادله والخليه فيها قيمه عدديه برده اضف لون وتنسيق =AND(NOT(ISFORMULA(A1)), A1<>"")2 points
-
مع إحترامي لصاحب الفيديو ولكني أجد أن تخصيص أيقونة أكسس بأيقونة أخرى فهذا لن يحل المشكلة لو أردنا تخصيص الأيقونة لكل تطبيق جرب المرفق ولاحظ النتيجة (بعد إنشاء الإختصار يجب فتح التطبيق بإستخدام الإختصار) كل المطلوب هو إستيراد النموذج frmShortcut إلى اي تطبيق والنقر على الزر (إنشاء الإختصار) ويمكن حذف هذا النموذج بعد ذلك ملاحظة هذا الحل مخصص للعمل في ويندوز 10 فقط تحياتي تجربة.rar2 points
-
التحديث الجديد من أداة صانع القوائم المختصرة ، الإصدار الثالث ، ويشمل :- تمكين المستخدم من تعيين أيقونات الـ FaceID بطريقة عصرية وديناميكية . التمكين من استعادة أيقونة أمر الإفتراضية . التعامل الكامل مع جميع الإصدارات من 2003 - 365 طريقة الإستخدام :- أنشئ قائمتك المختصرة الجديدة . حدد اي خيار من القائمة ، وانقر زر الفيس 🙂 . تنقل بين التبويبات والتصنيفات ، واختر ايقونتك التي تريدها .. احفظ القائمة ، وجربها . الزر الذي يمثل أيقونة آكسيس هو زر استعادة الأيقونة الإفتراضية للزر المحدد من القائمة التي انشأتها . ملف التحديث مفتوح المصدر ، للإصدارات أحدث من 2003 :- Menu Builder V.3.zip الإصدار 2003 قريباً ، حال ضبطه 100%2 points
-
اعرض الملف أداة إنشاء الخيارات المخصصة بإستخدام القوائم المختصرة {سلسلة الأدوات المساعدة المخصصة} اليوم أقدم لكم طريقة أخرى من طرق إنشاء قوائم الخيارات المخصصة ولكن هذه المرة بإستخدام القوائم المختصرة السياقية كل ما يتطلب معرفته للعمل بهذه الأداة ستجدونه موضحا ضمن المرفقات وكما تعودنا فمرفق لكم ملف أكسس بإسم النسخة التوضيحية تحتوي على أمثلة عملية توضح طريقة عمل الأداة وطرق الإستفادة منها بالإضافة إلى نسخة بإسم القالب يحتوي الكائنات المطلوب إستيرادها تم في هذه الأداة الأخذ بالإقتراحات التي قدمها الأخ @Foksh والأخ @Moosak في موضوع الأداة السابقة هنا فأصبح نموذج ببناء صيغة أمر الإستدعاء يقوم بإضافة عبارة Select Case ضمن الصيغة وتم إستخدام دالة بدل الإجراء ليتم إرجاع قيمة الخيار مباشرة لأني رأيت بصراحة أن هذين الإقتراحين هما الأنسب لهذه الأداة أرجو أن تجدوا في هذه الأداة الفائدة العلمية والعملية وفي إنتظار أي ملاحظات تقدمونها تحياتي صاحب الملف منتصر الانسي تمت الاضافه 09/19/26 الاقسام قسم الأكسيس2 points
-
كلامك صحيح وفي محله ولكني أريد توضيح نقطة هنا من باب العلم بالشئ لا أكثر هذا ليس شرط في كل الحالات ولكنه سيكون كإجراء وقائي حتى نتأكد من أن لا يتم تنفيذ إجراء بغير قصد فمثلاً في المثال الأول في النسخة التوضيحية نلاحظ عدم حصول أي شيئ عند عدم تحديد أي عنصر في القائمة ولو عدنا للكود خلف زر الأمر سنجد عدم وجود عبارة 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
-
كتبت لك الحل في المشاركة السابقة واكرر لم توضح الرقم الاصل او الاساسي هل هو في الخلية O10 او K9 لان الحل يختلف والنتيجة تختلف بفرضية ان الرقم الاصل الاولي هو في K9 اليك الملف AS.xlsx2 points
-
وعليكم السلام ورحمة الله وبركاته اولا لم توضح الرقم الاساسي هل هو في الخلية 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
-
أخواني وأساتذتي ومعلمينا ( دون استثناء ) كثير من المطورين ومصممي قواعد البيانات والمشاريع الخاصة بهم ، عندما يقوم بحفظ مشروعه بصيغة Accde ؛ بتفاجئ بأن جهاز العميل لم يقم بتشغيل قاعدة البيانات رغم خلوها من جميع الأخطاء البرمجية ، أو عدم التوافقية في الأكواد بين الناتين 32 و 64 . ولذا يلجأ لحفظ قاعدة البيانات بإصدار مطابق لإصدار أوفيس العميل المثبت في جهازه . أو إجبار العميل على تثبيت إصدارات حديثة أو بنواة معينة ... إلخ . اليوم كانت لي تجربة لتقوم بمهمة تشغيل قاعدة بياناتك على أي إصدار وعلى أي نواة وعلى أي ويندوز دون الحاجة لأي تدخل من مطور البرنامج . تجربتي اليوم ستقوم على مشروع مفتوح المصدر تم طرحه بعنوان الأداة :- معالج ومنشئ حزم تثبيت أكسيس الذكي - Access Smart Packager & Setup Builder كتجربة ليس إلا في هذا الموضوع هنا . على العموم وللتوضيح سأقوم بإرفاق ملف قاعدة البيانات ، والتجربة ممن يرغب بمشاركتنا رأيه ما يلي :- ذكر إصدار ونواة آكسيس الذي قام بالتجربة عليه . ذكر اصدار الويندوز ونواتها أيضاً . ممن يملك إصدارين من آكسيس على جهازه ( مثل أخوكم 😅 ، لدي الإصدارين 2019 - 64 ، والإصدار 2010 - 32 ) ، تجربة الفكرة على الاصدارين ومشاركتنا رأيه بنجاح أو فشل التجربة وهي عنوان الموضوع . وهذه صورة من جهازي الشخصي الذي أملك إصدارين مثبتين عليه . المشاركة مفتوحة لمن يرغب وغير مقتصرة على أحد 😇 . وبناء على النتائج والتفاعل ، سأقوم بفتح موضوع مخصص وطرح الأداة والشرح عنها بكامل تفاصيلها وآلية العمل عليها . وتشجيعاً لمن رغب بالتجربة .. جرب في مربع نص المسار اكتب إشارة # يليها مباشرة officena.net ، وهنا السر العجيب . لاحظ الصورة للتوضيح :- ♻ حيث سيتم استخراج قاعدة البيانات مفتوحة المصدر Accdb وليس Accde ♻ يعني يا صديقي يا مطور البرنامج ، لو في يوم من الأيام ولو بعد 10 سنين ؛ جاء العميل راكضاً ويريد منك إضافات وتعديلات جديدة . وتفاجأت بأن النسخة الأصلية ضاعت منك أو لم تعد موجودة في جهازك ولأي سبب من الأسباب .. فقط اكتب كلمة المرور التي حددتها في الأداة التي سيتم طرحها منفردة في موضعها الخاص , وستحصل على قاعدة بياناتك الأصلية مفتوحة المصدر 😁 . حجم الملف المرفق أكبر من الحد المسموح به ، لذا سأرفعه برابط مباشر على جوجل درايف من هنا . طبعاً حجم قاعدة البيانات هو 10 ميجا ..2 points
-
أعتذر بشدة فعلاً هذا الخطأ كان في القالب والحقيقة لاأعرف كيف حصل ففي الغالب أقوم بتجهيز القالب بناءً على أخر نسخة من النسخة التوضيحية قبل رفعها للمنتدى الغريب أنه لم يذكر أحد هذه المشكلة قبل الأخ @أحمد العيسى تم تصحيح الخطأ وإعادة رفع الأداة2 points
-
بسيطة أخي الكريم .. إذا أردت الإعتماد على المعادلة السابقة في الخلية لكل اسم ، فيمكن استخدام المعادلة التالية في الخلية 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))) ملفك بالمحاولتين :- فصل.xlsx2 points
-
2 points
-
يمكنك استخدام الدالة Application.OnTime لتشغيل إجراء آخر بعد دقيقة من استدعاء الكود: Sub StartTimer() 'تشغيل الإجراء SaveAndClose بعد دقيقة Application.OnTime Now + TimeValue("00:01:00"), "SaveAndClose" End Sub Sub SaveAndClose() ThisWorkbook.Save 'حفظ الملف Application.Quit 'إغلاق Excel End Sub طريقة العمل عند تشغيل StartTimer يبدأ المؤقت. ينتظر Excel دقيقة واحدة. يتم استدعاء الإجراء SaveAndClose. يتم حفظ المصنف ثم إغلاق برنامج Excel. إذا كنت تريد إغلاق المصنف فقط دون إغلاق برنامج Excel بالكامل: Sub StartTimer() Application.OnTime Now + TimeValue("00:01:00"), "SaveAndCloseWorkbook" End Sub Sub SaveAndCloseWorkbook() ThisWorkbook.Save ThisWorkbook.Close SaveChanges:=True End Sub وإذا أردت تغيير المدة إلى 5 دقائق مثلاً: Application.OnTime Now + TimeValue("00:05:00"), "SaveAndClose" بهذه الطريقة يتم التنفيذ في الخلفية بعد المدة المحددة دون استخدام حلقات انتظار (Loop) أو Application.Wait.2 points
-
اعرض الملف أداة إنشاء مجموعات الخيارات المخصصة {سلسلة الأدوات المساعدة المخصصة} من منا لم يواجه عند تصميم تطبيق ما لحالات تتوقف على إستجابة المستخدم لتوجيه سير العمل بإتجاه مختلف عن الآخر وأغلب هذه الحالات نستخدم فيها مربع الحوار MsgBox فنطلب منه مثلاً الرد بنعم أو لا أو موافق أو إلغاء الأمر .... إلخ حسناً ماذا لو واجهت حالات تتطلب أكثر من ثلاثة خيارات مثلاً وأريد أن تكون هذه الخيارات مكتوبة بشكل صريح فسيكون من الصعب إستخدام MsgBox فنحن سنكون محكومين بمسميات الأزرار الإفتراضية والتي قد لا تعبر عن المطلوب بطريقة صحيحة صحيح أنه يمكننا إستخدام أداة مربع حوار المهام TaskDialog لنحصل على النتيجة المطلوبة وأحسن ولكن قد يرى البعض أنه ليس بحاجة لإستخدامها لأي سبب من الأسباب وسيفضل أن يقوم بإنشاء نموذج مخصص لهذه الحالة فقط ... حسناً وماذا إذا إحتاج إلى قائمة خيارات أخرى؟ عندها سيضطر إلى إنشاء نموذج ثاني وثالث ... وهكذا لكل ما سبق أقدم لكم اليوم أداة أعتبرها من الأدوات المثيرة للإعجاب وذلك لأنها رغم بساطتها إلا أنها تقدم خدمة لاغنى عنها بل وتوفر علينا الكثير من الوقت والجهد ولبساطتها لم أحتاج إلى كتابة أي تعليمات لشرح طريقة عملها فكل ماهو مطلوب هو تعبئة بعض مربعات النص فقط ويمكن مشاهدة النتيجة مباشرة وعند الإنتهاء يتم النقر على زر النسخ ولصق الكود في أي حدث تريد ... هذا كل شيء ماعليك إلى أن تكمل التعليمات البرمجية المترتبة على نتيجة التحديد وكما تعودنا ستجدون في المرفقات ملفي أكسس الأول بإسم القالب ويحتوي على نموذجين ووحدة نمطية والحقيقة أنك لست بحاجة إلا إلى نموذج واحد إلى جانب الوحدة النمطية في النسخ النهائية (وهما ماستجدونهما في النسخة التوضيحية) أما نموذج منشئ صيغة أمر الإستدعاء فلن تحتاجه إلا خلال التطوير وهنا يجب علي أن أتقدم بألشكر للأخ العزيز @Foksh والذي دائماً ما يتحفنا بهدايا تقدم في ظاهرها وظائف رئيسية وفي باطنها تقدم وظائف أخرى فرعية أو مخفية لاتقل في أهميتها عن الوظيفة الأساسية التي تقدمها الأداة ومن ضمن هذه الهدايا المخفية كانت وظيفة تحويل أي تطبيق إلى وظيفة إضافية Add-in لذا فقد قمت بإستخدام الكود الخاص به لمنح إمكانية حفظ الأداة كوظيفة إضافية ليمكن للجميع الإستفادة من الإداة في جميع تطبيقات أكسس دون الحاجة إلى إستيراد نموذج منشئ صيغة أمر الإستدعاء ملف أكسس الآخر فهو بإسم (النسخة التوضيحية) وستجدون فيه بعض الأمثلة لطريقة الإستفادة من الأداة (أحد الأمثلة أعتبره هدية بحد ذاته) ملاحظة مهمة : أرجو قراءة التعليقات المرفقة بالكود الخاص بكل زر أمر لكل مثال فستجدون فيها توضيح لكل إجراء في الأخير أرجو أن تنال الأداة إعجابكم وأن تجدو فيها الفائدة في أعمالكم وإذا كان لدى أي أحد أي إستفسار أو ملاحظة فلا يبخل علينا بها تحياتي صاحب الملف منتصر الانسي تمت الاضافه 09/01/26 الاقسام قسم الأكسيس2 points
-
2 points
-
أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. كمطورين لبرامج وقواعد بيانات آكسيس ، نعلم جميعاً أن أكبر تحدٍ يواجهنا بعد الانتهاء من برمجة أي مشروع هو مرحلة نشر البرنامج وتثبيته لدى العميل . وكثيراً ما نتفاجأ باتصالات وشكاوى متكررة من العملاء . أذكر منها :- ❌ الماكرو لا يعمل والأزرار لا تستجيب ، ( بسبب شريط الأمان الأصفر ) ❌ البرنامج تم حظره من الويندوز لأنه محمل من الإنترنت ، ( مشكلة الـ Unblock ) ❌ البرنامج بطيء أو يرفض تشغيل الأكواد من السيرفر المشترك ، ( Network Locations ) ❌ رسالة خطأ مفاجئة تقول: MaxLocksPerFile Exceeded عند ترحيل البيانات من هنا ، وُلدت فكرة هذه الأداة المتكاملة لتكون الحل الجذري والنهائي لكافة مشاكل الأمان ، والتوثيق ، وتهيئة بيئة التشغيل لأي مشروع آكسيس بضغطة زر واحدة . 🌟 فمن هي هذه اللأداة :- اسم الأداة :- مركز التوثيق وإدارة إعدادات الأمان في آكسيس - Access Security & Trust Center Manager التوافقية :- متوافقة مع كافة أنظمة ويندوز ( Windows 7 / 10 / 11 ) بنواتي ( 32-bit و 64-bit ) إصدارات أوفيس المدعومة :- تعمل بتوافقية تامة مع ( 2007, 2010, 2013, 2016, 2019, 2021, و Office 365 ) 🛠️ الميزات والوظائف الرئيسية للأداة :- 1️⃣ إدارة مركز التوثيق والأمان (Trust Center & Macros) توثيق مسار المشروع فوراً ، وإضافة مجلد البرنامج ومجلداته الفرعية إلى المواقع الموثوقة (Trusted Locations) تلقائياً تمكين الماكرو و ActiveX . بخيار للتحكم في تفعيل الماكرو وعناصر التحكم دون ظهور أي رسائل تحذير مزعجة للعميل إلغاء شرائط التحذير وإخفاء شريط الرسائل الأصفر عند فتح البرنامج 2️⃣ فك حظر الملفات المحملة تلقائياً (Unblock Files) فك حظر ملفات البرنامج المحملة عبر الإنترنت أو الواتساب أو الشبكة من خلال مسح القيود من الريجستري تلقائياً تعديل سياسة ويندوز لمرفقات الملفات (SaveZoneInformation) لمنع حظر الملفات مستقبلاً 3️⃣ دعم كامل لشبكات وسيرفرات الشركات (Network Readiness) تمكين مسارات الشبكة ( AllowNetworkLocations ) والسماح لآكسيس بتشغيل الأكواد والماكرو من السيرفرات ومحركات الأقراص المشتركة (\\Server\Share) إلغاء تحذيرات الروابط والمرفقات الخارجية ( DisableHyperlinkWarnings ) ، وفتح التقارير الخارجية كملفات الـ PDF أو الروابط بسلاسة وبدون رسائل التحذير الأمنية 4️⃣ تحسين محرك البيانات وإصلاح العرض الرسومي (Engine & Graphics) زيادة سعة أقفال السجلات ( MaxLocksPerFile = 500,000 ) وذلك لمنع انهيار الاستعلامات الضخمة وتضارب المستخدمين في الشبكة المحلية إصلاح وميض النماذج ( DisableHardwareAcceleration ) بتعطيل التسريع الرسومي لبطاقات الشاشة لمنع وميض النماذج أو اختفاء الأزرار 5️⃣ تخصيص بيئة و واجهة البرنامج (UI & Startup Options) قفل كواليس المشروع ( AllowSpecialKeys ) من خلال تعطيل المفاتيح الخاصة مثل (F11) لحماية جزء التنقل من عبث المستخدمين إلغاء رسائل التأكيد بتعطيل رسائل التأكيد عند الحذف ، التعديل ، واستعلامات الإجراءات التحكم بمظهر آكسيس وذلك من خلال إظهار أو إخفاء شريط الحالة السفلي الرمادي ، والكائنات المخفية ، وجداول النظام ، وسلوك مفتاح Enter ، وتعطيل شاشة ترحيب أوفيس للتشغيل المباشر 🚀 الميزة الجديدة والمطورة :- مشغل العميل التلقائي ( Client Launcher Generator ) تحتوي الأداة على زر تصدير مشغل الإعدادات ، والذي يقوم بإنشاء ملف باتش تنفيذي ( .bat ) يتميز بما يلي :- طلب صلاحية تشغيل المسؤول ذاتياً ( Self-Elevating UAC ) بمجرد فتحه ودون الحاجة لتشغيله كمسؤول Run As Administrator ذكاء التصدير بحد ذاته سيمكنك من تصدير ملف التشغيل والضبط لنفس قاعدة البيانات الحالية ، أو استعراض وتحديد أي قاعدة بيانات خارجية ( accdb أو accde ) لإنشاء المشغل الخاص بها في مجلدها مباشرة تجهيز الجهاز فوراً في لحظة واحدة بحيث يقوم المشغل بضبط كافة إعدادات الأمان في ريجستري العميل وفتح البرنامج مباشرة في ثوانٍ معدودة 🧹 الصيانة الذكية وضبط المصنع :- إزالة التوثيق لمجلد المشروع من خلال زر مخصص لإلغاء توثيق المجلد ومسح سجلات الملف من مسارات الريجستري لأوفيس بالكامل استعادة ضبط المصنع والإعدادات الإفتراضية ستجعل إمكانية استرجاع إعدادات الأمان الافتراضية الأصلية لبرنامج آكسيس أمر في غاية السهولة وفي لحظة واحدة 📥 كيفية الاستخدام :- استيراد النموذج Frm_SecuritySettings والوحدة النمطية Mod_Trust إلى مشروعك فتح النموذج لضبط الخيارات التي تناسبك ( الخيارات تقرأ حالتها اللحظية مباشرة وتتلون ديناميكياً حسب الحالة بالأبيض أو الأصفر ) الضغط على حفظ وتطبيق لتطبيقها فوراً على جهازك ، أو الضغط على تصدير المشغل لتوليد ملف التشغيل الجاهز للعملاء 📸 صورة لواجهة الأداة :- ملف الأداة مفتوح المصدر ، للتحميل :- Trust Center.zip2 points
-
تحياتي وسلامي لك أخي منتصر 🙂 الحقيقة أن هذه الفكرة سبق أن عرضها معلمنا الكبير @jjafferr في هذه المواضيع 👈 سِحر جداول الاكسس في تسجيل الوقائع و سِحر جداول الاكسس في تسجيل الوقائع عن طريق Tables Data Macro لذلك أحس أني عندي فكرة بسيطة عن هذه الميزة .. طبعا الموديول كاملا تم تصميمه عن طريق أداة موجهة بالذكاء الاصطناعي ولعلي أطرحها قريبا إن شاء الله .. والإجابة المباشرة على سؤالك هي : لا لن يؤثر التغيير الذي عملته على عمل الدوال الأخرى في الموديول .. ومن الخير ما فعلت .. حيث كانت دواعي إنشاء تلك الوظيفة (الدالة) هي ضبط الأكواد الرئيسية (تطبيق وفك الحماية عن الجداول) والتأكد من سلامتها .. ولكن أنت فعلت فائدتها للتأكد من وجود الحماية قبل تطبيقها وهذه فطنة منك 👍🙂 جواب هذا السؤال ستحصل عليه بعدما تتعمق في حوار الماكرو هذا .. وضني بك من خلال سهرة البارحة أنك قد عرفت الجواب فعلا 😅🖐️ ننتظر مفاجآتك1 point
-
وأنا قمت بحذفه احترازاً ، لا عليك 🤗 وهنا الموضوع توسع بشكل يفوق عقلي الصغير , ليتعامل مع القواعد المقسمة مثلاً .. أو التعامل مع الاستعلامات ( تحديث أو حذف ) .... إلخ1 point
-
وحتى لا يتبادر إلى ذهن أي شخص فكرة أنني أملك الحل .. فقد يظن البعض أني أُمهد لموضوع جديد أو فكرة جديدة .😣. فوالله أني لم أتعثر حتى بطرف الخيط ، ولم أستدل إلى فكرة حتى لو لم تكن ناجحة 😇1 point
-
قم بتحميل الملف الثاني للاستاذ Foksh به اعادة ترتيب التسلسلي وبه التقديرات يمكنك تعديلها بالكود اعتقد ان التقييم غير صحيح ربما تقصد جيدجدا مع مرتبة الشرف1 point
-
Version 1.0.0
38 تنزيل
اليوم أقدم لكم طريقة أخرى من طرق إنشاء قوائم الخيارات المخصصة ولكن هذه المرة بإستخدام القوائم المختصرة السياقية كل ما يتطلب معرفته للعمل بهذه الأداة ستجدونه موضحا ضمن المرفقات وكما تعودنا فمرفق لكم ملف أكسس بإسم النسخة التوضيحية تحتوي على أمثلة عملية توضح طريقة عمل الأداة وطرق الإستفادة منها بالإضافة إلى نسخة بإسم القالب يحتوي الكائنات المطلوب إستيرادها تم في هذه الأداة الأخذ بالإقتراحات التي قدمها الأخ @Foksh والأخ @Moosak في موضوع الأداة السابقة هنا فأصبح نموذج ببناء صيغة أمر الإستدعاء يقوم بإضافة عبارة Select Case ضمن الصيغة وتم إستخدام دالة بدل الإجراء ليتم إرجاع قيمة الخيار مباشرة لأني رأيت بصراحة أن هذين الإقتراحين هما الأنسب لهذه الأداة أرجو أن تجدوا في هذه الأداة الفائدة العلمية والعملية وفي إنتظار أي ملاحظات تقدمونها تحياتي1 point -
بمبادرة جميلة من الأخ @Foksh والذي تكرم بإضافة الوظيفة التي تسمح بإضافة الأيقونات لعناصر القائمة فله جزيل الشكر وجزاه الله خيراً فقمت بتعديل نموذج بناء صيغة كود إنشاء القائمة المختصرة للسماح بدمج هذه الوظيفة ضمن صيغة الكود كذلك تم إضافة العبارة Case Else في بناء صيغة الأمر لتجاوز أي مشكلة قد تحدث كما ذكر هنا وأخيراً وليس آخراً تم تصحيح الخطأ الذي ذكرة الأخ @Moosak في ملاحظته هذه أرجو أن تنال التعديلات إستحسانكم وفي إنتظار أي ملاحظات أو مقترحات إضافية (فكما ترون فإن لملاحظاتكم القيمة الأثر الكبير في تحسين الأداة) تحياتي للجميع1 point
-
1 point
-
مشاركةً مع اخي منتصر .. استبدل الاستعلام الموجود في الدالة GetLettersArray التي فيها الخطأ ، بالتالي :- strSQL = "SELECT DISTINCT Left(Trim(SearchName), 1) AS SearchLetter " & "FROM (" & strRS & ") AS SubQuery " & "WHERE SearchName IS NOT NULL;" حيث أن الدالة Left تحتاج إلى معاملين . وانت استعملت معامل واحد وهو SearchName ، ولم تحدد رقم الحرف الأول ، لتصبح :- Left(Trim(SearchName), 1)1 point
-
1 point
-
1 point
-
1 point
-
1 point
-
وعليكم السلام ورحمة الله وبركاته ,, أخي أبا المعتصم ، شكراً لك على مرورك العطر .. وأهلاً بتلك الملاحظات ، التي سألخص لك ردي على مجملها :- هنا فعلياً لاحظت أن الخيار يأتي مضمناً فعلاً بمعالج التثبيت ، ويبدو أن السبب في تمرير الأوامر دون تعديل القيمة الافتراضية . إلا أنه فعلياً لا يضيف التطبيق في قائمة ابدأ .. وتمت ملاحقة المجرم في هذا الإنذار الكاذب وهو سطر بسيط إن شاء الله . يبدو من الصورة انك اخترت التجربة هنا على ملف قاعدة بياناتي نفسها 😁 ، ولكن حتى مع تجربتي عليها على إصدار آكسيس 2010 - 32 ، لم تظهر لدي هذه الرسالة ولا بأي مرحلة من مراحل التجارب .. ولكن على العموم سأقوم بالتحقق منها . خيار تضمين مشغل أكسس رن تايم مع الحزمة ، هذا الخيار مخصص فقط في حال كنت تريد دمج حزمة تثبيت أوفيس رن تايم دون اتصال ( Offline Installer مثل AccessRuntime_x86.exe بحجم تقريب من 50 إلى 200 ميجابايت ) ليقوم ملف التنصيب بتثبيتها تلقائياً على الأجهزة التي لا تحتوي على أوفيس . وإذا لم تكن تملك هذا الملف ، يقوم بإلغاء تحديده ببساطة ، وقد أحاول أيضاً إضافة خيار مستقل بتحميل المشغل من خلال روابط موثوقة من مايكروسوفت - في إصدار وتعديل آخر - إن شا ءالله . أيضاً خيار تشغيل التطبيق في وضع الرن تايم (/runtime) ، هذا الخيار مستقل تماماً ولا يتطلب تحميل أي ملف ! فعند تفعيله ، يتم تمرير المعامل /runtime لأكسس العميل المثبت أصلاً في جهازه ، مما يجبر أكسس الكامل على العمل ببيئة الرن تايم المقيدة ( إخفاء أشرطة الأدوات ، منع فتح التصميم ، وعرض النماذج فقط ) . وسأوضح أين نجد نتيجة هذه الميزة عند تفعيلها .. في اختصار سطح المكتب الذي يتم انشاؤه بعد التثبيت ، ادخل على خصائص هذا الاختصار ، وانظر لمسار الملف 😁 ونهايته .. ستلاحظ انه ينتهي كمثال بـ :- .accde" /runtime أو حسب نوع المعامل الذي تم تمريره .. وقد قمت بضبط تعطيل المفاتيح الخاصة كاملة في الإصدار المحدّث إن شاء الله ، فقد كنت في تجاربي قد أوقفت بعض الوظائف ، وتاهت بي التجارب بعدم إعادة تفعيلها . فيما يخص هذه الإضافة ، والتي فعلاً قد سبق لي التفكير بها + مجموعة من الأفكار الكثيرة التي قمت بالتوقف عندها وعدم إضافتها 😅 .. فبإذن الله تعالى سيكون لها تطبيق وتنفيذ مناسب ومحكم ..1 point
-
شكراً أستاذ موسى دائماً ترفع مغنوياتي أولاً بتثبيتك لكل أداة أقوم برفعها وثانياً لردودك التي تجعلني أطمئن بأنها تعمل بنجاح أتمنى أن تكون وجدت إستخداماتها ذات فائدة لإستخدامها ضمن تطبيقاتك1 point
-
1 point
-
عندما تكون ملفات اكسس بالإمتداد mde أو accde فهذا يعني أنه قد تم تشفيرها وفقاً للبيئة التي تم تشفيرها فيها بالتالي إذا تم تشفيرها في بيئة 32 بت فلن تعمل إلا في بيئة 32 بت ونفس الشيئ لـ 64 بت . هذا يعتمد على نقطة مهمة هل التطبيق وهو بالإمتداد mdb أو accdb يعمل بدون مشاكل في كلا النواتين أم لا؟ فإذا كان يعمل بدون مشاكل فلن يكون هناك أي اكواد بحاجة للتعديل أما إذا كان يعمل في 32 بت ولم يعمل في 64 بت فغالباً ستكون المشكلة في دوال API وحل هذه المشكلة بسيط جدا إفتح محرر الأكواد ومن قائمة Debug --> Compile YourDatabaseName (طبعا سيظهر إسم التطبيق مكان الكلمة YourDatabaseName) وسيتوقف المؤشر عند أول دالة أو إجراء (وغالباً ستبدأ بالكلمة المفتاحية Declare وأحيانا قد تكون هذه الكلمة مسبوقة بكلمة Private أو Public) وسأوضح لك بمثال واقعي هذا المثال يحتوي على دالتين وإجراء API ستعمل في 32 بت فقط ولن تعمل في 64 بت Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long) Declare Function EnumFonts Lib "gdi32" Alias "EnumFontsA" (ByVal hDC As Long, ByVal lpsz As String, ByVal lpFontEnumProc As Long, ByVal lParam As Long) As Long Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long قمت بنسخها وذهبت لأداة الأخ موسى وقمت بالخطوات الموضحة بالأصفر تم تحديد خيار (توافق 32/64) ولصقت الكود الأصلي في الجزء الأيمن ثم النقر على زر (تشغيل المعالج) لتم تحويل الكود إلى هذا الشكل #If VBA7 Then Declare PtrSafe Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long) Declare PtrSafe Function EnumFonts Lib "gdi32" Alias "EnumFontsA" (ByVal hDC As LongPtr, ByVal lpsz As String, ByVal lpFontEnumProc As LongPtr, ByVal lParam As LongPtr) As Long Declare PtrSafe Function GetDC Lib "user32" (ByVal hWnd As LongPtr) As LongPtr #Else Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long) Declare Function EnumFonts Lib "gdi32" Alias "EnumFontsA" (ByVal hDC As Long, ByVal lpsz As String, ByVal lpFontEnumProc As Long, ByVal lParam As Long) As Long Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As Long #End If نقوم بإستبدال الثلاثة أسطر الأصلية بهذه النتيجة وبهذا نكون قد حصلنا على كود متوافق مع النواتين قم بتكرار العملية إلى أن يصبح خيار Compile YourDatabaseName غير مفعل كما بالصورة وعندما تجد أن كلمة Compile مع إسم التطبيق أصبح كما بالصورة يكون تطبيقك أصبح جاهز للعمل على النواتين بدون أي مشاكل عندما أقول يعمل على النواتين أقصد وهو بالإمتداد mdb أو accdb أما إذا كان بالإمتداد mde أو accde فإن البيئة التي سيعمل فيها هي نفس البيئة التي تم تشفيره فيها أرجو أن يكون الشرح واضح وإذا كان هناك أي إستفسار آو توضيح فتفضل وأسأل تحياتي1 point
-
وعليكم السلام -كان عليك ان تقوم بالتالى حدد العمود. اذهب إلى علامة التبويب بيانات (Data) > نص إلى أعمدة (Text to Columns) > إنهاء (Finish) ثم اكتب معادلة جمع عادية وستحصل على النتيجة المرجوة تقرير التأخير الشهري 11112.xlsx1 point
-
السلام عليكم 🙂 مايكروسوفت عملت اضافة لجداول الاكسس 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.zip1 point
-
ممكن تجرب هذا البرنامج setup_rvp-برنامج Remove VBA Password.zip وأيضا ممكن تبحث عن هذا البرنامج VBA Password Recovery 1.0.0 وبرنامج Passware Password Kit1 point
-
1 point
-
تسلم ايديك استاذ أحمد كود حقا رائع ونفذ المطلوب بكل دقة بارك الله فيك وجعله فى ميزان حسناتك1 point
-
1 point