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

[ تمت الإجابة ] سؤال عن طريقة صياغة الكود المرفق - وبيان المتغيرات المثبته به.

بدأه hamada ziad في 20 ديسمبر 2010 · 6 رد · 580 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخوكم \ محمد

من مصر

محاسب بادارة النظم والمعلومات فى احد الشركات التى تعمل

فى مجال الماركت.

خبرتى فى مجالى قواعد البيانات لا يتعدى الاشهر ولكن

اغرمت بهذا المجال جدا وستهوانى بحث واطلاعا.

وقمت بمحاولات عديده حتى ادركت بعد الفهم فى بناء القواعد

وكل هذا من من خلال متابعة مشاركات الاعضاء

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

حتى لا اطيل .

اقوم ببناء قاعدة بيانات تساعدنى فى امور عديده

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

علما بانى (( اعمل بقاعدة كاملة وكبيره خاصه بالعمل))

ولكن اريد هذه القاعده خاصة بى.

....................................................................................

وذلك عن طريق تعريف الاصناف - وبيانتها

تقسم المخزن الى اقسام ومجموعات

نقل البضاعة من المخزن الى الفروع والعكس عن طريق اذون صرف - وتوريد بضاعه.

قمت بتصميم كل هذه الجداول - والاستعلامات الخاصه بها - والنماذج الخاصة بالادخال.

ولكن اريد بيان صغير لهذا الكود

الذى يتوقف عليه بناء اذن التوريد من حيث الاصناف .

التى تم تعريفها مسبقا فى بيانات الاصناف.

بحيث يتم كتابة كود الصنف فى خانة الكود فيقوم بستدعاء باقى بيناته فى اذن التوريد - الصرف

من السجل الخاص به من جدول بيانات الاصناف.

Private Sub كود_الصنف_AfterUpdate()

[بيان الصنف] = DLookup("[Name]", "Names", "Number=[كود الصنف]")

[بيان الصنف] = DLookup("[Name]", "Names", "Number=[كود الصنف]")

[unit price] = DLookup("[unit price]", "Names", "number=[كود الصنف]")

[unit] = DLookup("[unit]", "Names", "number=[كود الصنف]")

If IsNull(DLookup("[number]", "names", "[number]='" & [كود الصنف] & "'")) Then

MsgBox " هذا الكود غير موجود بدليل أصناف المخازن ", vbCritical

Cancel = -1

End If

End Sub

برجاء بيان صيغة هذا الكود والمتغيرات الموجود به

حت استفيد به فى القاعده الخاصه بى

وهذا لختلاف مسميات الجداول - و النماذج فى الكود الموضح

عنها فى القاعده الخصة بى.

وجزاكم الله خيرا.

تم تعديل هذه المشاركة بواسطة hamada ziad في 20 ديسمبر 2010 في 19:58

#2

ارفق مثال اخى الكريم حتى يتم التعديل عليه

لست بحاجة لكل هذه الدوال

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

واذا لم تجدها فانها تعيد null اي قيمة خالية و عليك التعامل معها حتى لا يتوقف البرنامج

#3

شكرا اخى على الاهتمام

ولكن مايهمنى هو فهم الكود

وليس حل المشكلة

حيث ان معظم افكارى فى هذه القاعده

سوف يتوقف على نفس المشكلةا لمتعلقة بالكود

وان كان يصعب على فهمه كمبتدء.

برجاء توضيح بديل لعمل الكود.

وهو استدعاء البيانات الخاصة بالصنف

عن طريق الكود الخاص به

فى اذن - او فاتورة..

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

#4

العملية سهلة باذن الله

و ان كانت لن تكتمل بدون ارفاق مثال

من اليسار لليمين

1- دالة البحث dlookup

2- الحقل الاول من اليسار بين قوسين مربعين / هوالحقل المطلوب ارجاع قيمته

3- الحقل الاوسط / اسم الجدول او الاستعلام

4- الحقل الاخير هو الشرط

مثال :

الدالة الاولى في مشاركتك

تعيد هذه الدالة الاسمname من جدول الاسماء names عندما الرقم يساوي كود الصنف

و هكذا باقى الدوال

* ابحث فى تعليمات اكسس تجد شرح وافى باللغة العربية و امثلة عن الدالة dlookup

تم تعديل هذه المشاركة بواسطة tbazh في 20 ديسمبر 2010 في 20:50

#5

بداية اهلا بك اخي hamada ziad في المنتدى

قبل ان اشرح لك معنى الكود الذي ارسلته

افضل ان ابين ما هي الدالة dlookup

DLOOKUP: هي داله تستدعي قيمة واحدة او اكثر موجودة في حقل واحد و في جدول واحد ..و تكتب كالتالي

Dlookup("FeildName","TableName","Condition")

و من صيغة الدالة فانها تحتاج الى 3 Parameters (اسم الحقل, اسم الجدول, الشرط)

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

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

ملاحظه هامة: يجب وضع اشارتي التنصيص المزدوجة "" بين كل parameter

ناتي الان الى الكود الذي ارسلته:

Private Sub كود_الصنف_AfterUpdate()
[بيان الصنف] = DLookup("[Name]", "Names", "Number=[كود الصنف]")
[بيان الصنف] = DLookup("[Name]", "Names", "Number=[كود الصنف]")
[unit price] = DLookup("[unit price]", "Names", "number=[كود الصنف]")
[unit] = DLookup("[unit]", "Names", "number=[كود الصنف]")
If IsNull(DLookup("[number]", "names", "[number]='" & [كود الصنف] & "'")) Then
MsgBox " هذا الكود غير موجود بدليل أصناف المخازن ", vbCritical
Cancel = -1
End If

* الاحظ انه تم تكرار السطر الاول لذلك لاداعي له فيصبح الكود:

Private Sub كود_الصنف_AfterUpdate()
[بيان الصنف] = DLookup("[Name]", "Names", "Number=[كود الصنف]")
[unit price] = DLookup("[unit price]", "Names", "number=[كود الصنف]")
[unit] = DLookup("[unit]", "Names", "number=[كود الصنف]")
If IsNull(DLookup("[number]", "names", "[number]='" & [كود الصنف] & "'")) Then
MsgBox " هذا الكود غير موجود بدليل أصناف المخازن ", vbCritical
Cancel = -1
End If

في السطر الاول يقوم بالبحث عن قيمة في الحقل Names في الجدول Names عندما Number في جدول ال Names يساوي قيمة الحقل [كود الصنف] الموجودة في النموذج و يضع هذه القيمة في الحقل [بيان الصنف] الموجود في النموذج

و هكذا في السطر الثاني و الثالث

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

ارجو ان يكون هذا شرح مفيد لما تريده

مع عذري لاخي tbazh لم الاحظ رده قبل ردي

#6

بارك الله فيك اخي اياد

كفيت ووفيت

شرح كافى ووافي بصراحة

مشكووووووووووووووووووووووور جدا

#7

والله العظيم يعجز اللسان عن البيان

شكرا اخوانى على المساعده وسرعة التلبيه

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

جزا الله خير الاخ \tbazh

وجزا الله خير الاخ \ اياد دهشان.

جزاكم الله خيرا على الشرح الوافى

وعلى الاهتمام.

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

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

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

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

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