الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حول تصميم نماذج إدخال البيانات

مغلق
بدأه المزيني في 6 أبريل 2003 · 19 رد · 1,740 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة المشرفين: لا أدري إن كنت قد وفقت في هذه المشاركة أم لا وأعني بوفقت من حيث الموضوع: مضمونه ومكان وكيفية طرحه؛ ولكم مني كل الشكر حيال ما تقومون به من نقل الموضوع أو حذفه فهذا اجتهاد مني عرضة للخطأ وقابل للتصويب.

مقدمة:

منذ فترة وأنا أقراء في أحد كتب البرمجة وقع نظري على أسطر أعجبتني فقد وافقت هوى في نفسي وأفكار أرأى بجدواها لذا أحببت أن أشرككم فيها فلعلها تنال استحسانكم وتجدون فيها الفائدة أو على الأقل تجدون فيها ما يجعلكم تُكملون قراءة جميع اسطرها.

قد يعتقد الكثير أن أعقد شيء في برمجة قواعد البيانات هو الاستعلامات التي تجمع أو تحدث عدة جداول.لكن هذا غير صحيح، فمن الممكن إنشاء نماذج متقنه تتيح لك إمكانية الوصول إلى طلبيات زبون محدد ومنها إلى تفاصيل طلبية محددة دون كتابة سطر واحد من الشيفرة. غير أنه من الصعب جداً تصميم نماذج إدخال بيانات فعالة وقوية. فبمجرد وصول البيانات إلى قاعدة البيانات، سيكون من السهل نسبياً استرجاعها، لكن يجب أن تكون برامج إدخال البيانات متأكدة من وصول المعلومات إلى مكانها الصحيح، في الوقت المناسب، وبأكملها.

وإليك النصيحة التالية حول تصميم نماذج إدخال البيانات:

أولاً: أن تكون بسيطة

لقد كتبت برامج يمكنها البحث عن السجلات اعتماداً على كل، أنواع الحقول، فقط لأكتشف أن الموظف يستخدم طريقتين فقط لإيجاد السجلات.

ثانياً: أن تدعم الطريقة التي يعمل بها مدخلي البيانات ويفضلونها

الكثير من البرامج تتيح للمستخدم اختيار المنتجات بحسب أسمائها، الكتب بحسب عناوينها، وغيرها. والحقيقة أن موظفي إدخال البيانات يعملون مع كتالوجات ويفضلون العمل مع رموز المنتجات وأرقام ISBN. إن موظفي إدخال البيانات ليسو زبائن ولا يستعرضون قاعدة البيانات، بل يصونوها.

ثالثاً: حاول نسيان الماوس:

لاتغيرالأدوات المرئية من عادة موظفي إدخال البيانات، وما يزال المستخدمون يفضلون لوحة المفاتيح على الماوس لأن أصابعهم أسرع. لقد جهزت نموذج بأقل من ساعة ثم أمضيت بقية اليوم أتأكد من صحة ترتيبTab، إتاحة المفتاح Enter في حقول معينة، تعيين مفاتيح اختصار لحقول أخرى، وغير ذلك.

باختصار، حاول نسيان الماوس. فليس هناك ما يضايق موظف إدخال البيانات أكثر من الوصول إليها. وطبعاً يجب أن تكون مفاتيح الاختصار ثابتة في كل نماذج البرنامج.

و تذكر دائماً النقاط التالية عند تصميم نماذج إدخال البيانات.

1-العمليات المعزولة: عند تصميم نماذج إدخال بيانات، اعزل كل عملية على حدة واستخدم أزراراً واضحة لبدء وإنهاء كل عملية. لإضافة سجل جديد، يجب على المستخدم نقر الزر إضافة. كما يجب عليه نقر الزر تحرير لتحرير سجل الحالي. وعندما يكون الصف الحالي قيد التحرير، يجب إلغاء تفعيل أزرار التجول، ويبقى للمستخدم خيارين فقط، إما الزر موافق أو الزر إلغاء.

2-التجول: عليك تأمين آلية مباشرة وفاعلة لإيجاد الصفوف(السجلات) عندما يضغط المستخدم المفتاح Enter في حقل فريد، عليك إيجاد السجل المطلوب. قد يطلب المستخدم أحياناً مجموعة من السجلات، مثلاً عناوين أحد الناشرين، زبائن تشترك بميزة ما(كلهم اشتروا نفس المادة خلال الربع الأخير من السنة)، وغيرها. فإذا شعرت بمثل هذه الحاجة، يجب إتاحة نموذج يستطيع المستخدم من خلاله وضع المعيار الذي يريد، استرجاع الصفوف الموافقة.

3-تجاوب مرئي: حاول تأمين نوع من التجاوب المرئي، مثل تغيير عنوان النموذج ليشير إلى العملية الحالية. يمكنك حتى أن تغير لون خلفية النموذج لتشير إلى عملية تحرير(خاصة إذا كانت هذه العملية ستؤثر على عدة صفوف). من المهم أيضاً تعيين الترتيب المناسب للمفتاح Tab لكل عناصر التحكم الموجودة على النموذج وجعل الزرين موافق و إلغاء متفاعلين مع المفتاحين Enter و Esc. إذا احتوى النموذج حقولاً لا تستخدم مع أغلبية الصفوف (كموضوع ثان اختياري)، لا تُحل هذه الحقول في ترتيب المفتاح Tab، لكن ضع مفاتيح اختصار لها للانتقال مباشرة إليها عند الحاجة. فكر أيضاً في تغيير لون صندوق النص الذي يمتلك التركيز، كإعطائه اللون الأصفر الفاتح أو الريشي(وليس لوناً صارخاً، وإنما ما يكفي للفت النظر إلى هذا العنصر).

4-التأكد من الصلاحية: حاول بقدر ماتتيح لك الشيفرة التأكد من صلاحية قيم كل الحقول، وإعلام المستخدم في حال فشل عملية ما. لا تستخدم رسائل الأخطاء المبنية داخل اللغة، بل حاول أن تضع بنفسك رسائل خطأ معبرة. فالمستخدم لا يهمه، ما إذا كان البرنامج غير قادر على تحويل نوع بيانات إلى آخر، أو غير ها من أنواع الأخطاء. ويكفي فقط رسالة تخبره أن العملية الحالية قد فشلت وتعطية الفرصة لإعادة المحاولة. وفي حال وقوع خطأ فادح. ما عليك سوى إظهار رسالة تخبر المستخدم أن البرنامج لم يتمكن من حفظ التعديلات في قاعدة البيانات ثم تعود إلى آخر صف صالح تم الوقوف عنده.

كما تعلم، يمكنك التأكد من صلاحية قيم الحقول بالطريقة الصعبة(بإنجاز كل عمليات التأكد من الصلاحية عن طريق الشيفرة البرمجية) وبالطريقة السهلة(بوضع كل ما يمكنك وضعه من قواعد التحقق من الصلاحية في تصميم قاعدة البيانات نفسها). فإذا اخترت الطريقة الثانية، عليك وضع إجراء لتصيد الخطأ قبل وقوعه ومعالجة الأخطاء المعادة من DBMS (نظم إدارة قواعد البيانات العلائقية) مثل MS ACCESS.

أخيراً: أقول أن بعض الزملاء في هذا المنتدى الرائع لديه من الخبرة في التعامل مع نماذج إدخال البيانات ما لو سطره وعبر عنه لأثرى حصيلتنا جميعاً.

وإليكم نص ما قرأت:

#2

السلام عليكم

مشاركة رائعة ونصائح قيمة جدا

نصائح تسطر بماء الذهب .

جزاك الله خيرا وبارك فيك وفي علمك ونفعنا بما تعلم .

تحياتي

:D

(f)

صورة
صورة

حسابي في الفيس بوك
http://goo.gl/XIzwL

حسابي في تويتر
http://goo.gl/6p4e3

 

 
 
#3

مجهود جميل

ولك تحياتى

خالد

#4

أخي العزيز المزيني ـ السلام عليكم.

موضوع جميل يستحق النشر والقراءة.. لكن الأجمل منه أن تتكرم علينا كلما سنحت لك الفرصة بمحاولة تطبيق بعض ما جاء في هذا المقال عن طريق بعض الأمثلة التي توضح ما جاء فيه.

مثلا تحدثت ـ أو تحدث المقال ـ عن تلوين الحقل الذي عليه التركيز.. كيف يتم ذلك ؟.

ـ من خلال فهمك لما جاء في المقال ومن خلال تجربتك هل تعتقد أن من الأولى أن يتم عمل ( نموذجين مشتابهين إلى حد التطابق النسبي ) في قاعدة البيانات ليكون أحدهما لإدخال البيانات والآخر يكون مؤمنا ومخصصا لاستعراض البيانات فقط؟.

ـ عندما أقوم بعمل زري أمر أحدهما ( موافق ) مثلا والآخر ( إلغاء الأمر ) كيف أجعل التركيز على ( موافق ) بحيث عندما أقوم بضغط ( إنتر ) يتفاعل هذا الزر مع ( ذلك الأنتر ) ؟؟ وكيف أربط ( إلغاء الأمر ) بمفتاح الهروب ( Esc )؟.

ـ ما هي العمليات المعزولة ؟

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

#5

جزاك الله خير اخي المزيني

#6

قبل قرائتي لأي شيء ... فإن هذا يجزم ويؤكد انك خيّر

ويجزاك الله خير الجزاء :)

#7

بارك الله فيك أخي/ المزيني

وفي تلك الأنامل التي سطرت تلك العبارات المفيده .

والله الموفق .

ibnmusqat.gif
#8

اكثر الله من امثالك اخي المزيني على الشرح والنصح والافادة

#9

يا مزيني باشا.. أين اختفيت؟ أسئلتي من كم يوم مطروحة أتمنى ردا. شكرا.

#10

أخي المالكي333 وجميع الأخوة:

أحب أن أؤكد على نقطة مهمة وهي إن التطرق لمثل هذا الموضوع ما هو إلا إضاءات على طريق العمل البر مجي إن جاز لنا استخدام هذه التسمية وآمل من بقية الزملاء المداخلات الإيجابية التي تضيف جديداً أو تجيب على بعض التسأولات المطروحة في هذا الموضوع فالتنوع في الطرح مطلب لنا جميعاً.

لذا فإنني سأتطرق لنقطة واحدة فقط من النقاط التي قام بطرحها أخي المالكي333 وسأترك بقية النقاط لمن شاء أن يشاركنا من الأخوة.

فيما يتعلق بعمل نموذجين أحدهما لإدخال البيانات والآخر لاستعراضها فإذا كانا متطابقين فأرى أن تكتفي بنموذج واحد وعند ما تريد التعديل تقوم بفتح النموذج وتجعل وسيطة "وضع البيانات" =التحرير و عندما تريد التعديل تقوم بفتح النموذج وتجعل وسيطة "وضع البيانات" = للقراءة فقط.

#11

أخي المزيني ( أبو مزون) : وما هي ( وسيطة "وضع البيانات" ) التي أضعها تحرير أو قراءة فقط؟؟!!. أول مرة أسمع عنها.. أرجو أن لا تكون من خصائص النموذج لأن قاعدة البيانات سيتم تحويلها إلى الإم دي إي. نريد شيئا عمليا مثل لمسة زر واحدة وينتهي الأمر. شكرا لك مجددا.

#12

الأخوة الكرام.. ما تزال الأسئلة معلقة!!..:'( :'( :'(

#13

أخي المزيني بارك الله فيك ..... ونفعنا الله بعلمك

معلومات قيمة وأنا عن نفسي استفدت منها كثيراً ...

#14

(f)(f)(f)(f)موضوع سوبر من عضو سوبر وننتظر بداية المناقشات حول تنفيذ النصائح عملياً من أجل إفادة المبتدأين أمثالي (f)(f)(f)(f)

#15

أخي المزيني.. ما زلت أنتظر الرد على مشاركتي الأخيرة أعلاه.. كيف أجعل النموذج الواحد مرة لإدخال المعلومات ومرة لتصفحها عن طريق ما أشرت إليه حول وسيطة وضع البيانات.. ما زلت لا أعرف ما هي وسيطة وضع البيانات وكيفية التعامل معها... إن لم تجب يا عزيزي سأتصرف تصرفا خاطئا!!. سأقوم بوضع السؤال في موضوع مستقل.. شكرا جزيلا.

#16

هل من مجيب؟؟!!

#17

فقد نسيت أني لم أكمل وكنت أظن أني قد أجبت على نقطة فتح نموذج في أوضاع مختلفة والتي تطرقت إليها في سياق إجابتي على النقاط التي طرحتها وكنت عندما أشاهد تسأولاتك تتكرر أظن بأنك تعني بقية النقاط والتي مازلت أتمنى أن يشارك في الإجابة عليها بقية الزملاء وعندما طرحت سؤالك في شكل موضوع مستقل عدت مرةً أخرى لأجد بالفعل أنني لم أكمل الإجابة فالمعذرة والسموحة أخي وإليك الإجابة:

مثلاً لدينا نموذج بالاسم Form1

لفتحه في وضع التحريراكتب

DoCmd.OpenForm " Form1", , , , acFormAdd

لفتحه في وضع القراءة اكتب

DoCmd.OpenForm " Form1", , , , acFormReadOnly

أتمنى أن تجد شرحاً أكثر تفصيلاً حول الطريقة OpenForm في قسم الدروس العملية وتطبيقاتها إن كان هذا الموضوع قد تطرق إليه أحد الزملاء من قبل.

أتمنى أن لايكون في الخاطر شيء ولك مني دعوت بظهر الغيب.

#18

أخي المزيني السلام عليكم.. أدعو الله تعالى أن يوفقك في دنياك وأخراك. عندما نقلت الموضوع إلى مكان آخر فمن أجل تنبيهك إليه لأنني اعتقدت نفس ما أشرت إليه يا عزيزي.

اسمح لي أنني لم أفهم ما الذي تقصد من تزويدي بكودين أعلاه أقوم بكتابة الأول ـ في ( عند الفتح ) إن صدق ظني ـ إذا أردت أن أفتح النموذج في وضع التحرير.. وأضع الآخر في نفس الخاصية إذا أردت أن أفتح النموذج في وضع القراءة فقط.. الذي فهمته الآن أنني لن أحصل إلا على إحدى الطريقتين أنا أريد أن أصل إلى الطريقتين كلتاهما أي أخصص النموذج نفسه للقراءة تارة وللكتابة تارة أخرى أو بالأحرى أوفر هذه الخدمة للمستخدم الذي لن أكون عنده للتعديل كلما لزم الأمر.. أرجو التكرم بالتوضيح أكثر ولو لزم الأمر ( يا صاحب السعادة ) يا ليت تتفضل بالإيضاح عن طريق المثال في الموضوع الجديد المتعلق بهذا الأمر.. تحياتي لك يا عزيزي.

وسيطة وضع البيانات

#19

أخي الكريم:

يمكنك وضع الكود السابق خلف أي حدث تريد تنفيذ الأمر عند حدوثه مثلاً خلف حدث عند النقر لأحد الأزرار.

ملاحظة:وسيطة وضع البيانات المقصود بها

acFormAdd للإضافة

acFormEdit للتحرير

acFormReadOnly للقراءاة فقط

acFormPropertySettings للوضع المحدد وقت تصميم النموذج

#20

ألف شكر لكل من شارك في المساهمة في الحل.. أقدر للجميع هذه الأريحية وأدعو الله تعالى أن يجعل ذلك في موازين حسناتكم.. شكرا لقد تم التوصل إلى نهاية المطاف في هذا الموضوع.. أكرر شكري الجزيل.

هذا الموضوع مغلق.

مواضيع مشابهة