Emad Fawzy Armanious قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 Dim i As Integer Dim db As DAO.Database Dim rs As DAO.Recordset Set db = CurrentDb 'حيث Table 1 يحتوى على عمود به القيم التى يراد التأكد من مطابقتها ("Set rs = db.OpenRecordset("Table1 For i = 0 To 2 'حيثNo هو الرقم الموجود في الجدول ويراد التأكد من مطابقته معMe.MNo If rs!No.Value = Me.MNo Then 'حيث Dashbord هو النموذج المراد فتحه في حالة تحقق الشرط "DoCmd.OpenForm "Dashboard Else If rs!No.Value <> Me.MNo Then 'حيث Copyهو النموذج المراد فتحه في حالة عدم تحقق الشرط "DoCmd.OpenForm "Copy End If End If Next i المشكلة انه في حالة تحقق الشرط وعدم تحقق الشرط يتم فتح النموذج Copy يرجى المساعدة في حل ه\ه المشكلة ولكم جزيل الشكر رابط هذا التعليق شارك More sharing options...
Khalid Jnb قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 (معدل) السلام عليكم المفروض يكون الكود بدالة (if ) كالتالي If rs!No.Value = Me.MNo Then DoCmd.OpenForm "Dashboard" Else DoCmd.OpenForm "Copy" End If تم تعديل ديسمبر 6, 2019 بواسطه خالد سيسكو 3 رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 الكود بالشكل بالتالي يعمل ان شاء الله Dim i As Integer Dim db As DAO.Database Dim rs As DAO.Recordset Dim x As Integer Set db = CurrentDb Set rs = db.OpenRecordset("Table1") x = rs!No.Value For i = 0 To 2 If x = Me.MNo Then DoCmd.OpenForm "Dashboard" ElseIf x <> Me.MNo Then DoCmd.OpenForm "Copy" End If Next i واعتقد انك لو استخدمت الكود بدون For ... Next سيكون افضل Dim i As Integer Dim db As DAO.Database Dim rs As DAO.Recordset Dim x As Integer Set db = CurrentDb Set rs = db.OpenRecordset("Table1") x = rs!No.Value If x = Me.MNo Then DoCmd.OpenForm "Dashboard" ElseIf x <> Me.MNo Then DoCmd.OpenForm "Copy" End If تحياتي 10 دقائق مضت, خالد سيسكو said: السلام عليكم المفروض يكون الكود بدالة (if ) كالتالي المعذرة استاذتا الفاضل @خالد سيسكو لم انتبه الى ردك فارجو المعذرة ولك الشكر تحياتي 2 رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 وهذه طريقة بدالة Case Dim i As Integer Dim db As DAO.Database Dim rs As DAO.Recordset Dim x As Integer Set db = CurrentDb Set rs = db.OpenRecordset("Table1") x = rs!No.Value Select Case Me.MNo Case Me.MNo If x = Me.MNo Then DoCmd.OpenForm "Dashboard" Else DoCmd.OpenForm "Copy" End If Case Else End Select تحياتي 2 رابط هذا التعليق شارك More sharing options...
Emad Fawzy Armanious قام بنشر ديسمبر 6, 2019 الكاتب مشاركة قام بنشر ديسمبر 6, 2019 شكرا استاذ خالد شكرا استاذ محمد عند تنفيذ الكود تم ظهور الرسالة المرفقة وتظليل الجزء التالي من الكود باللون الاصفر x = rs!No.Value رابط هذا التعليق شارك More sharing options...
AlwaZeeR قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 بعد اذن الاخوة الزملاء قم بتغيير الكود Dim x As Integer الى Dim x As Long 3 رابط هذا التعليق شارك More sharing options...
Emad Fawzy Armanious قام بنشر ديسمبر 6, 2019 الكاتب مشاركة قام بنشر ديسمبر 6, 2019 شكرا ابو الكرم تم التغيير ولكن نفس المشكلة الجدول به عدة صفوف للحقل No منهم قيمة واحدة صحيحة ما اريده هو ان يتم فحص هذه القيمه في كل صفوف الجدول وفي حالة تحقق الشرط يتم فتح النموذج المطلوب Dashbord وفي حالة عدم التحقق يتم فتح نموذ أخر Copy رابط هذا التعليق شارك More sharing options...
Khalid Jnb قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 (معدل) اخي العزيز ارفق ملف يكون افضل للتصحيح تم تعديل ديسمبر 6, 2019 بواسطه خالد سيسكو رابط هذا التعليق شارك More sharing options...
Emad Fawzy Armanious قام بنشر ديسمبر 6, 2019 الكاتب مشاركة قام بنشر ديسمبر 6, 2019 شكرا لكل الأستاذة الافاضل الذين تفاعلوا مع طلبى جازاكم الله كل خير توضيح إضافي هناك قيمة في النموذج المسمى Dashboard في ال Text Box المسمى MNo تساوى 1 وهناك مجموعة من القيم في الجدول Table 1 في العمود No المطلوب هو عندما تتطابق القيمة في النموذج المسمى Dashboard في ال Text Box المسمى MNo مع اي من القيم في الجدول Table 1 في العمود No يظل النموذج المسمى Dashboard وعنندما لا تتطابق القيمة في النموذج المسمى Dashboard في ال Text Box المسمى MNo مع اي من القيم في الجدول Table 1 في العمود No يتم فتح النموذج المسمى Copy فوق النموذج المسمى Dashboard مرفق ملف Loop.rar رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 تفضل اخي الكريم Private Sub Form_Open(Cancel As Integer) Dim i As Integer Dim db As DAO.Database Dim rs As DAO.Recordset Dim x As Long Set db = CurrentDb Set rs = db.OpenRecordset("Table1") x = rs!No.Value Select Case Me.MNo Case Me.MNo If x = Me.MNo Then DoCmd.OpenForm "Dashboard" DoCmd.Close acForm, "Copy" Else DoCmd.OpenForm "Copy" DoCmd.Close acForm, "Dashboard" End If Case Else End Select End Sub Loop.rar 1 رابط هذا التعليق شارك More sharing options...
Emad Fawzy Armanious قام بنشر ديسمبر 6, 2019 الكاتب مشاركة قام بنشر ديسمبر 6, 2019 (معدل) شكرا أبو عبد الله المرفق كان مثال من البرنامج لان البرنامج كبير الحجم ولا يمكن رفعه عند تطبيق الكود على البرنامج الاساسي تظهر رسالة Overflow ولا يتم التنفيذ يرجى توضيح السبب شكرا تم تعديل ديسمبر 6, 2019 بواسطه Emad Fawzy Armanious رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 يبدو انك تسحدم متغيرات كثيرة في البرنامج استبدل Integer بـ Long كما اشار استاذنا @AlwaZeeR 3 ساعات مضت, AlwaZeeR said: Dim x As Integer الى Dim x As Long تحياتي رابط هذا التعليق شارك More sharing options...
Khalid Jnb قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 السلام عليكم بعد اذن الاستاذ محمد ابوعبد الله انت عامل بالجدول الرقم No(مزدوج ) غيره الى عدد صحيح طويل 1 رابط هذا التعليق شارك More sharing options...
أبو إبراهيم الغامدي قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 السلام عليكم.. للأسف.. الحلول غبر متوقعة ومحبطة للغاية.. كما أن السؤال مربك رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 44 دقائق مضت, أبو إبراهيم الغامدي said: السلام عليكم.. للأسف.. الحلول غبر متوقعة ومحبطة للغاية.. وعليكم السلام ورحمة الله وبركاته استاذنا الفاضل لم افهم كلامك جيداً فبرجاء التوضيح بارك الله فيك تحياتي رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 6 ساعات مضت, Emad Fawzy Armanious said: ما اريده هو ان يتم فحص هذه القيمه في كل صفوف الجدول وفي حالة تحقق الشرط يتم فتح النموذج المطلوب Dashbord وفي حالة عدم التحقق يتم فتح نموذ أخر Copy تفضل اخي الكريم لم انتبه من البداية لهذه الجملة Loop.rar تحياتي رابط هذا التعليق شارك More sharing options...
أبو إبراهيم الغامدي قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 منذ ساعه, محمد ابوعبد الله said: لم افهم كلامك جيداً أ. محمد.. أنت تفحص سجلات لم تتحرك من مكانها.. لكونها لا تتضمن المنهج (MoveNext) لتدوير السجلات الأمر الآخر أن السائل يريد عمل دورة السجلات وفتح النماذج لغرض معين لم يفصح عنه! وهذا أحد الإرباكات في السؤال! لكون النماذج سوف تقوم بالتبديل بين الفتح والإغلاق بسرعة كبيرة حتى آخر سجل يقف عليه المؤشر! أما المشاركة الأخيرة فليست ضمن دائرة السؤال رابط هذا التعليق شارك More sharing options...
محمد أبوعبدالله قام بنشر ديسمبر 6, 2019 مشاركة قام بنشر ديسمبر 6, 2019 معك حق استاذنا الفاضل فعلا كلامك صحيح 100% ومنك نستفيد ان شاء الله دائماً ارجو ان يكون الملف المرفق يفي بالغرض والشكر لك استاذنا Loop.rar تحياتي رابط هذا التعليق شارك More sharing options...
Emad Fawzy Armanious قام بنشر ديسمبر 7, 2019 الكاتب مشاركة قام بنشر ديسمبر 7, 2019 (معدل) 15 ساعات مضت, خالد سيسكو said: السلام عليكم المفروض يكون الكود بدالة (if ) كالتالي If rs!No.Value = Me.MNo Then DoCmd.OpenForm "Dashboard" Else DoCmd.OpenForm "Copy" End If 7 ساعات مضت, أبو إبراهيم الغامدي said: السلام عليكم.. للأسف.. الحلول غبر متوقعة ومحبطة للغاية.. كما أن السؤال مربك على العكس الحلول كانت رائعة وتم التنفيذ بنجاح وخالص الشكر للأستاذ محمد أبو عبد الله والاستاذ خالد والأستاذ أبو الكرم تم تعديل ديسمبر 7, 2019 بواسطه Emad Fawzy Armanious رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
من فضلك سجل دخول لتتمكن من التعليق
ستتمكن من اضافه تعليقات بعد التسجيل
سجل دخولك الان