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

فائدة أختر بند من القائمة أو أدخل رقم والتزام بالقائمة نعم

مغلق
بدأه ابوحمود في 27 سبتمبر 2001 · 13 رد · 945 مشاهدة · في مراجعة المواضيع
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الحل في حدث عند عدم الوجود في القائمة ضع الكود التالي مع تعديل الأسماء :

Response = acDataErrContinue

If IsNumeric(NewData) Then

If CLng(NewData) <= DMax("[حقل الترقيم التلقائي]", "اسم الجدول") Then

Me![اسم القائمة على النموذج] = DLookup("[حقل الترقيم التلقائي]", "اسم الجدول", "[حقل الترقيم التلقائي]= " & NewData)

DoCmd.GoToControl "الحقل التالي"

Else

MsgBox "هذا الرقم غير موجود في جدول (اسم الجدول) ." & vbCrLf _

& "اختر أحد البنود من القائمة .", vbMsgBoxRight + vbMsgBoxRtlReading + vbCritical

Me![اسم القائمة على النموذج].Dropdown

End If

Else

MsgBox "القيمة التي أدخلتها غير صالة للحقل ." & vbCrLf _

& "اختر أحد بنود القائمة .", vbMsgBoxRight + vbMsgBoxRtlReading + vbCritical

Me![اسم القائمة على النموذج].Dropdown

End If

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

صنف 1 الترقيم التلقائي 1

صنف 2 الترقيم التلقائي 2

صنف 3 الترقيم التلقائي 3

صنف 1 الترقيم التلقائي 4

صنف 1 الترقيم التلقائي 5

والقائمة تأخذ البيانات من هذا الحقل والعمود المنضم هو حقل الترقيم التلقائي فإذا وضعت في القائمة رقم 1 فمعناه أنك اخترت الصنف رقم واحد وإذا وضعت 2 فمعناه أنك اخترت الصنف رقم 2 وهكذا ولكن إذا وضعت رقم 4 فمعناه أنك اخترت الصنف رقم واحد وهذا قد يسبب لك مشاكل فيما بعد والأصح هنا أنه إذا كان يوجد لديك جدول أصناف يعني اسم الصنف ورقمه أن تكون البيانات منه فهذا بلا شك أفضل .

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

وللجميع تحياتي

#2

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

ولك تحياتي

#3

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

#4

الأخ محمد

أشكرك على عرضك واكتب بريدك لأرسل عليه الملف .

ولك تحياتي

#5

رائع يا أخى الحبيب ابوحمود

هذه الفكرة " مدوخانى من فترة " :)

جزاك الله خيراً

طبقتها فعلا رغم جهلى بكثير من محتويات نص الكود و لكن نجحت إلا فى السطر

Me![اسم القائمة على النموذج] = DLookup("[حقل الترقيم التلقائي]", "اسم الجدول", "[حقل الترقيم التلقائي]= " & NewData)

حيث اظهر لى DEBUG عند هذا السطر و الحقيقة اعتقد ان سببها هو عدم وضوح عبارة " اسم " الموجودة بعد DLookup

فلم اعرف اسم ماذا ؟ و لكنى جربت و وضعت اسم الجدول الذى سيتم القراة منه

و لكن ظهرت الرسالة السابقة

خالص شكرى و تقديرى

كما ارجو ان اكون وفقت فى عرض المشكلة

تقبل تحيات

أخــــBengaــــوك

قال أبن القيم : أكثروا من الخير فينتشر .. و أقلوا من الشر فيندثر ..

#6

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

والعبارة لا يوجد فيها "اسم" فبعد DLookup ثم القوس يأتي اسم حقل الترقيم التلقائي في الجدول ثم فاصلة ثم اسم الجدول ثم فاصلة ثم عبارة الشرط وهي هنا اسم حقل الترقيم التلقائي في الجدول يساوي القيمة الجديدة .

ملاحظة انسخ العبارة كاملة وألصقها في الوحدة النمطية قبل أن تحاول تغيير المسميات وسترى العبارة قد ظهرت بشكل واضح .

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

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

عموما بعد المحاولة اكتب بريدك لأرسل لك الملف .

ولك تحياتي

#7

الإخوة الإفاضل :

مثال الأخ أبو حمود على الوصلة التالية :

http://mypage.ayna.com/harith77/NumChoose.zip

جزاه الله عنا كل خير .

#8

الأخوة

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

http://mypage.ayna.com/h_h123/BnodList.zip

وللجميع التحية

#9

السلام عليكم ورحمة الله

أستاذي/ أبو حمود

دائمأً تواجهني مشكلة في تنزيل الأمثله ،

وحسب ما أتضح لي من خلال محاولة تنزيل الأمثلة من المواضيع المختلفة، أنه لايمكن إنزالها إلا بعد مضي أيام من وضعها

وهذا ما أستغربه ولعلي أكون مخطىء.

على كل حال أرجو أن تتفضل بالصبر على والتكرم بإرسال الملف إلى بريدي.

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

ibnmusqat.gif
#10

الأخ ابن مسقط

ارسلت الملف على بريدك .

ولك تحياتي

#11

أخي إبن مسقط

لتنزيل الأمثلة بدون مشاكل إن شاء الله

أشر بواسطة زر الماوس الأيمن عند المثال ستظهر لك شاشة فرعية أشر إلى أمر (حفظ الهدف بإسم) إحفظ المثال عندك بالجهاز

إذا واجهتك مشاكل أرسل لي

#12

السلام عليكم ورحمة الله

أستاذي / أبو حمود

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

أخي / محسن محمد

شكرا على نصيحتك ، مع العلم بأني أستخدم الطريقة التي ذكرتها من قبل وبدون جدوى.

حيث تظهر رسالة مفادها ان الاكسبلورر غير قادر على فتح الموقع، قد يكون السبب عدم وجود الملف أو عدم القدرة على إيجاده. (العبارة ترجمة لنص الرسالة التي تظهر لي)

ولك مني خالص التقدير والإحترام.

ibnmusqat.gif
#13

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

bnodList.zip

من الوصلة التي ذكرتها :

http://www.mypage.ayna.com/h_h123/BondList.zip

وبعد فك الملف و عند تشغيل القاعده ظهرت رساله من أكسس :

Unrecognized database formate

و كثيرا ما تظهر هذه الرساله في مثل هذه الظروف و ليس عندي حل لها و تضيع علي كثير من الفوائد . فهل هذا بسبب أن أكسس عندي هو 97 بينما قواعد البيانات الوارده أنشئت في أكسس 2000 ؟

إذا كان هذا هو السبب فهل من حل لحين التحديث إلي 2000 ؟

شكرا لتفضلك بألإجابه .

محمود إبراهيم

#14

الأخ محمود إبراهيم

ما ذكرته صحيح فهي معمولة على أكسس 2000 أو أكسس 2002 وأرجح الأول أكثر (أنا كثير النسيان) .

اكتب بريد وسوف أرسل لك نسخة محولة إلى أكسس 97 .

ولك تحياتي

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…