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

اظهار رسالة

بدأه ismail1 في 4 أبريل 2012 · 13 رد · 1,041 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاحوة الافاضل

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

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

مرفق ملف للتعديل

db1.rar

#3
المحاسب الجديد كتب:

الرابط السابق

/index.php?showtopic=260022

اخى العزيز

انا قلت ان الاستاذة زهرة جاوبت وارشدتنى لكن اذا جربت النموذج حتلاقى يظهر الاسم بدون بياناتة كاملة وعايز يعطى لى السماح بادخال اسم جديد

وشكرا على الرد السريع

#4

اخي الفاضل

يوجد لديك الآن في الجدول 3 اسماء مع بياناتهم

post-15367-037366400 1333538144_thumb.gi

الآن نريد اضافة سجل جديد ولكنه موجود مسبقا في سجلات الجدول فقبل التحديث إن كان الإسم موجود مسبقا فستظهر لنا رساله بوجود الإسم مع بياناته وإن لم يوجد الإسم مسبقا سيتم اضافته

post-15367-050118700 1333538552_thumb.gi

اذا تم ضغط الزر ( لا ) فسيتم الغاء الإجراء

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

post-15367-061813400 1333538861_thumb.gi

post-15367-028636100 1333538890_thumb.gi

za-db1-UP.rar

بالتوفيق

المرفقات
D1.gifD2.gifD3.gifD4.gif
1
#5
اقتباس

الاحوة الافاضل

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

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

مرفق ملف للتعديل

الأخ/ ismail1

تفضل الملف

وللأمانة هو ملف الأستاذة القديرة (أم عهود) بارك الله في جهودها

ملحوظة: قبل أن أرفع الملف شاهدت مشاركة الأخت الكريمة (زهرة) أستاذة المنتدى

فعذرا ثم عذرا منك أستاذتي عند دخولي على الخط

أخي/ismail1

كنت بدأت في شرح الكود

لكن رأيت شرح الأستاذة القديرة

أتم وأوفى.

أبومحمد

za-db1-UP_PMS.rar

1
#6

بارك الله بك اخي الفاضل واستاذي العزيز : ابو محمد

على المشاركه

+1

بالتوفيق

1
#7
zahrah كتب:

بارك الله بك اخي الفاضل واستاذي العزيز : ابو محمد

على المشاركه

+1

بالتوفيق

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

#8

السلام عليكم

الاخت زهرة جزاك الله خير عندي اسئلة على هذا الكود

المرفق صورته

1) 4)ماذا يعني العبارتين داخل المستطيلين الاول والرابع

مع العلم اني حذفتهما من الكود وبقى الكود شغال تمام.

2)العبارة التي في المستطيل الثاني فهمت انه نفي النفي =اثبات معنى هنا عدم وجود عدم وجود( a )= وجود ( a)

طيب مافي مصطلح مباشر يقول وجود a والا انا فاهم خطأ ثم تظهر الرسالة طيب مصطلحات الرسالة من كلمات انكليزية

وعلامات تنصيص. هل هذة تحفظ ؟ والا نسخ ولصق؟ يعني هل تكون ثابتة تقريبا في جميع الرسائل

3) ماذا تعني العبارة في المستطيل الثالث

وكذلك عبارة Me.Undo

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

post-252239-004444400 1333566575_thumb.j

المرفقات
code.JPG

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 4 أبريل 2012 في 22:09

#9
سلامنا لكم كتب:

السلام عليكم

الاخت زهرة جزاك الله خير عندي اسئلة على هذا الكود

المرفق صورته

1) 4)ماذا يعني العبارتين داخل المستطيلين الاول والرابع

مع العلم اني حذفتهما من الكود وبقى الكود شغال تمام.

2)العبارة التي في المستطيل الثاني فهمت انه نفي النفي =اثبات معنى هنا عدم وجود عدم وجود( a )= وجود ( a)

طيب مافي مصطلح مباشر يقول وجود a والا انا فاهم خطأ ثم تظهر الرسالة طيب مصطلحات الرسالة من كلمات انكليزية

وعلامات تنصيص. هل هذة تحفظ ؟ والا نسخ ولصق؟ يعني هل تكون ثابتة تقريبا في جميع الرسائل

3) ماذا تعني العبارة في المستطيل الثالث

وكذلك عبارة Me.Undo

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

اخي الفاضل

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

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

علما انها لا تقدم ولا تؤخر فوجودها مثل عدمها ولا لها اي علاقة بكود الرساله لا من قريب ولا من بعيد .

لذا فإن الكود سيصبح بهذا الشكل بطريقة صحيحه

Private Sub Text4_BeforeUpdate(Cancel As Integer)
Dim a
Dim b

a = DLookup("[name]", "names", "[name]='" & Me![Text4] & "'")
b = DLookup("[adress]", "names", "[name]='" & Me![Text4] & "'")

If Len(a) <> 0 Then
If MsgBox(" هذا الإسم موجود من قبل " & vbNewLine & " " & " الاسم  :  " & a & vbNewLine & " " & "عنوانه  :  " & b & vbNewLine & " هل تريد اضافة اسم جديد ", vbCritical + vbMsgBoxleft + vbYesNo, "رسالة تحذيرية") = vbNo Then
Me.Undo

End If
End If
End Sub

لاحظ معي بداية الكود

قمنا بالتصريح للمتغيران a , b

تم اسناد القيم للمتغيران a , b بواسطة الدالة DLookup التي تبحث في الجدول عن الإسم الصحيح والعنوان التابع لهذا الإسم

نضع شرط ان لا يكون حقل الإسم خالي سواء كتبنا

Len(a) <> 0

او كتبنا

(Not IsNull(a

فكل هذه العباراتين تؤدي الى اننا لا نريد المتغير يكون خالي او فارغ والذي يمثل الإسم في الجدول المراد البحث عنه

الآن نأتي لنص الرساله

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

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

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

الآن في نهاية شرط الرساله نجد vbNo بمعنى اذا تم ضعط زر الأمر لا يتم الغاء الإجراء بواسطة العبارة

Me.Undo

هذه الدالة Undo تلغي اي حدث في النموذج وهو ما نعبر عنه بـ ME

الآن نغلق جميع عبارات دوال الشرط if بالعبارة

End If

اتمنى ان الصوره اتضحت لك الآن من خلال هذا الشرح المبسط للكود

بالتوفيق

1
#10

السلام عليكم

شكرا اختي واستاذتي زهرة على هذا التوضيح

وبارك الله بيك

#11

السلام عليكم

الاخت زهرة ارجو التوضيح على الكود التالي

If Nz(DLookup("[sname]", "names", "[sname]='" & Me![sname] & "'"), 0) > 0 Then

نحن نبحث على اسم في حقل الاسم في جدول الاسماء

وعلامة الاكبر "<" في الرياضيات بالعادة تخص الاعداد

وانا اعرف دالة nz ترجع الحقل الى قيمة صفر؟؟ ارجوالتوضيح

وخصوصا على علامة المتباينة "<"

رأي من عندي:

هل يعني هذا الكود التالي

اذا لايوجد اسم ( بالاحرى لايوجدحرف)ضع صفر وبالتالي هو مش اكبر من الصفر اذا لايتحقق الشرط لان مش موجود اي حرف

معنى هنا هل الدوال هنا مصممة على عدد الاحرف اما على طول الكلمة اما هي الفكرة بالضبط؟

وبالنسبة للكود التالي

If Len(a) <> 0

علامة <> تعني مساواة للصفر وكذلك هنا ابحث عن اسم .مالفكرة؟ ومايعني مختصر len ?

هل تعتبر هذة الدوال على عدد حروف الاسم ام عى طول الكلمة وتتحول كل هذا الى الرياضيات؟ مالفكرة؟

تم تعديل هذه المشاركة بواسطة سلامنا لكم في 5 أبريل 2012 في 14:27

#12
سلامنا لكم كتب:

السلام عليكم

الاخت زهرة ارجو التوضيح على الكود التالي

If Nz(DLookup("[sname]", "names", "[sname]='" & Me![sname] & "'"), 0) > 0 Then

نحن نبحث على اسم في حقل الاسم في جدول الاسماء

وعلامة الاكبر "<" في الرياضيات بالعادة تخص الاعداد

وانا اعرف دالة nz ترجع الحقل الى قيمة صفر؟؟ ارجوالتوضيح

وخصوصا على علامة المتباينة "<"

رأي من عندي:

هل يعني هذا الكود التالي

اذا لايوجد اسم ( بالاحرى لايوجدحرف)ضع صفر وبالتالي هو مش اكبر من الصفر اذا لايتحقق الشرط لان مش موجود اي حرف

معنى هنا هل الدوال هنا مصممة على عدد الاحرف اما على طول الكلمة اما هي الفكرة بالضبط؟

وبالنسبة للكود التالي

If Len(a) <> 0

علامة <> تعني مساواة للصفر وكذلك هنا ابحث عن اسم .مالفكرة؟ ومايعني مختصر len ?

هل تعتبر هذة الدوال على عدد حروف الاسم ام عى طول الكلمة وتتحول كل هذا الى الرياضيات؟ مالفكرة؟

اخي الفاضل

دعنا نأخذ الكود الأول

If Nz(DLookup("[sname]", "names", "[sname]='" & Me![sname] & "'"), 0) > 0 Then

لاحظ معي ان بداية الكود بدأ بـ اداة الشرط IF وطبعا لابد من اكمال جملة الشرط في نهاية الجملة بـ Then ( هل هذا الكلام صحيح ) نعم صحيح ولا عليه غبار ( ممتاز )

الآن نأخذ ما بعد اداة الشرط وهي الدالة NZ ( هنا مربط الفرس )

لاحظ معي ان الدالة NZ تعيد لنا قيمة عدديه مقدارها صفر اذا لم يكن هناك اي قيمه في مربع النص

بمعنى اذا كانت قيمة مربع النص ( الاسم ) خالية فبكل تأكيد ستكون قيمة مربع نص الإسم 0 ( هل هذا الكلام صحيح ) نعم صحيح 100% ( ممتاز )

نأتي الآن للدالة DLookup وهي الدالة التي تبحث في الجدول عن الإسم المطابق وتقوم بإعادته لنا

طبعا لا يوجد في الجدول حقل اسم فارغ ( خالي ) ولكن كل الإسماء موجوده

بمعنى ليس هناك مجال للدالة NZ ان تعيد لنا القيمة صفر في مربع النص

الآن لو تلاحظ طريقة عمل الأقواس فستجد ان الدالة NZ قد استحوذت على كامل العباره من اولها الى آخرها بمعنى هي المسيطره على كامل عبارة الكود

ولهذا يكون الشرط كالتالي :

اذا كان مربع نص الإسم اكبر من صفر فقم بتنفيذ الإجراء التالي

اتمنى ان الصوره اتضحت لك الآن لأن سبب استخدامنا لـ NZ ثم وضعنا في نهاية الكود 0 < للدالة على اننا نريد من اداردة الشرط IF التأكد التام انه لا تعود لنا قيمه خالية او 0

نأتي الآن للكود الثاني

If Len(a) <> 0

كما تعلم ان دالة Len تقوم بعد الحروف في مربع النص فمثلا لو وضعت مربع نص به اسم zahrah ثم استخدمت دالة Len فستظهر لك عدد الحروف في النص وهي 6 ( سته احرف )

ولهذا نستخدم اداة الشرط IF للتأكد ان مربع النص ليس خالي ( لا يساوي صفر ) ولذا نستخدم التعبير <> ويعني ( لا يساوي )

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

بالتوفيق

3
#13

السلام عليكم

اقتباس
ولهذا يكون الشرط كالتالي :

اذا كان مربع نص الإسم اكبر من صفر فقم بتنفيذ الإجراء التالي

هنا مرابط الخيول:

معنى ذلك ( عدد احرف الاسم فى النص اكبر من الصفر)

معنى ذلك هذة الدوال تتعرف على الاسم في مربع النص على انه عدد من الحروف.

ارجو موافقتي على الراي ام لا.

واعذريني اخت على اسألتي الكثيرة

ومشكورة

#14
سلامنا لكم كتب:

السلام عليكم

هنا مرابط الخيول:

معنى ذلك ( عدد احرف الاسم فى النص اكبر من الصفر)

معنى ذلك هذة الدوال تتعرف على الاسم في مربع النص على انه عدد من الحروف.

ارجو موافقتي على الراي ام لا.

واعذريني اخت على اسألتي الكثيرة

ومشكورة

نعم اخي الكريم هو كذلك

لأننا استخدمنا الدالتين NZ و LEN في الكود

بالتوفيق

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