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

منتصر الانسي

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

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

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

  • Days Won

    41

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

  1. الم يعجبك هذا الحل ؟؟ بهذه الطريقة ستحصل على ميزتين الأولى أن ملف MouseHook.dll سيكون بعيداً عن أنظار المستخدمين والميزة الثانية أنه يمكنك إستخدام كود إيقاف العجلة في أي تطبيق على مستوى الجهاز
  2. يمكنك كذلك نسخه الى المجلد System32 داخل مجلد Windows
  3. ماقبل 2007 كان بالامكان التنقل بين السجلات بإستخدام عجلة الماوس وفي الإصدارات الحديثة تم معالجة هذه المشكلة ولم تعد موجودة
  4. يبدو أنك مازلت تستخدم أوفيس 2003 أو نسخة أقدم لأن هذه المشكلة لم تعد موجودة منذ أوفيس 2007 يوجد حل بسيط وهو تشغيل التطبيق في أكسس 2007 أو إصدار أحدث أما لو كنت مضطراً للعمل مع أوفيس 2003 فيمكنك تجربة الحل الموجود في المرفقات وسيكون المطلوب منك مايلي 1- نسخ الملف MouseHook.dll إلى نفس المجلد الخاص بتطبيقك 2- إستيراد الوحدة النمطية mdlMouseHook إلى التطبيق الخاص بك 3- في حدث عند التحميل (OnLoad) للنموذج الذي تريد توقيف عجلة الماوس فيه إنسخ السطرين التاليين Dim blRet As Boolean blRet = MouseWheelOFF(True) وفي حدث الإغلاق (OnClose) إنسخ السطرين التاليين Dim blRet As Boolean blRet = MouseWheelON() تلميح : إذا أردت إيقاف عمل عجلة الماوس في جميع نماذج التطبيق الخاص بك يمكنك تشغيل الكود الأول عند فتح أول نموذج في التطبيق والكود الثاني عند إغلاق آخر نموذج ستجد في الملف المرفق مثال يحتوي نموذجين واحد يتم التنقل خلال سجلاته بالعجلة والاخر تم توقيف عملها أرجو منك التأكد من عمل الكود أولاً تحياتي إيقاف عجلة الماوس.rar
  5. لم أعرف أي التقريرين تريد تطبيق طلبك عليه ولكني رأيت أن تقرير (مناداة قديم) هو الاقرب فقمت بتنفيذ الحل فيه ارجو أن يكون هذا الحل هو ماتريده بالضبط تحياتي 111.rar
  6. لدينا مثل في اليمن يقول (المليح يبطي 😁) وهذا كان نتاج عملك المليح كله راااائع أستاذ @Moosak إبدااااع بمعنى الكلمة وسأعتمد عليه من الان وصاعداً إن شاء الله لا ألومك والله فقد وقعت في نفس الحيرة ولكنك كنت أكثر عزيمة مني وأنهيته 😅 تحياتي
  7. يوجد لطلبك حلين الأول حل بسيط وهو مجرد مضاعفة إرتفاع الصف ليشغل كل صف مكان صفين الحل الثاني برمجي ويعتمد على قيمة مربع النص (م) أي المسلسل بحيث يتم فرض صفحة جديدة عندما تكون قيمة المسلسل يقبل القسمة على 10 بدون باقي ملاحظة إضافية الحل الذي كان موجود في مثالك فيه مشكلتين الأولى أنه يقوم بإخفاء السجلات التي بعد السجل العاشر ولا يقوم بنقلها إلى الصفخات التالية والمشكلة الثانية تخص اللغة فيبدو أنك نسخت الكود من مثال من نسخة اوفيس انجليزية والملف المرفق تم إنشاؤه في أوفيس نسخة عربية لذلك فالكود التالي مثلاً Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer) ' زيادة العداد بمقدار 1 لكل سجل intRecordCount = intRecordCount + 1 ' تغيير الرقم 10 إلى أي عدد تريده (20، 50، 100...) If intRecordCount > 10 Then ' ?? غير هذا الرقم حسب حاجتك ' إلغاء طباعة هذا السجل وما بعده Cancel = True End If End Sub يجب أن يكون بهذا الشكل Private Sub تفصيل_Format(Cancel As Integer, FormatCount As Integer) ' زيادة العداد بمقدار 1 لكل سجل intRecordCount = intRecordCount + 1 ' تغيير الرقم 10 إلى أي عدد تريده (20، 50، 100...) If intRecordCount > 10 Then ' ?? غير هذا الرقم حسب حاجتك ' إلغاء طباعة هذا السجل وما بعده Cancel = True End If End Sub لاحظ إسم المقطع (Detail سيصبح تفصيل) وهذه الملاحظة جانبية حبيت أضيفها لتنبيهك فقد تقوم بالإستفادة من أكواد أخرى مشابهة لهذا وعند تجربتها تجدها لا تعمل فتظن أن الكود غير صحيح والسبب لايكون منه تحياتي New Microsoft Access Database.accdb
  8. انا لم الاحظ أن هناك فرق قد يكون حجم البيانات عندك كبير مما يؤدي إلى ملاحظة هذا التأخير هناك خاصية مهمة يفضل إضافتها إلى الحقول التي يتم البحث عن بيانتها بكثرة وهي خاصية الفهرسة (في أكسس إسمها مفهرس أو Indexed) بالطريقة الموضحة بالصورة التالية الخيار المحدد هنا هو نعم مع السماح بتكرار نفس الإسم أكثر من مرة وإذا كنت متأكداً من عدم تكرار الإسم يمكن إختيار نعم بدون تكرار وهذا سيكون طبقة حماية إضافية حتى لايتم تكرار الأسماء الآن بعد أن تقوم بتعيين هذه الخاصية جرب عملية البحث هل ستكون أسرع؟ في حالتك هذه يفضل أن يكون النموذج الذي تبحث فيه إما نموذج فرعي أو نموذج مستقل عن نموذج البحث (النموذج الذي يتم إدخال نص البحث فيه) وهذا بسبب أنه يتم تنفيذ تحديث أو Requery للنموذج أثناء إدخال نص البحث ولكن لو كان البحث يتم بعد إدخال النص كاملاً فلن تكون هناك مشكلة عموما جرب تطبيق خاصية الفهرسة على المثال السابق وشوف النتيجة هل سيتحسن الأداء أم لا ومن ثم نشوف حل للطريقة الثانية التي قلت عليها (أن يكون نفس النموذج) تحياتي
  9. حاضر سأوضح لك ماكنت أقصده الخطأ كان يحدث في هذا السطر DoCmd.GoToControl [haqel] والذي معناه أن يتم إنتقال التركيز إلى عنصر التحكم الذي أسمه محدد في مربع التحرير والسرد [haqel] لذا لو رجعنا لمربع التحرير والسرد هذا سنجده يحتوي على أسماء عناصر التحكم باللغة الإنجليزية كما بالصورة ولكن أسماء عناصر التحكم لديك أسمائها باللغة العربية كما بالصورة (للتوضيح ليست المشكلة بأنها بالعربي انما بعدم تطابقها مع الإسم المحدد في مربع التحرير والسرد) لذلك فإن الحل هو بتعديل مسميات عناصر النحكم لتطابق المسميات الواردة في مربع التحرير والسرد (كمثال حقل الرقم يصبح كما بالصورة) ويتم التعديل لبقية الحقول بنفس الطريقة أرجو أن أكون قد وضحت طريقة الحل التي قصدتها تحياتي
  10. تفضل الملف بعد التعديل saad.accdb
  11. اخي الكريم لو طبقت ماجاء ردي السابق كنت حصلت على النتيجة المطلوبة عموما هذا مثلك بعد التعديل DB.accdb
  12. يجب تعديل أسماء عناصر التحكم (الرقم - الإسم - الوظيفة) إلى أسمائها بالإنجليزي حتى تتطابق مسميات الحقول كما هي في مربع التحرير والسرد (اختر الحقل)
  13. عمل رائع أخي @Moosak وإثراءً للموضوع أرفق لكم مثالين الاول للأستاذ الغالي @عبدالله باقشير الله يذكره بالخير (كان مشرفاً لمنتدى أكسل وكان إسمه في المنتدى خبور خير) حيث أنه قد قام بتغطية كل ماجاء في هذا المثال مع إضافة بعض الإضافات الجميلة التي يمكن أن يراها البعض مهمة ولعل أهمها - طريقة كتابة إسم العملة للأرقام من 3 إلى 10 (مثال خمسة ريالات وليس خمسة ريال) - إمكانية تفقيط رقم يصل إلى البلايين (مايزيد عن 999 مليار) المثال الآخر للأستاذ الكبير أبو هادي (لن يعرفه إلا القدامى 😅) ويشبه مثال الاخ عبدالله كثيراً ولكنه يتميز عنه بأنه ثنائي اللغة فيمكنك التفقيط باللغتين العربية والإنجليزية فلو أمكنك أستاذ موسى الإطلاع على المثالين لترى إذا ماكان بإمكانك إضافة الخيارات الإضافية التي وردت فيها لتخرج بعمل أكثر تكاملاً أمثلة للتفقيط.rar
  14. وهذا نفس الكلام الذي قلته شوف أخ @jo_2010 الحل مش صعب وانا ارفقت لك ملفك بعد التعديل إنما طريقة تصميم قاعدة البيانات مش صح TEST -2.rar
  15. بماذا يرتبط الجدول Tbl_Lab_All مع الجدول Tbl_Mobile ؟ إذا كان عن طريق إسم المريض فأنصحك التراجع من الان فمجرد إضافة همزة لإسم المريض أو تبديل التاء المربوطة بالهاء سيتم إعتباره مريض آخر لذلك من الأفضل إنشاء جدول خاص لبيانات المريض يتم فيه إدخال أي بيانات شخصية تخص المريض (رقم المريض - إسم المريض - تاريخ الميلاد - العنوان .... إلخ) ثم ربط هذا الجدول مع الجدولين Tbl_Lab_All و Tbl_Mobile بحقل رقم المريض
  16. ليس بالضرورة أي شيئ مما سبق فالمواضيع الخاصة بالمكتبة عادة تكون على سبيل الهدية من قبل العضو لبقية أعضاء المنتدى للإستفادة منها بعكس المواضيع التي يتم نشرها في المنتدى والتي تكون إما مشاكل أو إستفسارات مطلوب الرد عليها بل بالعكس قد يكون عدم التفاعل هو نتيجة لسهولة العمل بالملف وعدم الإحتياج لأي إستفسار حوله فمن خلال تجربتي مع {سلسلة الادوات المساعدة المخصصة} الخاصة بي ورغم ندرة التفاعل فيها إلا أني أجد أن الكثير قد قامو بتحميلها والاستفادة منها في تطبيقاتهم وتكون سعادتي أكبر عندما تصلني كلمات والشكر والاعجاب لاحقاً وفي مواضيع أخرى وهذا هو المردود الحقيقي الذي يبتغيه صاحب العمل أن يشعر بأن عمله له التأثير الإيجابي لدى الآخرين .
  17. لم اقصد أنك قللت من شأن العمل بل إعتقدت أني أكون قد أغفلت شيئ بدون قصد وأردت معرفته إذا كنت قد جهزت العمل في القالب ما عليك الا إستيراد الجدولين (ztblHelpSubjects و ztblHelpText) والنموذج (zfrmHelp) والوحدة النمطية (zmdlHelpFile) ولإستدعاء التعليمات المذكورة في الصورة المرفقة في ردك ستنشئ زر أمر في نموذج (بيانات الموظف) ثم قم بنسخ الصيغة المذكورة في الصورة أأدناه وألصقها في حدث النقر لهذا الزر أو أي صيغة وفقاً للخيار الذي تختاره من القائمة وتم توضيح وظيفة كل خيار في (العرض التوضيحي) وتوضيح النتيجة في المثال العملي
  18. غريب !!!! 😐 بناء على كلامك قمت بمراجعة الملف المرفق مع الاداة الذي بالإسم (مثال عملي) وأعتقد أنه قد شمل جميع النقاط التي قد تحتاجها لعمل تعليمات مخصصة فإذا كان لديك نقطة غفلت عن ذكرها في شرحي ياريت توضح ماهي أما إمكانية اللصق تكون مفعلة للمطور ويتم إلغاء تفعيلها للمستخدم النهائي ياريت ترجع وتتابع الشرح الوارد في المثال العملي بتأني وبنفس ترتيب الخطوات بدون القفز بينها شكرا للاخ @Barna على تفاعله وترشيحه للأداة لكن لدي ملاحظة جانبية (يبدو أني نسيت أن أذكرها في تعليمات الأداة) وهي أنه عندما تكون التعليمات باللعة الأنجليزية يفضل تغيير إتجاه النص من اليسار إلى اليمين كما بالصورة ليظهر بهذا الشكل تحياتي
  19. في هذه الحالة يجب على البيانات التي تريد إظهارها أن تكون في مربع نص وليس مربع تسمية إصدار الفواتير.accdb
  20. هذا الشيئ طبيعي فالبيانات تكون قليلة والأكواد مازالت في أول إصدار لها (أي أنها مثالية وفقاً للدراسة التي تمت عند التصميم) وهذا الشيئ أيضا طبيعي فأنت لا تقوم بأي عملية تطوير إلا لحل مشكلة طارئة أو تحسين وتبسيط للمهام بحسب طلب المستخدمين وأول ماستفكر به هو طالما وأن البرنامج يعمل بطريقة سليمة فسأبقي الوضع على ماهو عليه وسأقوم بإضافة بعض التعليمات البرمجية الجديدة التي من شأنها حل المشكلة التي طرأت أو تنفيذ التحسين المطلوب ولكنك وبدون أن تشعر تكون قد أضفت أعباء جديدة على البرنامج والتي تتراكم لتسبب بعض التأخير الذي يزداد مع زيادة حجم البيانات ليصبح التأخير مزعجاً. بالإضافة لما جاء ضمن رد الأخ @jjafferr فنصيحتي هنا أنه عند الوصول لهذه المرحلة فأن الأمر يتطلب منك مراجعة شاملة للبرنامج من حيث - إعادة بناء قاعدة البيانات بطريقة علمية سليمة وذلك لعدة أسباب منها - أن من ضمن الحلول التي كنت تضعها من المؤكد أنك قد تضطر لإجراء بعض التعديلات على الجداول - عند إنشاء البرنامج لأول مرة قد ترى أن هناك حقول لاتستدعي منك فصلها في جداول مستقلة ولكن مع تضخم البيانات فإن الأكواد التي تقوم بإسترجاع البيانات من هذه الحقول سيقل أداؤها لذلك سيكون من الافضل فصلها في جداول مستقلة وهذا ما سينتج عنه تسريع في الأداء - عدم التعامل مع بيانات الجدول مباشرة بل مع بيانات مفلترة منه (ماذا اقصد ؟) الان عندما تقوم بتحديد الجدول كاملاً كمصدر لبيانات النموذج او التقرير فإنه يتم تحميل جميع بياناته في كل مرة تقوم بفتح هذا النموذج او التقرير لذلك يفضل أن يتم فتح النموذج على بيانات محددة مثلاً نموذج المبيعات يفضل أن يرتبط ببيانات العام او الشهر الحالي فقط وهذا سيؤدي الى تحسن في سرعة الاداء تزداد ملاحظته مع زيادة حجم البيانات كذلك عمليات البحث كلما كانت عينة البحث اصغر كان البحث أسرع لذلك وعلى سبيل المثال عندما يكون لدينا كود يقوم باستخدام دوال تجميع المجال لإسترجاع بيانات من إستعلام يحتوي بيانات سنة مالية واحدة سيكون أداؤه اسرع من نفس الكود لو كان يبحث في الجدول ككل - تطبيق مفهوم الأرشفة مفهوم الارشفة يقوم على فصل البيانات التاريخية وإستبدالها بجداول تحتفظ ببيانات إحصائية للرجوع اليها في حال الاحتياج لها للتقارير طبعا هذا يعتمد على طريقة عمل كل شركة ورؤية المطور فإذا رأي المطور أن الاحتياج للبيانات التاريخية يقل للحد الادنى مع مرور الوقت فيمكنه اقتراح الفكرة لانشاء الية عمل تشبه آلية انشاء السنة المالية الجديدة حيث يتم فيها أرشفة البيانات التاريخية كل سنة بترحيل بيانات السنة السابقة الى قاعدة بيانات جديدة والاحتفاظ ببيانات احصائية منها (كآرصدة اول الفترة) وتصفية الجداول من جميع البيانات لتبدأ من الصفر للسنة المالية الجديدة بهذا سيظل البرنامج دائما خفيفا وسريعا - اعادة دراسة وتقييم التعليمات البرمجية من واقع تجربتي فإني أحياناُ كثيرة وأثناء مراجعتي لأكواد قديمة قمت بكتابنها في أكثر من تطبيق تكون ردة فعلي (بماذا كنت أفكر وقتها ؟؟؟) أو أضحك على بساطته وأعتقد أن الكثير منا مر بنفس التجربة وهذا شيئ طبيعي فمع مرور الوقت وتراكم الخبرة تجد أن ما كنت تعالجه بكود يحتوي عشرات الأسطر بإمكانك معالجته بكود لايتعدى العشرة أسطر كذلك الحال في الحالات التي ذكرتها في بداية كلامي فأنك قد تضطر إلى إضافة أكواد لحل مشاكل طارئة أو تبسيط مهام وتقضل إضافة الأكواد بدون مساس للاكواد الحالية وهذا قد يؤدي (وعن غير قصد) إلى مضاعفة العمل أو التعارض مع تعليمات برمجية قائمة وتحميلها بأعباء إضافية لم تنتبه لها في حينه أو إنتبهت لها ولكنك تجاهلتها إما لضيق الوقت أو لأثرها الغير ملحوظ وقتها على الاداء ومن خلال عملية إعادة دراسة وتقييم التعليمات البرمجية يمكنك إعادة كتابة التعليمات البرمجية التي يمكن إختصارها وتحسينها وهذا سيكون له الأثر الكبير في الأداء وعلى فكرة هذه العملية هي إجراء قياسي يقوم به جميع مطوري البرامج فدائماً ما يتم تنزيل تحديثات بسيطة لبرامج ويندوز تقوم بتصحيح أو إصلاح مشكلات بسيطة وفجأة نجد تحديث كبير ينتج عنه إصدار جديد كليا من البرنامج وغالبا مايكون بسبب تطوير شامل للبرنامج من حيث المظهر والوظائف تنويه - كل الملاحظات والنصائح المذكورة أعلاه هي مجرد تسليط للضوء على أهم أسباب تباطؤ تطبيقات أكسس (المرتبطة بالكائنات التابعة لأكسس) وطرق معالجتها وأريد على التأكيد على أنها لا تشمل كل الأسباب أو كل الحلول إنما هي أهم الأسباب والحلول (من وجهة نظري) يوجد أيضاً أسباب أخرى تكون مرتبطة بالشبكة والتي يكون حلها بأحد حلين (برمجي Software أو عتاد Hardware) - الحل البرمجي يقوم به المطور خصوصاً بتطبيق النصيحة الثانية المذكورة أعلاه (إستخدام البيانات المفلترة) فقد تكون المشكلة غير ملموسة عند العمل في الوضع العادي (قاعدة البيانات المحلية) ولكن يمكن أن تظهر عند العمل من خلال الشبكة لذلك سيكون من الأفضل تصفية البيانات التي يتم العمل معها إلى الحد الأدنى حتى لايتم تحميل الشبكة ببيانات إضافية لن يحتاجها المستخدم أثناء العمل. - الحل الثاني وهو مرتبط بالتجهيزات وخدمة الإتصال بالسيرفر وهذا الحل يجب أن يتم فيه إستشارة مهندسي الشبكات فهم من سيقدمون الحل الأفضل للمشكلة حيث سيكون لديهم الخبرة الكافية في أنواع التجهيزات الحديثة وأفضل أنواع الكابلات وأسرع خدمة إتصال يمكن الحصول عليها . الملاحظة التي يجب ذكرها أن الحل الثاني يعتمد إعتماداً كلياً على أداء التطبيق في الوضع العادي (قاعدة البيانات المحلية) فمن غير المعقول أن أبحث عن حل لمشكلة الشبكة والبرنامج أصلاً بطئ حتى بدون شبكة. في الأخير أرجو أن أكون قد قدمت فكرة بسيطة عن أهم مشاكل تباطؤ تطبيقات الأكسس
  21. السبب هو خيار طباعة البيانات في مربع حوار إعداد الصفحة كما بالصورة ومرفق لك الملف بعد تعديل الخيار إصدار الفواتير.accdb
  22. المشكلة لم تكن في التطبيق بل كانت في طريقة الإستخدام
  23. هذا لانك لم تحدد له قاعدة البيانات التي سيتم عمل نسخة لها ففي الوضع الحالي أنت تقول له قم بعمل نسخة من مجلد (البرامج الخاصة) الموجود في القرص D وكان يجب أن تضيف إسم قاعدة البيانات التي سيقوم بنسخها أيضاً مثال عملي إذا إفترضنا أن لدينا مجلدين Folder1 و Folder2 يقعان في القرص D ولدينا قاعدة بيانات أسمها MyDatabase بالإمتداد mdb موجودة في Folder1 ونريد إنشاء نسخ إحتياطية منها في المجلد Folder2 فيجب إدخال مايلي في حقل (مسار قاعدة البيانات) D:\Folder1\MyDataBase.mdb لاحظ أن المسار يحتوي على إسم قاعدة البيانات مع إمتدادها وفي حقل (مسار حفظ النسخة) سندخل مايلي D:\Folder2 هنا لا نحتاج لإدخال إسم قاعدة البيانات لأن البرنامج سيقوم بإعادة تسميتها بحسب التاريخ والوقت إن شاء الله يكون الشرح واضح تحياتي
×
×
  • اضف...

Important Information