Ahmed_J قام بنشر فبراير 26, 2024 قام بنشر فبراير 26, 2024 (معدل) السلام عليكم لدي ملف لوصف الوظائف يحتوي على جدولين (الاول) tp1 وفيه معلومات الموظف (الاسم والدرجة) والجدول (الثاني) tp2 فيه الدرجة الوظيفية والعتوان الوظيفي المطلوب: عند تغيير الدرجة الوظيفية في النموذج واختيار عنوان وظيفي جديد من القائمة المنسدلة يجب ان يكون مطابق للعنوان الوظيفي والدرجة الموجودة في الجدول tp2 واظهار رسالة بذلك اما في حالة عدم التطابق اظهار رسالة بوجود خطا (العنوان الوظيفي لايتطابق مع الدرجة) وشكرا Test-1.accdbFetching info... تم تعديل فبراير 26, 2024 بواسطه Ahmed_J
ناقل قام بنشر فبراير 26, 2024 قام بنشر فبراير 26, 2024 في 26/2/2024 at 12:22, Ahmed_J said: لمطلوب: عند تغيير الدرجة الوظيفية في النموذج واختيار عنوان وظيفي جديد من القائمة المنسدلة يجب ان يكون مطابق للعنوان الوظيفي والدرجة الموجودة في الجدول tp2 واظهار رسالة بذلك Expand جرب هذا ..... 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, 2024 الكاتب قام بنشر فبراير 26, 2024 (معدل) السلام عليم استاذي العزيز فيه اخطاء لم يجد الا عنوان وظيفي واحد صحيح فقط والكود لايوجد فيه بحث في الجدول tp2 اريد المقارنة بين حقل العنوان الوظيفي في النموج والعناوين الوظيفية في الجدول tp2 تحياتي تم تعديل فبراير 26, 2024 بواسطه Ahmed_J
Foksh قام بنشر فبراير 26, 2024 قام بنشر فبراير 26, 2024 مشاركة مع الأستاذ @ناقل ، جرب هذه الفكرة أستاذ @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, 2024 قام بنشر فبراير 26, 2024 في 26/2/2024 at 12:58, Ahmed_J said: لم يجد الا عنوان وظيفي واحد صحيح فقط والكود لايوجد فيه بحث في الجدول tp2 اريد المقارنة بين حقل العنوان الوظيفي في النموج والعناوين الوظيفية في الجدول tp2 Expand هل الدرجة المقصودة هي المشار اليها في الصورة .... ولماذا الاختيار اذا كانت هي الدرجة ؟؟؟؟ لماذا لاتجعلها تظهر العنوان الوظيفي تلقائيا عند تحديد الدرجة ؟؟ 1
Ahmed_J قام بنشر فبراير 26, 2024 الكاتب قام بنشر فبراير 26, 2024 (معدل) السلام عليكم استاذ @ناقل شكرا لك للمتابعة نعم بالضبط (cradeno) هي تساوي الدرجة الوظيفية بالنموذج يعني مثلا يوجد بالدرجة (2) عنوان رئيس مهندسين اقدم و مدير اقدم وهكذا استاذ @Foksh شكرا للمتابعة الملف يعمل فقط على الوظائف الهندسية انا لدي بالاصل عناوين كثيرة والجدول كبير جدا ولا مانع من تغيير طريقة تصميم الجدول لو وجد الحل تحياتي تم تعديل فبراير 26, 2024 بواسطه Ahmed_J
ناقل قام بنشر فبراير 26, 2024 قام بنشر فبراير 26, 2024 في 26/2/2024 at 13:45, Ahmed_J said: انا لدي بالاصل عناوين كثيرة والجدول كبير جدا ولا مانع من تغيير طريقة تصميم الجدول لو وجد الحل Expand والعناوين كما في الجدول بجوار بعض ... صح ولكن كيف تميز بين المعين على وظيفة هندسية أو ادرارية وغيرها .... 1
Foksh قام بنشر فبراير 26, 2024 قام بنشر فبراير 26, 2024 في 26/2/2024 at 13:45, Ahmed_J said: السلام عليكم استاذ @ناقل شكرا لك للمتابعة نعم بالضبط (cradeno) هي تساوي الدرجة الوظيفية بالنموذج يعني مثلا يوجد بالدرجة (2) عنوان رئيس مهندسين اقدم و مدير اقدم استاذ @Foksh شكرا للمتابعة الملف يعمل فقط على الوظائف الهندسية انا لدي بالاصل عناوين كثيرة والجدول كبير جدا تحياتي Expand ما تم تنفيذه بناءً على طلبك ، وضح أكثر حتى نستفيد من التجارب التي تتم 1
Ahmed_J قام بنشر فبراير 26, 2024 الكاتب قام بنشر فبراير 26, 2024 (معدل) اساتذتي الاعزاء شكرا لكم استاذ @Foksh يوجد الكثير من العناوين الوظيفية انا اخترت القليل منها لسهولة الامر الكود تبعك يعمل بصورة جيدة على الوظائف الهندسية ولايعمل على الوظائف الادارية استاذ @ناقل يتم تميز ذلك من خلال كتاب التعيين والشهادة الحاصل عليها علما بان لاتهمني العناوين سواء ارقام كانت ام حروف او اي عنوان اخر للحقل تحياتي تم تعديل فبراير 26, 2024 بواسطه Ahmed_J
ناقل قام بنشر فبراير 26, 2024 قام بنشر فبراير 26, 2024 في 26/2/2024 at 14:04, Ahmed_J said: استاذ @Foksh يوجد الكثير من العناوين الوظيفية انا اخترت القليل منها لسهولة الامر الكود تبعك يعمل بصورة جيدة على الوظائف الهندسية ولايعمل على الوظائف الادارية استاذ @ناقل يتم تميز ذلك من خلال كتاب التعيين والشهادة الحاصل عليها علما بان لاتهمني العناوين سواء ارقام كانت ام حروف او اي عنوان اخر للحقل Expand لاحظ معي هل تنفعك هذه الطريقة ...... 1
Ahmed_J قام بنشر فبراير 27, 2024 الكاتب قام بنشر فبراير 27, 2024 السلام عليكم استاذ @ناقل المحترم انا اعرف هذه الطريقة ولدي ملف خاص بها انا اردت فقط التاكد كيف يمكن تدقيق العنوان والدرجة في النموذج من خلال الجدول تحياتي لك استاذ بارك الله فيك 1
ناقل قام بنشر فبراير 27, 2024 قام بنشر فبراير 27, 2024 في 27/2/2024 at 13:15, Ahmed_J said: انا اردت فقط التاكد كيف يمكن تدقيق العنوان والدرجة في النموذج من خلال الجدول تحياتي لك استاذ Expand طيب استاذي الفاضل انظر المرفق ربما يوحي لك الفكرة التى اردت ايصالها لك .... Test-1.accdbFetching info... 1
Ahmed_J قام بنشر فبراير 27, 2024 الكاتب قام بنشر فبراير 27, 2024 (معدل) السلام عليكم شكرا لك كثيرا استاذ @ناقل لقد تعبتك معي كثيرا السبب ان هذه الطريقة لاتناسب عملي هو ان بعض الموظفين عندنا يمكن ان تكون درجته بالراتب اعلى من عنوانه الوظيفي هذا ملفي بنفس طريقتك والله فكرة جديدة لسه ماعندي تحياتي Test-1.accdbFetching info... تم تعديل فبراير 27, 2024 بواسطه Ahmed_J
Eng.Qassim قام بنشر فبراير 27, 2024 قام بنشر فبراير 27, 2024 مرحبابك استاذ @Ahmed_J هناك اشكالية ادارية في ملفك ...وهو انه ليس بالضرورة ان تكون درجة خبير او معاون مدير عام بالدرجة الاولى انا مثلا ..منذ 3 سنوات في الدرجة الاولى (رئيس مهندسين اقدم)...اما معاون مدير عام فيكون بالتعيين من قبل المسؤول وليس له علاقة بالخدمة رأيي ان يتم اختيار العنوان الوظيفي يدويا من خلال مربع التحرير وحسب الاوامر الادارية وليس برمجيا تحياتي لك 1
Ahmed_J قام بنشر فبراير 27, 2024 الكاتب قام بنشر فبراير 27, 2024 (معدل) السلام علكم استاذ قاسم @Eng.Qassim ان شاء الله تكون بخير في 27/2/2024 at 17:26, Eng.Qassim said: هناك اشكالية ادارية في ملفك ...وهو انه ليس بالضرورة ان تكون درجة خبير او معاون مدير عام بالدرجة الاولى انا مثلا ..منذ 3 سنوات في الدرجة الاولى (رئيس مهندسين اقدم)...اما معاون مدير عام فيكون بالتعيين من قبل المسؤول وليس له علاقة بالخدمة رأيي ان يتم اختيار العنوان الوظيفي يدويا من خلال مربع التحرير وحسب الاوامر الادارية وليس برمجيا تحياتي لك Expand انا اعرف كل هذا وخصوصا انا موظف قديم انا بالاصل في ملف عملي عامل حقل نصي وادخل العنوان الوظيفي بصورة يدوية وادققه مع جدول ورقي للعناوين لكن لدي فكرة هي ان اقوم بعمل جدول في الاكسس لكل العناوين الوظيفية حسب الدرجة والعنوان الوظيفي المعتمد وعندما ادخل اي عنوان وظيفي لاي موظف بصورة يدوية بالنموذج بقوم بالتدقيق مع الجدول الاصلي للعناوين وتظهر رسالة هل العنوان يقع في نفس الدرجة ام لا (يعني مطابق او غير مطابق) هل فهمت قصدي وفكرتي تحياتي تم تعديل فبراير 27, 2024 بواسطه Ahmed_J
ابوخليل قام بنشر فبراير 27, 2024 قام بنشر فبراير 27, 2024 تفضل حسب فهمي 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.rarFetching info... 1
Ahmed_J قام بنشر فبراير 28, 2024 الكاتب قام بنشر فبراير 28, 2024 (معدل) السلام عليكم استاذ @ابوخليل شكرا لك الكود شغال تمام ولكن المشكلة هي ان رؤوس الاعمدة كثيرة بحدود 20 وليس فقط txt_h و txt_e هل نكرر الدالة DLookup عشرون مرة ؟ ام هنالك حل آخر ؟ تحياتي تم تعديل فبراير 28, 2024 بواسطه Ahmed_J
Foksh قام بنشر فبراير 28, 2024 قام بنشر فبراير 28, 2024 اسمح لي بمداخلة لولبية أستاذ @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, 2024 الكاتب قام بنشر فبراير 28, 2024 السلام عليكم استاذ @Foksh شكرا للمتابعة تظهر رسالة خطا كما في الصورة
Foksh قام بنشر فبراير 28, 2024 قام بنشر فبراير 28, 2024 طيب ، خلينا نجرب تضييق النطاق في الحصول على اسماء الحقول 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, 2024 الكاتب قام بنشر فبراير 28, 2024 السلام عليكم استاذ @Foksh تظهر رسالة على كل الاختيارات ان البيانات غير متطابقة Test-1.accdbFetching info...
Foksh قام بنشر فبراير 28, 2024 قام بنشر فبراير 28, 2024 أستاذ @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.accdbFetching info... 3
Ahmed_J قام بنشر فبراير 28, 2024 الكاتب قام بنشر فبراير 28, 2024 (معدل) استاذ @Foksh والله انا تعبتك معي كثير الله يباراك فيك في 28/2/2024 at 18:37, Foksh said: خليني افهم حبة حبة لأن احياناً استيعابي يكون بطيء حبتين بعد الأكل .. هالحين انت محتاج من تختار من القائمة B يروح يعمل بحث في كل الحقول - حتى لو عددهم 50 - اللي سجلها رقمه يطابق GradeNo في القائمة A . انا عملت الـ GradeNo رقم 8 يساوي كاتب في الحقلين باعتبار وجود أكثر من حقل في الجدول . وعند اختيار رقم 8 من النموذج من A وتختار اي اختيار في B غير كاتب رح تكون النتيجة انه عدم تطابق في البيانات .. ومن تختار كاتب ما رح يظهر رسالة Expand كلامك كله صحيح وشرحك للموضوع تمام المشكلة هي دون حاجتنا الى تحديد اسماء الحقول أو رؤوس الأعمدة فقط اريد ان اوضح ان العنوان لايتكرر في حقل آخر مثل (كاتب) تحياتي تم تعديل فبراير 28, 2024 بواسطه Ahmed_J
Foksh قام بنشر فبراير 28, 2024 قام بنشر فبراير 28, 2024 في 28/2/2024 at 18:56, Ahmed_J said: المشكلة هي دون حاجتنا الى تحديد اسماء الحقول أو رؤوس الأعمدة Expand هذه انتهينا منها المفروض ,, في 28/2/2024 at 18:56, Ahmed_J said: فقط اريد ان اوضح ان العنوان لايتكرر في حقل آخر مثل (كاتب) Expand هذه النقطة التي لم استوعبها ، فما الحاجة للبحث داخل كل الحقول في السجل المحدد ؟؟؟؟؟؟؟؟؟؟؟ ام تريد ان تكون القيمة في 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.