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

منتصر الانسي

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

    1176
  • تاريخ الانضمام

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

  • Days Won

    16

كل منشورات العضو منتصر الانسي

  1. من كلامك هذا اعتقد أنك قمت بتغيير الجهاز ويمكن أن تكون المشكلة مرتبطة بلغة النظام لأن المشكلة لم تظهر عندي انا ايضاً
  2. قم بنسخ الكود التالي ولصقه في أي وحدة نمطية Public Function ReportExists(rptName As String) As Boolean Dim obj As AccessObject For Each obj In CurrentProject.AllReports If obj.Name = rptName Then ReportExists = True Exit Function End If Next obj ReportExists = False End Function بهذا سيتم حل المشكلة التي تسبب الخطأ الظاهر في الصورة الثانية لا أدري إذا ما سيتم حل المشكلة الظاهرة بالصورة الأولى أم لا ولكن جرب ورد علينا بالنتيجة تحياتي
  3. Version 1.0.0

    38 تنزيل

    اليوم أقدم لكم أداة أعتقد أن الجميع يحتاجها والحقيقة أن هذه الأداة هي في الأصل عبارة عن أداتين كلا منها يؤدي وظيفة مستقلة لكنهما يتكاملان مع بعضهما لتقومان بجميع الوظائف المرتبطة بتخصيص طرق عرض وطباعة التقارير من حيث تخصيص حجم الورق وإتجاه الورقة ونوع الطابعة ومربع حوار الطباعة .... إلخ وظيفة الأداة الأولى - إنشاء قائمة مختصرة لطباعة التقارير - إظهار مربع حوار مخصص للطباعة وظيفة الأداة الثانية - إنشاء مايشبه القوالب الخاصة بمعاينة وطباعة التقارير بحيث يتم ربط كل تقرير بحجم الورق والطابعة وطريقة العرض الخاصة به - سيتم الإستغناء عن أمر معاينة وطباعة التقارير فبدلاً عن هذه الصيغة DoCmd.OpenReport "ReportName", ViewMode, , strCriteria, OpenArgs سيتم إستخدام هذا الصيغة MyOpenReport "ReportName", ViewMode, ReportTypeID, strCriteria, OpenArgs, NoMargins حيث نلاحظ أن الصيغتين لها نفس المعلمات مع إضافة معلنتين إضافينين هما - ReportTypeID وتمثل رقم السجل الخاص بالقالب في جدول القوالب - NoMargins معلمة خاصة بتجاهل الهوامش (سيتم توضيح عملها ضمن المثال التوضيحي) أخيراً مرفق لكم مجلد يحتوي على مايلي 1- مثال عملي شامل يوضح عمل الأداتين معاً 2- مجلد فرعي خاص بكل أداة يشمل مثال توضيحي لطريقة الإستفادة من الأداة وقالب يحتوي على الكائنات الأساسية لكل أداة في الأخير أتمنى من الجميع تجربة الأداة وإبداء إي ملاحظات تحياتي
  4. اعرض الملف بهذه الأداة سيتم تخصيص طريقة عرض وطباعة التقارير {سلسلة الأدوات المساعدة المخصصة} اليوم أقدم لكم أداة أعتقد أن الجميع يحتاجها والحقيقة أن هذه الأداة هي في الأصل عبارة عن أداتين كلا منها يؤدي وظيفة مستقلة لكنهما يتكاملان مع بعضهما لتقومان بجميع الوظائف المرتبطة بتخصيص طرق عرض وطباعة التقارير من حيث تخصيص حجم الورق وإتجاه الورقة ونوع الطابعة ومربع حوار الطباعة .... إلخ وظيفة الأداة الأولى - إنشاء قائمة مختصرة لطباعة التقارير - إظهار مربع حوار مخصص للطباعة وظيفة الأداة الثانية - إنشاء مايشبه القوالب الخاصة بمعاينة وطباعة التقارير بحيث يتم ربط كل تقرير بحجم الورق والطابعة وطريقة العرض الخاصة به - سيتم الإستغناء عن أمر معاينة وطباعة التقارير فبدلاً عن هذه الصيغة DoCmd.OpenReport "ReportName", ViewMode, , strCriteria, OpenArgs سيتم إستخدام هذا الصيغة MyOpenReport "ReportName", ViewMode, ReportTypeID, strCriteria, OpenArgs, NoMargins حيث نلاحظ أن الصيغتين لها نفس المعلمات مع إضافة معلنتين إضافينين هما - ReportTypeID وتمثل رقم السجل الخاص بالقالب في جدول القوالب - NoMargins معلمة خاصة بتجاهل الهوامش (سيتم توضيح عملها ضمن المثال التوضيحي) أخيراً مرفق لكم مجلد يحتوي على مايلي 1- مثال عملي شامل يوضح عمل الأداتين معاً 2- مجلد فرعي خاص بكل أداة يشمل مثال توضيحي لطريقة الإستفادة من الأداة وقالب يحتوي على الكائنات الأساسية لكل أداة في الأخير أتمنى من الجميع تجربة الأداة وإبداء إي ملاحظات تحياتي صاحب الملف منتصر الانسي تمت الاضافه 12/06/25 الاقسام قسم الأكسيس  
  5. وكمعلومة إضافية في مثال الاخ @محمد التميمي يمكنك الحصول على رقم أي قرص غير الـ C بإستبدال الحرف C بالحرف المطلوب SerialNumber = CreateObject("Scripting.FileSystemObject").GetDrive("C:\").SerialNumber تحياتي
  6. اخي العزيز @محب العقيدة من خلال إطلاعي على ماجاء في المحادثة فإن الطريقة التي يعتمدها هي وهذا معناه شيئين اولاً الإعتماد على حقول نوع OLE أو Attachment لحفظ البيانات وهذا سيؤدي إلى تضخم حجم قاعدة البيانات بصورة كبيرة حتى ولو لم تحتوي إلا على بيانات قليلة ثانيا بهذه الطريقة سنفرغ قاعدة البيانات من مفهومها الرئيسي وهو الترميز والعلاقات لضمان تنظيم البيانات عدم تكرار البيانات الغير ضرورية فالذي يتم هنا هو أنه يتم أخذ بيانات السجل وتقسيمها إلى أجزاء وحفظها كـ xml دون مراعاة لقواعد التحقق من صحة البيانات وتكرارها بالإضافة إلى كل ماسبق فإن آلية العمل مشكوك فيها فإذا كنت قد شغلت الإجراء Test مرة وأفادني بالفعل أنه تم حفظ الكميات 8. المخزون الحالي: - أرز: 80 كيس - سكر: 50 كيس فيفترض أنه اصبح لدي بالفعل صنف بإسم أرز وصنف بإسم سكر الآن لو قمت بحذف أو تعليق الاسطر الخاصة بإنشاء الأصناف وهي ' 2. إضافة مواد Debug.Print "2. إضافة مواد جديدة..." itemID1 = itemsMgr.AddItem("أرز", "RICE001", "كيس", 10, 50, "أرز هندي") If itemID1 > 0 Then Debug.Print " ? تمت إضافة: أرز - ID: " & itemID1 End If itemID2 = itemsMgr.AddItem("سكر", "SUGAR001", "كيس", 5, 45, "سكر أبيض") If itemID2 > 0 Then Debug.Print " ? تمت إضافة: سكر - ID: " & itemID2 End If Debug.Print "" ' 3. حفظ المواد Debug.Print "3. حفظ المواد..." If itemsMgr.Save Then Debug.Print " ? تم حفظ المواد بنجاح" End If Debug.Print "" وقمت بتعديل الكميات في إجراءات الاضافة والتنزيل (او حتى بدون تعديلات) ستظهر لي الرسالة التالية وهذا معناه أنه قد نسي أنه تم حفظ الصنفين هذه هي ملاحظاتي السريعة على ماجاء في مشاركتك ان شاء الله تكون ملاحظات مفيدة تحياتي
  7. بسيطة إستخدم هذا الإستعلام من أي قاعدة بيانات أخرى SELECT MSysObjects.Flags, MSysObjects.Name, MSysObjects.Type FROM MSysObjects IN 'D:\HideTBL V1-64.accde' WHERE ( ((MSysObjects.Name) NOT LIKE "MSys*") AND ((MSysObjects.Type) = 1) ); وذلك على إفتراض أن الملف موجود تحت القرص D مباشرة وإلا قم بتعديل المسار تحياتي
  8. ماذا تقصد بغير متاحة ؟ - إن كنت تقصد بإنها مؤمنة بكلمة سر فأنت تعلم بأنه يمكن كسر هذا التأمين بسهولة - وإن كنت تقصد تأمين قاعدة البيانات عن طريق الكود بحيث أننا لن نستطيع فتحها عن طريق مفتاح Shift فيمكننا تنفيذ الاستعلام من أي قاعدة بيانات أخرى - وإذا تقصد أنك ستقوم بإخفاء قاعدة البيانات هذه للدرجة التي لايمكن أن يصل إليها أحد فأعتقد أن هذا هو أقوى تأمين ولن نحتاج للقلق من الوصول إلى البيانات داخلها فهل فكرتك هي ضمن هذه الحالات أم أن لديك فكرة أخرى؟
  9. كلامك صحيح ولكن يفترض بالمطور تعديل الرقم بحسب عدد السجلات التي يفترض اضافتها فإذا كان يعتقد أنه بالامكان أن تزيد عن 1000 سجل في السنة فيمكن أن يجعل الرقم 10000
  10. لو رجعنا لتعليمات مايكروسوفت بخصوص الامر DoCmd.PrintOut على هذا الرابط سنجد أن صيغة هذا الأمر هي كالتالي DoCmd.PrintOut (PrintRange, PageFrom, PageTo, PrintQuality, Copies, CollateCopies) نلاحظ أنه يحتوي على المعلمة (Copies) والتي نحدد فيها عدد النسخ ولكن مع الأسف لا تعمل بشكل صحيح ولا ادري إذا ما كانت هذه المشكلة مرتبطة بنسخة الاوفيس لدي أم انها مشكلة عامة حبيت اوضح هذه النقطة لتجربتها فإذا عملت لديكم كان بها وإلا فإن طريقة الاخ @Foksh قامت بمعالجة المشكلة تحياتي
  11. انا طريقتي تختلف عن الاخوان حيث قمت بإظهار الجدول نفسه كما بالصورة وللقيام بذلك قم بتنفيذ الخطوات كالتالي 1- إنسخ الملف تحت القرص D مباشرة (يمكن نسخه إلى أي مكان ولكن هكذا سيكون المسار قصير) 2- إفتح الملف وقم بإنشاء الاستعلام التالي (هذه الخطوة غير مهمة لكم لإني سبق واستخرجت قيمة العمود المطلوب ووضعتها في الكود ولكني ذكرتها للتعرف على الخطوات) SELECT MSysObjects.Flags, MSysObjects.Name, MSysObjects.Type FROM MSysObjects WHERE ( ((MSysObjects.Name) NOT LIKE "MSys*") AND ((MSysObjects.Type) = 1) ); من خلال هذا الاستعلام سنتعرف على أي جدول Type=1 ولايبدأ بالأحرف MSys لتظهر لنا النتيجة كما بالصورة مايهمنا هنا هي قيمة العمود الأول Flags بعد ذلك قم بإغلاق التطبيق بدون حفظ اي شيء 3- إفتح أي قاعدة بيانات أخرى (سواء قاعدة بيانات فارغة أو مستخدمة لايهم) وفي أي وحدة نمطية (جديدة أو فيها اكواد لايهم) والصق فيها الإجراء التالي Sub sbUnHideTables() Dim app As Access.Application Dim wks As Workspace Dim db As dao.Database Dim rst As dao.Recordset Dim tdf As TableDef Set app = New Access.Application Set wks = app.DBEngine(0) 'الإصدار 64 Set db = wks.OpenDatabase("D:\HideTBL V1-64.accde") 'مسار الملف 'الإصدار 32 'Set db = wks.OpenDatabase("D:\HideTBL V1-32.accde") 'مسار الملف For Each tdf In db.TableDefs If tdf.Attributes = -2147483645 Then tdf.Attributes = 0 'تغيير قيمة العمود Flags Next tdf Set db = Nothing End Sub 4- انقر الزر F5 لتشغيل الإجراء حيث سيقوم بتغيير قيمة العمود Flags إلى القيمة صفر 5- اغلق قاعدة البيانات التي قمنا بتنفيذ الكود فيها (حفظ الكود من عدمه راجع لك) 6- الان إذهب إلى القرص D وقم بفتح الملف (HideTBL V1-64.accde او HideTBL V1-32.accde وفقاً لإصدار أوفيس لديك) لتجد أن الجدول قد ظهر في جزء التنقل تحياتي
  12. بعد التفكير في سؤالك اخي @Moosak أعتقد أنه بالإمكان الحصول على نفس النتيجة بطريقة غير مباشرة فإذا ماجعلنا خلفية مربعات التسمية ومربعات النص شفافة وبسطرين برمجيين لزر الأمر يمكننا الحصول على نفس النتيجة كما بالصورة فهل هذا هو ماكنت تقصده في سؤالك ؟
  13. بالإضافة إلى ماذكره الأخ @Foksh يمكنك العمل برقم السجل بدلا من رقم الحساب مرفق لك مثالك بعد التعديل حيث قمت بإضافة مربع نص يظهر رقم السجل الحالي ويمكنك إدخال رقم السجل المطلوب للإنتقال إليه مباشرة بالإضافة إلى زري تنقل قمت بإنشائهما عن طريق المعالج بشكل طبيعي تحياتي test.accdb
  14. هذا غير ممكن لأن ما تفعله الأداة هو إنشاء صورة وهمية وتعيينها كقيمة لخاصية الصورة Picture الخاصة بالنموذج
  15. مرفق لك المثال بعد استخدام ماكرو البيانات جرب تعديل حقلSlabs الي في جدول Receiving_Bundle وشاهد كيف ستتغير قيمة الحقل Slabs_in_Bundle في جدول SAW حيث يقوم ماكرو البيانات بما يشبه الـ Trigger في انظمة قواعد البيانات الكبيرة مثل Sql Server و Oracle وغيرها ولكن المشكلة الوحيدة هي ان هذا النوع من الماكرو لن يعمل الا مع اكسس 2010 ومابعده (صراحة غير متأكد من انه يعمل مع اكسس 2007) والاكيد انه لن يعمل مع ماقبل 2007 تحياتي Database.accdb
  16. انا لم اقصد الامر نفسه فانا ادري انك تقوم بإجراء التحديث بشكل عام انما قصدت انه اذا افترضنا تم الادخال عن طريق الجدول فإن أي عملية احتساب يجريها أو إستعلام أو تقرير يتم فتحه قبل أن يتم فتح النموذج ستكون نتائجه غير صحيحة اليس كذلك ام انا غلطان
  17. بعد اطلاعي على مرفقات الاخ @ابوخليل والاخ @kkhalifa1960 لاحظت أنكم إعتدمتم على النموذج للقيام بالتحديث ولكن ماذا لو تم الادخال عن طريق الجدول سيحدث خلل وهذا من احد اهم الاسباب التي تجعلنا لا نعتمد على الجداول في الاحتفاظ بالقيم المحتسبة ولكن في هذه الحالة اعتقد أنه لو يتم الاعتماد على Data Macro الخاص بجدول Receiving_Bundle للقيام بعملية التجميع بعد تحديث السجل After Update سيكون افضل من الاعتماد على النموذج
  18. لماذا الاعتذار أخي @kkhalifa1960 بالعكس فإثراء الموضوع بالافكار هي الغاية من المنتدى بحيث تكون الصورة كاملة امام السائل وهو من يقرر اي الإجابات التي تناسب عمله
  19. اخي الكريم من الممارسات الجيدة عند تصميم قواعد البيانات العمل على تقليل حجم البيانات التي يتم تخزينها بقدر الإمكان فمثلاً لماذا نقوم بحفظ الاجمالي في الجدول وتضخيم حجم البيانات المحفوظة فيه ونحن بإمكاننا الحصول على نفس النتيجة بواسطة الإستعلامات ارفق لك ملفك بعد إضافة إستعلام والذي إذا فتحته جنبا الى جنب مع الجدول فلن تجد أي فرق إلا آخر عمود والذي يحتوي الإجمالي المطلوب بالتالي يمكنك إستخدام هذا الإستعلام بدلا من الجدول تحياتي Database.accdb
  20. Version 1.0.0

    65 تنزيل

    أقدم لكم اليوم أداة تلوين خلفية النماذج بألوان متدرجة والتي تقوم بمنح النماذج خلفية ملونة بطريقة جميلة حيث تقوم فيها بإختيار لونين ليتم دمجهما والحصول على خلفية تتكون من ألوان متدرجة بين هذين اللونين ويمكن تحديد إتجاه التدرج (أفقياً - عمودياً - قطرياً) إستخدام الأداة سهل للغاية ولن يتطلب أي مهارات حيث أن الأداة تقوم بكل العمل تقريباً ما عليكم سوى تحديد الألوان والإتجاه وستقوم الأداة بتعميم التنسيق على بقية النماذج ضمن التطبيق. مرفق لكم مجلد يحتوي على نسخة توضيحية لتجربتها ومعرفة طريقة عملها ونسخة الفالب وتحتوي على الكائنات المطلوب إستيرادها لإستخدامها في تطبيقاتكم أرجو أن تنال هذه الأداة إعجابكم تحياتي
  21. اعرض الملف احصل على ألوان أكثر بهجة لنماذجك بإستخدام هذه الأداة {سلسلة الأدوات المساعدة المخصصة} أقدم لكم اليوم أداة تلوين خلفية النماذج بألوان متدرجة والتي تقوم بمنح النماذج خلفية ملونة بطريقة جميلة حيث تقوم فيها بإختيار لونين ليتم دمجهما والحصول على خلفية تتكون من ألوان متدرجة بين هذين اللونين ويمكن تحديد إتجاه التدرج (أفقياً - عمودياً - قطرياً) إستخدام الأداة سهل للغاية ولن يتطلب أي مهارات حيث أن الأداة تقوم بكل العمل تقريباً ما عليكم سوى تحديد الألوان والإتجاه وستقوم الأداة بتعميم التنسيق على بقية النماذج ضمن التطبيق. مرفق لكم مجلد يحتوي على نسخة توضيحية لتجربتها ومعرفة طريقة عملها ونسخة الفالب وتحتوي على الكائنات المطلوب إستيرادها لإستخدامها في تطبيقاتكم أرجو أن تنال هذه الأداة إعجابكم تحياتي صاحب الملف منتصر الانسي تمت الاضافه 11/17/25 الاقسام قسم الأكسيس  
  22. يجب التنويه هنا أن هذا الأمر لا يتم إلا عندما يكون الـ Back-End هي قاعدة بيانات SQL Server لأنه عندها يمكننا الربط مع الإستعلامات والتي تسمى Views ولن يتم هذا مع Back-End أكسس ارجو من الاخ @kkhalifa1960 تصحيح كلامي لو كنت مخطئ
  23. فصل الجداول سهل كما هو موضح بالفيديو ولكن لا يمكن فصل الإستعلامات ولكن توجد عدة طرق نستطيع بها ... لا اقول إخفاء الإستعلام نفسه ولكن تغيير طريقة التعامل معه فمثلاً - تغيير مصدر بيانات النماذج والتقارير التي تعتمد على إستعلام فبدلا من وضع إسم الاستعلام في خاصية مصدر السجل يمكن وضع جملة Sql الخاصة بالاستعلام بهذا يمكننا الإستغناء عن جميع الاستعلام التي نستخدمها كمصدر بيانات للنماذج والتقارير - الإستعلامات الاجرائية يمكن تحويلها إلى أكواد VBA ليتم تنفيذها عبر الكود وهكذا يمكننا الإستغناء عن جميع الاستعلامات الإجرائية بالتالي سيتبقى لنا الحد الأدنى من الإستعلامات التي يمكن أن تظهر في جزء الإستعلامات وهي تلك التي نعتمد عليها لتجهير البيانات للإستفادة منها في إستعلامات أخرى كعمليات التجميع أو تجهيز البيانات بشكل معين وعادة يتم الاستفادة من نتائج هذه الاستعلامات عندما تكون جزء من إستعلامات آخرى تحياتي
  24. اهااا المشكلة هذه هي بسبب قياسات الصفحة والهوامش قم بتصغير عرض التقرير إلى 27 سم وستنتهي المشكلة تحياتي
  25. الأسماء مرتبة أبجديا ومن السهل الوصول لأي إسم بسهولة ولكن إذا قمنا بعمل مربع بحث يقوم بتصفية مربع القائمة فسيتم تجاهل أي إختيارات تم تحديدها سابقاً هذا لايعني أنه ليس بالإمكان عمل حل ولكنه يحتاج بعض الوقت وقد يكون بإستطاعة أحد الأخوة الأعضاء مساعدتك فيه تحياتي
×
×
  • اضف...

Important Information