Ahmed_J قام بنشر فبراير 26 قام بنشر فبراير 26 (معدل) السلام عليكم لدي ملف لوصف الوظائف يحتوي على جدولين (الاول) tp1 وفيه معلومات الموظف (الاسم والدرجة) والجدول (الثاني) tp2 فيه الدرجة الوظيفية والعتوان الوظيفي المطلوب: عند تغيير الدرجة الوظيفية في النموذج واختيار عنوان وظيفي جديد من القائمة المنسدلة يجب ان يكون مطابق للعنوان الوظيفي والدرجة الموجودة في الجدول tp2 واظهار رسالة بذلك اما في حالة عدم التطابق اظهار رسالة بوجود خطا (العنوان الوظيفي لايتطابق مع الدرجة) وشكرا Test-1.accdb تم تعديل فبراير 26 بواسطه Ahmed_J
ناقل قام بنشر فبراير 26 قام بنشر فبراير 26 29 دقائق مضت, Ahmed_J said: لمطلوب: عند تغيير الدرجة الوظيفية في النموذج واختيار عنوان وظيفي جديد من القائمة المنسدلة يجب ان يكون مطابق للعنوان الوظيفي والدرجة الموجودة في الجدول tp2 واظهار رسالة بذلك جرب هذا ..... Private Sub B_BeforeUpdate(Cancel As Integer) If DLookup("[العنوان الوظيفي]", "[TP1]", "[ID] =" & [Forms]![form1]![ID] & "") = [Forms]![form1]![B] Then MsgBox "نعم" Else MsgBox "لا" End If End Sub 1
Ahmed_J قام بنشر فبراير 26 الكاتب قام بنشر فبراير 26 (معدل) السلام عليم استاذي العزيز فيه اخطاء لم يجد الا عنوان وظيفي واحد صحيح فقط والكود لايوجد فيه بحث في الجدول tp2 اريد المقارنة بين حقل العنوان الوظيفي في النموج والعناوين الوظيفية في الجدول tp2 تحياتي تم تعديل فبراير 26 بواسطه Ahmed_J
Foksh قام بنشر فبراير 26 قام بنشر فبراير 26 مشاركة مع الأستاذ @ناقل ، جرب هذه الفكرة أستاذ @Ahmed_J Private Sub B_AfterUpdate() Dim db As DAO.Database Dim rs As DAO.Recordset Dim strSQL As String Dim selectedDegree As Long Dim selectedTitle As String selectedDegree = CLng(Me.A.Value) selectedTitle = Me.B.Value strSQL = "SELECT * FROM tp2 WHERE GradeNo = " & selectedDegree & " AND [الوظائف الهندسية] = '" & selectedTitle & "';" Set db = CurrentDb Set rs = db.OpenRecordset(strSQL) If rs.EOF Then MsgBox "العنوان الوظيفي لا يتطابق مع الدرجة المحددة.", vbExclamation, "خطأ" End If rs.Close Set rs = Nothing Set db = Nothing End Sub 1
ناقل قام بنشر فبراير 26 قام بنشر فبراير 26 39 دقائق مضت, Ahmed_J said: لم يجد الا عنوان وظيفي واحد صحيح فقط والكود لايوجد فيه بحث في الجدول tp2 اريد المقارنة بين حقل العنوان الوظيفي في النموج والعناوين الوظيفية في الجدول tp2 هل الدرجة المقصودة هي المشار اليها في الصورة .... ولماذا الاختيار اذا كانت هي الدرجة ؟؟؟؟ لماذا لاتجعلها تظهر العنوان الوظيفي تلقائيا عند تحديد الدرجة ؟؟ 1
Ahmed_J قام بنشر فبراير 26 الكاتب قام بنشر فبراير 26 (معدل) السلام عليكم استاذ @ناقل شكرا لك للمتابعة نعم بالضبط (cradeno) هي تساوي الدرجة الوظيفية بالنموذج يعني مثلا يوجد بالدرجة (2) عنوان رئيس مهندسين اقدم و مدير اقدم وهكذا استاذ @Foksh شكرا للمتابعة الملف يعمل فقط على الوظائف الهندسية انا لدي بالاصل عناوين كثيرة والجدول كبير جدا ولا مانع من تغيير طريقة تصميم الجدول لو وجد الحل تحياتي تم تعديل فبراير 26 بواسطه Ahmed_J
ناقل قام بنشر فبراير 26 قام بنشر فبراير 26 10 دقائق مضت, Ahmed_J said: انا لدي بالاصل عناوين كثيرة والجدول كبير جدا ولا مانع من تغيير طريقة تصميم الجدول لو وجد الحل والعناوين كما في الجدول بجوار بعض ... صح ولكن كيف تميز بين المعين على وظيفة هندسية أو ادرارية وغيرها .... 1
Foksh قام بنشر فبراير 26 قام بنشر فبراير 26 5 دقائق مضت, Ahmed_J said: السلام عليكم استاذ @ناقل شكرا لك للمتابعة نعم بالضبط (cradeno) هي تساوي الدرجة الوظيفية بالنموذج يعني مثلا يوجد بالدرجة (2) عنوان رئيس مهندسين اقدم و مدير اقدم استاذ @Foksh شكرا للمتابعة الملف يعمل فقط على الوظائف الهندسية انا لدي بالاصل عناوين كثيرة والجدول كبير جدا تحياتي ما تم تنفيذه بناءً على طلبك ، وضح أكثر حتى نستفيد من التجارب التي تتم 1
Ahmed_J قام بنشر فبراير 26 الكاتب قام بنشر فبراير 26 (معدل) اساتذتي الاعزاء شكرا لكم استاذ @Foksh يوجد الكثير من العناوين الوظيفية انا اخترت القليل منها لسهولة الامر الكود تبعك يعمل بصورة جيدة على الوظائف الهندسية ولايعمل على الوظائف الادارية استاذ @ناقل يتم تميز ذلك من خلال كتاب التعيين والشهادة الحاصل عليها علما بان لاتهمني العناوين سواء ارقام كانت ام حروف او اي عنوان اخر للحقل تحياتي تم تعديل فبراير 26 بواسطه Ahmed_J
ناقل قام بنشر فبراير 26 قام بنشر فبراير 26 2 ساعات مضت, Ahmed_J said: استاذ @Foksh يوجد الكثير من العناوين الوظيفية انا اخترت القليل منها لسهولة الامر الكود تبعك يعمل بصورة جيدة على الوظائف الهندسية ولايعمل على الوظائف الادارية استاذ @ناقل يتم تميز ذلك من خلال كتاب التعيين والشهادة الحاصل عليها علما بان لاتهمني العناوين سواء ارقام كانت ام حروف او اي عنوان اخر للحقل لاحظ معي هل تنفعك هذه الطريقة ...... 1
Ahmed_J قام بنشر فبراير 27 الكاتب قام بنشر فبراير 27 السلام عليكم استاذ @ناقل المحترم انا اعرف هذه الطريقة ولدي ملف خاص بها انا اردت فقط التاكد كيف يمكن تدقيق العنوان والدرجة في النموذج من خلال الجدول تحياتي لك استاذ بارك الله فيك 1
ناقل قام بنشر فبراير 27 قام بنشر فبراير 27 منذ ساعه, Ahmed_J said: انا اردت فقط التاكد كيف يمكن تدقيق العنوان والدرجة في النموذج من خلال الجدول تحياتي لك استاذ طيب استاذي الفاضل انظر المرفق ربما يوحي لك الفكرة التى اردت ايصالها لك .... Test-1.accdb 1
Ahmed_J قام بنشر فبراير 27 الكاتب قام بنشر فبراير 27 (معدل) السلام عليكم شكرا لك كثيرا استاذ @ناقل لقد تعبتك معي كثيرا السبب ان هذه الطريقة لاتناسب عملي هو ان بعض الموظفين عندنا يمكن ان تكون درجته بالراتب اعلى من عنوانه الوظيفي هذا ملفي بنفس طريقتك والله فكرة جديدة لسه ماعندي تحياتي Test-1.accdb تم تعديل فبراير 27 بواسطه Ahmed_J
Eng.Qassim قام بنشر فبراير 27 قام بنشر فبراير 27 مرحبابك استاذ @Ahmed_J هناك اشكالية ادارية في ملفك ...وهو انه ليس بالضرورة ان تكون درجة خبير او معاون مدير عام بالدرجة الاولى انا مثلا ..منذ 3 سنوات في الدرجة الاولى (رئيس مهندسين اقدم)...اما معاون مدير عام فيكون بالتعيين من قبل المسؤول وليس له علاقة بالخدمة رأيي ان يتم اختيار العنوان الوظيفي يدويا من خلال مربع التحرير وحسب الاوامر الادارية وليس برمجيا تحياتي لك 1
Ahmed_J قام بنشر فبراير 27 الكاتب قام بنشر فبراير 27 (معدل) السلام علكم استاذ قاسم @Eng.Qassim ان شاء الله تكون بخير 27 دقائق مضت, Eng.Qassim said: هناك اشكالية ادارية في ملفك ...وهو انه ليس بالضرورة ان تكون درجة خبير او معاون مدير عام بالدرجة الاولى انا مثلا ..منذ 3 سنوات في الدرجة الاولى (رئيس مهندسين اقدم)...اما معاون مدير عام فيكون بالتعيين من قبل المسؤول وليس له علاقة بالخدمة رأيي ان يتم اختيار العنوان الوظيفي يدويا من خلال مربع التحرير وحسب الاوامر الادارية وليس برمجيا تحياتي لك انا اعرف كل هذا وخصوصا انا موظف قديم انا بالاصل في ملف عملي عامل حقل نصي وادخل العنوان الوظيفي بصورة يدوية وادققه مع جدول ورقي للعناوين لكن لدي فكرة هي ان اقوم بعمل جدول في الاكسس لكل العناوين الوظيفية حسب الدرجة والعنوان الوظيفي المعتمد وعندما ادخل اي عنوان وظيفي لاي موظف بصورة يدوية بالنموذج بقوم بالتدقيق مع الجدول الاصلي للعناوين وتظهر رسالة هل العنوان يقع في نفس الدرجة ام لا (يعني مطابق او غير مطابق) هل فهمت قصدي وفكرتي تحياتي تم تعديل فبراير 27 بواسطه Ahmed_J
ابوخليل قام بنشر فبراير 27 قام بنشر فبراير 27 تفضل حسب فهمي Dim i, ii As String i = Nz(DLookup("txt_h", "TP2", "GradeNO=" & Me.A), "") ii = Nz(DLookup("txt_e", "TP2", "GradeNO=" & Me.A), "") If Me.B <> i And Me.B <> ii Then MsgBox "البيانات غير متطابقة" Undo Exit Sub End If Test-11.rar 1
Ahmed_J قام بنشر فبراير 28 الكاتب قام بنشر فبراير 28 (معدل) السلام عليكم استاذ @ابوخليل شكرا لك الكود شغال تمام ولكن المشكلة هي ان رؤوس الاعمدة كثيرة بحدود 20 وليس فقط txt_h و txt_e هل نكرر الدالة DLookup عشرون مرة ؟ ام هنالك حل آخر ؟ تحياتي تم تعديل فبراير 28 بواسطه Ahmed_J
Foksh قام بنشر فبراير 28 قام بنشر فبراير 28 اسمح لي بمداخلة لولبية أستاذ @Ahmed_J ، طبعاً بعد إذن معلمي @ابوخليل يمكننا استخدام حلقة تكرارية تقوم بالتحقق من قيمة Me.B في كل سجل دون حاجتنا الى تحديد اسماء الحقول أو رؤوس الأعمدة ، كمثال يمكن أستخدام حلقة For Each كما في الكود التالي ,, Dim i As Integer Dim fieldName As Variant Dim fieldValue As Variant For Each field In CurrentDb.TableDefs("TP2").Fields fieldName = field.Name fieldValue = Nz(DLookup(fieldName, "TP2", "GradeNO=" & Me.A), "") If Me.B <> fieldValue Then MsgBox "البيانات غير متطابقة" , , "" Undo Exit Sub End If Next field قم بالتجربة حسب تصميمك وأبلغني بالنتيجة 1
Ahmed_J قام بنشر فبراير 28 الكاتب قام بنشر فبراير 28 السلام عليكم استاذ @Foksh شكرا للمتابعة تظهر رسالة خطا كما في الصورة
Foksh قام بنشر فبراير 28 قام بنشر فبراير 28 طيب ، خلينا نجرب تضييق النطاق في الحصول على اسماء الحقول Dim rs As DAO.Recordset Dim field As DAO.Field Set rs = CurrentDb.OpenRecordset("SELECT * FROM TP2 WHERE 1=0") For Each field In rs.Fields fieldName = field.Name fieldValue = Nz(DLookup(fieldName, "TP2", "GradeNO=" & Me.A), "") If Me.B <> fieldValue Then MsgBox "البيانات غير متطابقة" Undo Exit Sub End If Next field rs.Close Set rs = Nothing
Ahmed_J قام بنشر فبراير 28 الكاتب قام بنشر فبراير 28 السلام عليكم استاذ @Foksh تظهر رسالة على كل الاختيارات ان البيانات غير متطابقة Test-1.accdb
Foksh قام بنشر فبراير 28 قام بنشر فبراير 28 أستاذ @Ahmed_J ، خليني افهم حبة حبة لأن احياناً استيعابي يكون بطيء حبتين بعد الأكل .. هالحين انت محتاج من تختار من القائمة B يروح يعمل بحث في كل الحقول - حتى لو عددهم 50 - اللي سجلها رقمه يطابق GradeNo في القائمة A . انا عملت الـ GradeNo رقم 8 يساوي كاتب في الحقلين باعتبار وجود أكثر من حقل في الجدول . وعند اختيار رقم 8 من النموذج من A وتختار اي اختيار في B غير كاتب رح تكون النتيجة انه عدم تطابق في البيانات .. ومن تختار كاتب ما رح يظهر رسالة . الحين هذا اللي انا دخت وأنا أشرحه صحيح ولا لا سمح الله غلط . هذا الكود اللي خرجت فيه بالنهاية ، والمرفق أسفله :- Private Sub B_AfterUpdate() Dim db As DAO.Database Dim rs As DAO.Recordset Dim sql As String Dim found As Boolean Dim field As DAO.field found = False Set db = CurrentDb sql = "SELECT * FROM TP2 WHERE GradeNo = " & Me.A Set rs = db.OpenRecordset(sql) If Not rs.EOF Then found = True rs.MoveFirst For Each field In rs.Fields If field.Name <> "GradeNo" And field.Value <> Me.B Then found = False Exit For End If Next field End If rs.Close If found Then MsgBox "بيانات متطابقة", , "" Else 'If Not found Then MsgBox "بيانات غير متطابقة", , "" End If End Sub Test-1.accdb 3
Ahmed_J قام بنشر فبراير 28 الكاتب قام بنشر فبراير 28 (معدل) استاذ @Foksh والله انا تعبتك معي كثير الله يباراك فيك 21 دقائق مضت, Foksh said: خليني افهم حبة حبة لأن احياناً استيعابي يكون بطيء حبتين بعد الأكل .. هالحين انت محتاج من تختار من القائمة B يروح يعمل بحث في كل الحقول - حتى لو عددهم 50 - اللي سجلها رقمه يطابق GradeNo في القائمة A . انا عملت الـ GradeNo رقم 8 يساوي كاتب في الحقلين باعتبار وجود أكثر من حقل في الجدول . وعند اختيار رقم 8 من النموذج من A وتختار اي اختيار في B غير كاتب رح تكون النتيجة انه عدم تطابق في البيانات .. ومن تختار كاتب ما رح يظهر رسالة كلامك كله صحيح وشرحك للموضوع تمام المشكلة هي دون حاجتنا الى تحديد اسماء الحقول أو رؤوس الأعمدة فقط اريد ان اوضح ان العنوان لايتكرر في حقل آخر مثل (كاتب) تحياتي تم تعديل فبراير 28 بواسطه Ahmed_J
Foksh قام بنشر فبراير 28 قام بنشر فبراير 28 5 دقائق مضت, Ahmed_J said: المشكلة هي دون حاجتنا الى تحديد اسماء الحقول أو رؤوس الأعمدة هذه انتهينا منها المفروض ,, 5 دقائق مضت, Ahmed_J said: فقط اريد ان اوضح ان العنوان لايتكرر في حقل آخر مثل (كاتب) هذه النقطة التي لم استوعبها ، فما الحاجة للبحث داخل كل الحقول في السجل المحدد ؟؟؟؟؟؟؟؟؟؟؟ ام تريد ان تكون القيمة في B اذا كانت موجودة في أحد الحقول في السجل المحدد فيكون التطابق موجود وإذا لم تكن القيمة في أي من الحقول ضمن نفس السجل فتكون الحالة عدم تطابق ؟؟؟؟ 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.