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

استفسار في جملة Option Explicit محرر الاكواد (معدل)


السبيل1
إذهب إلى أفضل إجابة Solved by jjafferr,

الردود الموصى بها

بالنسبة للمبتدأ وعند دخوله في بحر محرر الأكواد الملىء بالقليل مما يمكن استيعابه والكثير مما يحتاج لجهد ووقت وعلم وممارسة لكي يستطيع خوض غماره في هذا البحر الواسع والعميق

مما لفت نظري كبداية ربما تكون دافعة للمزيد من وراءها إن كان هناك منهجية متدرجة لتعلم هذا العلم تعليما صحيحاً 

أستخدام البعض لهذا المقطع 

Option Compare Database
Option Explicit

واستخدام البعض الأخر

Option Compare Database

فقط دون السطر الأخر فهل لذلك سببا ما أم أن الأمر لا يفرق أرجو التوضيح من أصحاب العلم والتخصص

رابط هذا التعليق
شارك

  • أفضل إجابة

وعليكم السلام 🙂

 

المبتدئ:

يريد ان يعمل برنامج ، ويشتغل البرنامج حسب المطلوب ،

 

المحترف:

يريد ان يعمل برنامج ، ويشتغل البرنامج حسب المطلوب ،

ثم تركيزه يصب على سرعة عمل البرنامج:

  1. تجربة قاعدة البيانات على ما لا يقل عن 10,000 سجل ،
  2. عمل العلاقات بين الجداول ،
  3. عمل فهرسة الحقول في الجداول ، وذلك بفهرسة جميع الحقول التي نعمل لها فرز او تصفية ، في اي مكان في قاعدة البيانات ،
  4. عمل فهرسة لجميع المتغيرات في محرر الاكواد ، بإستخدام Dim او Private او ... لهذه المتغيرات ، وافضل طريقة لإجبار المستخدم على العمل بها ، هو إضافة السطر الثاني: Option Explicit (طبعا بالاضافة الى السطر الاول) ،
  5. استعمال الاستعلام العادي بدلا عن استعلام الكود ،
  6. الاستفادة من وجود البيانات في النموذج ، وعمل المطلوب بها ، بدل ان يطلب البيانات مرة اخرى من الجداول بأوامر مثل Dlookup واخواتها ، وذلك لتقليل الضغط على الشبكة ،
  7. عدم استعمال الاوامر Dlookup واخواتها في الاستعلام ، إلا في حالات جدا نادرة ،
  8. واكيد اني نسيت ملاحظات اخرى 🙂 

 

فالرد على سؤالك هو النقطة 4 🙂

 

جعفر

  • Like 4
  • Thanks 2
رابط هذا التعليق
شارك

ما شاء الله أستاذ @jjafferr يبدو أنك ذو علم واسع في هذا المجال ففضلا عما قدمته في هذه المشاركة القيمة أري أسمك تقريبا في كل مكان بالمنتدي

- إذا أفهم من إجابة النقطة الرابعة أن السطر الثاني لوجوده أهمية عند الفهرسة ولكن إن لم يكن للكائن ما يستدعي الفهرسة هل وجود من عدمه يحقق مصلحة ما

دعني بعد شكرك أحسن استغلال وجودك هنا وأنهل المزيد ربما لم تعد الشهادة مصوغ كامل للأحتراف فالاحتراف أصبح مصوغة الرئيسي ما يملكه الفرد من مهارات وخبرات ولا شك أن هذه المهارات والخبرات لا تأتي بين يوم وليلة بل هي طريق طويل أصعب ما فيه هو أن تعرف بدايته الصحيحة وبعد ذلك  يتوقف الأمر علي مدي التطبيق خطوة خطوة ومن هنا

أود أن استفسر منكم علي الخطوات الرئيسية المرتبة ترتيباً موضوعياً والتي ترسخ من خلالها المفاهيم والأدوات الرئيسية اللازمة لتأسيس عقلية المبرمج الناجح أو علي الأقل من يريد أن يفهم عالم الغوامض هذا بمرور الوقت والممارسة بما يتح له الاعتماد علي نفسه

تم تعديل بواسطه السبيل1
رابط هذا التعليق
شارك

45 دقائق مضت, السبيل1 said:

إذا أفهم من إجابة النقطة الرابعة أن السطر الثاني لوجوده أهمية عند الفهرسة ولكن إن لم يكن للكائن ما يستدعي الفهرسة هل وجود من عدمه يحقق مصلحة ما

 

في الكود لا يوجد عندنا كائنات ، وانما:

  1. اسماء الكائنات في النموذج (مثل Me.ID) او التقرير او الجدول او الاستعلام ، وفهرسة هذه الكائنات تأتي/تُورّث من الجداول ، وينطبق عليها المادة #3 ،
  2. اوامر (مثل Docmd او Len او Split او Dlookup او ....) ، وهذه لا تفهرس ،
  3. اسماء المتغيرات ، وهذا ما تنطبق عليه المادة #4 ، وجميعها يُفهرس.
1 ساعه مضت, jjafferr said:

4. عمل فهرسة لجميع المتغيرات في محرر الاكواد

 

 

 

45 دقائق مضت, السبيل1 said:

أود أن استفسر منكم علي الخطوات الرئيسية المرتبة ترتيباً موضوعياً والتي ترسخ من خلالها المفاهيم والأدوات الرئيسية اللازمة لتأسيس عقلية المبرمج الناجح أو علي الأقل من يريد أن يفهم عالم الغوامض هذا بمرور الوقت والممارسة بما يتح له الاعتماد علي نفسه

بالنسبة الى برمجة الاكواد ، فأفضل طريقة لتعلمها ، هي حل المشكلة على ورقة ، سطر تحت آخر ، وبالتفصيل ، ثم تعطي كل كلمة/جملة اسم متغير (واحترافيا ، يجب ان يكون هذا الاسم يدل على نوع المتغير ، مثل User_ID ، وليس U فقط) ، ويجب ان تحصل على نفس النتائج كما كتبتها باليد 🙂

 

واما عن الاوامر ، فقد قام الاستاذ @صالح حمادي بجهد مميز في هذا الموضوع: 

 

جعفر

  • Like 1
  • Thanks 1
رابط هذا التعليق
شارك

طرح مميز ودسم يستجوب الكثير والمزيد من التساؤلات والتقريب

56 دقائق مضت, jjafferr said:

النسبة الى برمجة الاكواد ، فأفضل طريقة لتعلمها ، هي حل المشكلة على ورقة ، سطر تحت آخر ، وبالتفصيل ، ثم تعطي كل كلمة/جملة اسم متغير (واحترافيا ، يجب ان يكون هذا الاسم يدل على نوع المتغير ، مثل User_ID ، وليس U فقط) ، ويجب ان تحصل على نفس النتائج كما كتبتها باليد

هل لنا بمثال عملي من أعمالكم يقرب الفهم والتصور لأمثالي

57 دقائق مضت, jjafferr said:

واما عن الاوامر

هل هذا الدرس وحده كافي أم أن هناك خطوات ضرورية ومكملة بعدها وشكرا 

تم تعديل بواسطه السبيل1
رابط هذا التعليق
شارك

في ١‏/١١‏/٢٠٢١ at 15:01, السبيل1 said:

هل لنا بمثال عملي من أعمالكم يقرب الفهم والتصور لأمثالي

اليك هذا الموضوع البسيط ،

وبدون ان ترى المشاركات ، حل السؤال على ورقة ، سطر بسطر ، واكتب النتائج ،

والآن ، ترجم نفس الخطوات الى اسطر برنامج ،

اكتب سطر ، وشوف النتيجة ، 

ثم اكتب السطر التالي ، وشوف النتيجة ، وهكذا تضيف اسطر الكود 🙂

وبعد ان يعمل برنامجك نوعا ما ، تقدر تستفيد من المشاركات ، وطبعا مو لازم كودك يكون مثل المشاركات ، هناك الف طريقة للبرمجة 🙂

 

في ١‏/١١‏/٢٠٢١ at 15:01, السبيل1 said:

هل هذا الدرس وحده كافي أم أن هناك خطوات ضرورية ومكملة بعدها

المبرمج مثل الطباخ ، عنده طرق واساليب لاستعمال نفس المكونات ، واعطاء طبخات مختلفه لها 🙂

بس يعني اذا تعلمت تطبخ بيض عيون ، تسمي نفسك طباخ ، وتكون عارف كل الطبخ ، لا طبعا !!

رحلة الالف ميل تبدأ بطبق بيض العيون 🙂

 

جعفر
 

  • Like 1
رابط هذا التعليق
شارك

1 ساعه مضت, jjafferr said:

هناك الف طريقة للبرمجة

ولكن أيهم أصح ؟ وما الأسس التي تكون بمثابة معيار لهذا الصح ؟؟ فربما يؤدي كود ما المطلوب منه حاليا ولكن في الأمام مع تعاظم البيانات مثلا تحدث مشكلة كان يمكن تلافيها من البداية إذا علمنا معيار هذا الصح ؟؟؟!

في ١‏/١١‏/٢٠٢١ at 10:34, jjafferr said:

عمل فهرسة لجميع المتغيرات في محرر الاكواد ، بإستخدام Dim او Private او ... لهذه المتغيرات ، وافضل طريقة لإجبار المستخدم على العمل بها ، هو إضافة السطر الثاني: Option Explicit (طبعا بالاضافة الى السطر الاول)

بالطبع حضرتك لم تقصر في إجابتك بل كانت مستفيضه ولكن بالبلدي كده علشان أعرف أني فهمت صح وملخبتش الدنيا

(أي نموذج أيا كان نوعه سواء مستمر أم مفرد رئيسي أم فرعي إذا توافر فيه حركة (إضافة أو تعديل أو حذف) نضع فيه هذه العبارة Option Explicit والم يكن كذلك فلا نضعها فهل ذلك صحيح)

تم تعديل بواسطه السبيل1
رابط هذا التعليق
شارك

2 دقائق مضت, السبيل1 said:

ولكن أيهم أصح ؟

حتى اذا محترف آخر يشوف الكود اللي انا عملته ، يمكن يكون عنده ملاحظه عليه ، فلا تهتم ،

فاذا الكود شغال ، انتهيت من اول واهم خطوة ، والباقي تحصل عليه بالتجربة 🙂

 

6 دقائق مضت, السبيل1 said:

بالبلدي كده علشان أعرف أني فاهم صح وملخبتش الدنيا

نضع فيه هذه العبارة Option Explicit في جميع صفحات الكود ،

ولكن ، ضعه في صفخة ، ثم Debug < Compile ،

فتظهر لك المتغيرات التي تحتاج الى عمل Dim لها ،

وتنتقل للصفحة التالية ، وهكذا .

 

جعفر

  • Like 1
رابط هذا التعليق
شارك

اذا استخدمت عبارة Option Explicit في صفحة الكود ، ولم تقم بتعرييف المتغير ،

فلما تشغل البرنامج ، تلقائيا سيعطيك رسالة خطأ ، على المتغير الذي لم يتم تعرييفه (حتى وان كان هذا المتغير في نموذج/تقرير/وحدة نمطية لا تخص النموذج الذ تم فتحه ، هو خطأ ويحذرك الاكسس عنه) ،

ولتجنب الحصول على الخطأ من البداية ، ومعرفة هذه المتغيرات الغير معرّفه ، استعمل  Debug < Compile .

 

جعفر

رابط هذا التعليق
شارك

3 ساعات مضت, السبيل1 said:

ارجو منك تكرما استاذ @jjafferr إطلاله سريعة بعين المبرمج الخبير علي موضوعي هذا لأنه يحتاج لعين مبرمج خبير وشكر

 

 

اخي الفاضل ، قوانين المنتدى لا تسمح بـ :

11. ممنوع طرح أكثر من سؤال في موضوع واحد ليسهل البحث عن المواضيع لاحقا.

12. يمنع وضع سؤال لا علاقة له بالموضوع الموضوع فيه التساؤل أو ليس له مناسبة في وضعه معه.

 

فرجاء متابعة الموضوع ، منه 🙂
 

جعفر

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information