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

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

قام بنشر

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
أخواني
كيف طريقة حل مشكلة دمج كودين تنبيه في حقل (رقم القطعة) ؟

*بالنسبة للكود الأول / تنبية بإن رقم القطعة غير موجود في جدول البيانات وهو Table2 إذا ادخل في الحقل بالخطاء

*بالنسبة للكود الثاني / تنبية بإن رقم القطعة مكرر تسجيلة في الجدول

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

ولا عليكم أمر,,,,,,,,!
والسلام عليكم,,,

Tabel4.rar

قام بنشر

هنا ياتي سؤال وقبل الاجابة : لماذا تمنع تكرار الكود في جدول1 ؟ فربما يستلم اكثر من مره نفس الجهاز بتواريخ مختلفة !! ام انت تريد كما طلبت وبس ؟؟

 

بالتوفيق

  • Like 1
قام بنشر

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

Dim Rs As DAO.Recordset
   Set Rs = CurrentDb.OpenRecordset("Table2")
   Rs.MoveFirst
   Do Until Rs.EOF
    If Rs!rkm_alktah = alktah Then
Exit Sub
Else
MsgBox "عفوا رقم القطعة غير مسجل لدينا"
End If
   Rs.MoveNext
   Loop
Set Rs = Nothing

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

قام بنشر

أخي /رمهان

حياك الله

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

بالنسبة إلى سؤالك ؟ 

فالقطعة المصروفة تُستخدم خلال 12 ساعة لفني واحد فقط

والقطعة الثانية تكون إحتياط

ثم يرفع تقرير يومي بها

هذا كل ما في الأمر.

قام بنشر (معدل)

علشان خاطر الاخ مارد !! اللي لحد الان مش مبين حار والا بارد !! 

هذا الكود لماطلبت ولاحظ انه قبل التحديث للنموذج الفرعي !!

Private Sub Form_BeforeUpdate(Cancel As Integer)
If DCount("*", "table1", "rkm_alktah=form!rkm_alktah") = 0 Then
Cancel = MsgBox("not found")
Exit Sub
ElseIf DCount("*", "table1", "rkm_alktah=form!rkm_alktah") = 1 And Me.NewRecord Then
Cancel = MsgBox("duplicate")
End If
End Sub

الاخ مارد : اذا تريد شرح الكود الذي رفعته مستعدين لافادتك !!

 

تحياتي

تم تعديل بواسطه رمهان
  • Like 1
قام بنشر

أخي / مارد

تسلم والله يعطيك العافية

جربة الكود عندما اضع رقم خطاء لا يحدث شئ 

وينتقل إلى سطر جديد!

يعني الكود لم يناسب حل المشكلة!

قام بنشر

علشان خاطر الاخ مارد !! اللي لحد الان مش مبين حار والا بارد !! 

هذا الكود لماطلبت ولاحظ انه قبل التحديث للنموذج الفرعي !!

 

 

هو مين مارد دا اخى الكريم رمهان ؟؟ هههههههههه

 

نحن ننهل من نبع علمك اخى الكريم

 

ابدا كل ما هنالك ان ريد ان ابحث فى الجدول عن سجل معين

عن طريق حقل مثلا رقم القطعة

ان وجد متعملش حاجة ههههههه

وان لم يوجد طلع تنبه ان الرقم غير موجود

قام بنشر

أخي / مارد

تسلم والله يعطيك العافية

جربة الكود عندما اضع رقم خطاء لا يحدث شئ 

وينتقل إلى سطر جديد!

يعني الكود لم يناسب حل المشكلة!

 

 

مع انى المفروض يطلع مسدج بعدم وجود الرقم  اخى الكريم هل لاحظت انى ابحث فى الجدول Table2وليس الجدول الاخر

 

 

المهم ان اخونا رمهان قام بالواجب وزيادة

وشكر الله هله حسن صنيعه

قام بنشر

حياك الله اخي مارد !!

لو لاحظت في الكود انه سيقوم باظهار المسج حسب عدد السجلات !! وهذا مزعج !!

كما اريدك ان تعلم ان هناك : برمجة اكسس : اي استخدام كائنات الاكسس ووظائفه فقط مع الكائن docmd وهذا يظهر في كود رمهان  وهناك برمجة قواعد البيانات بالـ  DAO  وهذا ظهر في كود مارد ! 

من الافضل في الاكسس ان نستخدم برمجة الاكسس ولا نلجأ لبرمجة ال DAO  الا في حالات خاصة !

 

تحياتي

  • Like 1
قام بنشر (معدل)

المعذرة

أخي /رمهان

طبقت الخطوات التي ذكرتها بس

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

وعند إغلاق النموذج تظهر كذلك رسالة (الكود مكرر)

ولا يتم الحفظ ,,,,!

عدلة على سطر الكود الأول من table1 إلى table2

شوف الملف المرفق !

وتسلم,,,

Tabel4up.rar

تم تعديل بواسطه goodfas
قام بنشر

اسفين !

عدل سطر ال elseif  لهذا الكود

ElseIf DCount("*", "table1", "rkm_alktah=form!rkm_alktah") = 1 And Me.NewRecord Then

بالتوفيق

قام بنشر

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

 

الشرطين من جدولين مختلفين فما تصلح elseif 

يلزم ان يكون كل شرط منفصل عن الآخر

اخونا الكريم  انظر التعديل على المرفق

اتمنى ان يحقق مطلوبك

Tabel5.rar

  • Like 1
قام بنشر (معدل)

هو خطأ مطبعي في أسماء الجداول  ! نسخت ولصقت بدون ما اغير الكود ! سهرانيين واسفين !

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

Private Sub Form_BeforeUpdate(Cancel As Integer)
If DCount("*", "table2", "rkm_alktah=form!rkm_alktah") = 0 Then
Cancel = MsgBox("not found")
ElseIf DCount("*", "table1", "rkm_alktah=form!rkm_alktah") = 1 And Me.NewRecord Then
Cancel = MsgBox("duplicate")
ElseIf DCount("*", "table1", "rkm_alktah=form!rkm_alktah") = 1 And alktah.Value <> alktah.OldValue Then
Cancel = MsgBox("duplicate")
End If
End Sub

بالتوفيق

تم تعديل بواسطه رمهان
  • Like 1
قام بنشر
هو خطأ مطبعي في أسماء الجداول  ! نسخت ولصقت بدون ما اغير الكود ! سهرانيين واسفين !

 

 مانت لوحدك  وانا معك سهران

وآسف المعلومة غير دقيقة عن elseif

وهنا تصحيح  http://www.officena.net/ib/index.php?showtopic=61333

قام بنشر

أخي /أبو خليل

حل ممتاز والله يعطيك الصحة والعافية

أنا والله سهرت معكم ثم بعدها تعبت

فنمت من اجل صلاة الفجر ودوامي بدري

ولم أنتبه إلى تعديلك إلا الآن

الله يجزأك خير.

اتعبناك معنا أخي/ رمهان

الله يعطيك الصحة والعافية

تسلمون جميعا,,,,,

  • Like 1
قام بنشر
 
 

استفسار وليس استدراك

ماذا لو جعل حقل القطعة في جدول1 مربع تحرير وسرد ومصدره حقل القطعة بالجدول2

مع شرط الالتزام بالقائمة وشرط مفهرس مع عدم قبول التكرار...

مش كان اسرع واخف؟؟؟؟

ام ان هناك خطأ بهذه الطريقة؟؟؟من يتكرم ع اخوه بالاجابة؟؟؟

  • Like 1
قام بنشر

 

 
 

استفسار وليس استدراك

ماذا لو جعل حقل القطعة في جدول1 مربع تحرير وسرد ومصدره حقل القطعة بالجدول2

مع شرط الالتزام بالقائمة وشرط مفهرس مع عدم قبول التكرار...

مش كان اسرع واخف؟؟؟؟

ام ان هناك خطأ بهذه الطريقة؟؟؟من يتكرم ع اخوه بالاجابة؟؟؟

 

 

كلام جميل جدا ! كلام صحيح لا غبار عليه !

واسمح لي باضافة : ما تم اختياره لا يظهر في القائمة !!

 

تحياتي

  • Like 1
قام بنشر

 

 
 

استفسار وليس استدراك

ماذا لو جعل حقل القطعة في جدول1 مربع تحرير وسرد ومصدره حقل القطعة بالجدول2

مع شرط الالتزام بالقائمة وشرط مفهرس مع عدم قبول التكرار...

مش كان اسرع واخف؟؟؟؟

ام ان هناك خطأ بهذه الطريقة؟؟؟من يتكرم ع اخوه بالاجابة؟؟؟

 

 

لا مش اسرع واخف 

فاستخدام لوحة المفاتيح بادخال الارقام افضل واسرع  من فتح القوائم المنسدلة ثم البحث عن القيمة المطلوبة

  • Like 1
  • أفضل إجابة
قام بنشر (معدل)

اخي الوجه الحسن !

 

هذا الكود المختصرالذي ذكرته سابقا !! وفي حدث قبل التحديث للنموذج !

Private Sub Form_BeforeUpdate(Cancel As Integer)
If DCount("*", "table2", "rkm_alktah=form!rkm_alktah") = 0 Then Cancel = MsgBox("غير موجود")
If DCount("*", "table1", "rkm_alktah=form!rkm_alktah") = 1 And (Me.NewRecord Or alktah.Value <> alktah.OldValue) Then Cancel = MsgBox("مكرر")
End Sub

وهذه فكرة اخرى 

Private Sub Form_BeforeUpdate(Cancel As Integer)
If DCount("*", "table2", "rkm_alktah=form!rkm_alktah") = 0 Then Cancel = MsgBox("غير موجود")
If DLookup("[id]", "table1", "rkm_alktah=form!rkm_alktah") <> ID Then Cancel = MsgBox("مكرر")
End Sub

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

 

تحياتي 

تم تعديل بواسطه رمهان
  • Like 1
قام بنشر

حياك الله اخي 

اذكرك فقط باختيار افضل اجابة !

تحياتي

قام بنشر

 

 

 
 

استفسار وليس استدراك

ماذا لو جعل حقل القطعة في جدول1 مربع تحرير وسرد ومصدره حقل القطعة بالجدول2

مع شرط الالتزام بالقائمة وشرط مفهرس مع عدم قبول التكرار...

مش كان اسرع واخف؟؟؟؟

ام ان هناك خطأ بهذه الطريقة؟؟؟من يتكرم ع اخوه بالاجابة؟؟؟

 

 

لا مش اسرع واخف 

فاستخدام لوحة المفاتيح بادخال الارقام افضل واسرع  من فتح القوائم المنسدلة ثم البحث عن القيمة المطلوبة

 

وكذلك مربعات التحرير والسرد حيث الادخال يدويا بل وميزة التنبؤ تكمل باقي القيمة المدخلة وبالتالي اسرع واخف ع المستخدم

واظن كلامك كان ع مربعات القوائم ^_^

وكلامك يبقى ع عيني وراسي ونحفظ لك حق الاسبقية وحق العلم وحق الاخوة يا اخي الكريم...

قام بنشر

بل اقصد مربعات التحرير

انت سألت  هل هي اسرع واخف ؟  واجبتك حسب تجربتي وعلمي انها ليست اسرع واخف

وليس للاسبقية حق  امام المعلومة فقد تكون خاطئة او على الاقل قد يوجد اجابة افضل منها  

فالسطر الاخير ليس له داع  ! هل اجابتي ازعلتك ؟ 

قام بنشر

بل اقصد مربعات التحرير

انت سألت  هل هي اسرع واخف ؟  واجبتك حسب تجربتي وعلمي انها ليست اسرع واخف

وليس للاسبقية حق  امام المعلومة فقد تكون خاطئة او على الاقل قد يوجد اجابة افضل منها  

فالسطر الاخير ليس له داع  ! هل اجابتي ازعلتك ؟ 

استاذي واخي الكريم ابوخليل:

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

وقصدي كان: حتى ولو كانت اجابتي قد تحتمل الصواب اكثر من اجابتك, فلقد علمنا اهلنا ومدرسينا ان نحترم ونوقر كل من له اسبقية او معلومة او سن علينا

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

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

المحب دوما المتقبل لكل نقد وتصحيح:راعي الغنم(ابراهيم العامري)اليمن السعيد...

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