اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

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

السادة الخبراء الافاضل

If MsgBox("ماذا تريد ان تفعل اضغط Yes لفتح النموذج NO لفتح التقرير Cancel للتراجع  " & vbCrLf & "" & vbCrLf & "الحمدلله", vbYesNoCancel + vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "الله المستعان") = vbYes Then
DoCmd.OpenForm "22"
ElseIf vbNo Then
DoCmd.OpenReport "33", acViewPreview
ElseIf vbCancel Then
Undo

Else
End If

كتبت الكود بهذا الشكل ويعمل بصورة جيدة 

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

اريد عند الضفط على cancel غلق الرسالة  

اريد التعديل  على هذا الكود بقاعدة if

دون استخدام sselect  Case

 

تم تعديل بواسطه jo_2010
قام بنشر
19 دقائق مضت, jo_2010 said:

السادة الخبراء الافاضل

If MsgBox("ماذا تريد ان تفعل اضغط Yes لفتح النموذج NO لفتح التقرير Cancel للتراجع  " & vbCrLf & "" & vbCrLf & "الحمدلله", vbYesNoCancel + vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "الله المستعان") = vbYes Then
DoCmd.OpenForm "22"
ElseIf vbNo Then
DoCmd.OpenReport "33", acViewPreview
ElseIf vbCancel Then
Undo

Else
End If

كتبت الكود بهذا الشكل ويعمل بصورة جيدة 

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

اريد عند الضفط على cancel غلق الرسالة  

اريد التعديل  على هذا الكود بقاعدة if

دون استخدام sselect  Case

 

جرب هذا

Dim result As VbMsgBoxResult

result = MsgBox("ماذا تريد ان تفعل اضغط Yes لفتح النموذج NO لفتح التقرير Cancel للتراجع" & vbCrLf & vbCrLf & "الحمدلله", _
                vbYesNoCancel + vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "الله المستعان")

If result = vbYes Then
    DoCmd.OpenForm "22"
    
ElseIf result = vbNo Then
    DoCmd.OpenReport "33", acViewPreview
    
ElseIf result = vbCancel Then
    Exit Sub   ' 👈 هنا يخرج بدون أي إجراء
End If

 

  • Like 1
قام بنشر (معدل)
2 ساعات مضت, ابو البشر said:

جرب هذا

Dim result As VbMsgBoxResult

result = MsgBox("ماذا تريد ان تفعل اضغط Yes لفتح النموذج NO لفتح التقرير Cancel للتراجع" & vbCrLf & vbCrLf & "الحمدلله", _
                vbYesNoCancel + vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, "الله المستعان")

If result = vbYes Then
    DoCmd.OpenForm "22"
    
ElseIf result = vbNo Then
    DoCmd.OpenReport "33", acViewPreview
    
ElseIf result = vbCancel Then
    Exit Sub   ' 👈 هنا يخرج بدون أي إجراء
End If

استاذى الفاضل 

شكرا لحضرتك

مفيش اى تعديل علي الكود المرسل بدون إضافة Dim result as

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

انا بكتب عنوان الرسالة ومستواها

وعدد الازرار وهو بينتج الكود اريد التعديل علي الكود كما هو هل هذا ممكن

البرنامج موجود فى هذا الرابط 

 

 

تم تعديل بواسطه jo_2010
قام بنشر
10 ساعات مضت, jo_2010 said:

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

بدل كلمة Undo ، اجعلها Exit Sub فقط .

  • Like 1
قام بنشر
6 ساعات مضت, Foksh said:

بدل كلمة Undo ، اجعلها Exit Sub فقط .

استاذى الفاضل 

قمت بتغيير Undo الى  Exit Sub

واعطى نفس النتيجة السابقة وهو تنفيذ اخر  امر   فتح التقرير

اليك القاعدة للتعديل

JO.accdb

قام بنشر
21 دقائق مضت, kkhalifa1960 said:

تفض د @jo_2010 المرفق بعد التعديل . ووافني بالرد .:fff:

JO.rar 23.89 kB · 0 downloads

الخبير المبدع شكرا على ابداعك بس حضرتك انا كنت عاوز تعطيل فقط على الكود وهو بنفس الشكل بدون متغيرات 

كنت كيبت الكلام دة قبل كدة 

مفيش اى تعديل علي الكود المرسل بدون إضافة Dim result as

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

انا بكتب عنوان الرسالة ومستواها

وعدد الازرار وهو بينتج الكود اريد التعديل علي الكود كما هو هل هذا ممكن

البرنامج موجود فى هذا الرابط 

قام بنشر
5 ساعات مضت, jo_2010 said:

استاذى الفاضل 

قمت بتغيير Undo الى  Exit Sub

واعطى نفس النتيجة السابقة وهو تنفيذ اخر  امر   فتح التقرير

اليك القاعدة للتعديل

JO.accdb 480 kB · 5 downloads

بعد تجربة المرفق ، والتمعن فيه ، مشكلتك أخي الكريم في الجزء :-

ElseIf vbNo Then

السبب طبعاً أنه لا يفحص نتيجة رد الرسالة الكلي ، بل يعتبر vbNo قيمة ثابتة . وبالتالي يدخل إليه دائماً إذا لم تكن النتيجة vbYes .

لذا فالأفضل من وجهة نظري ، والأصح هو استخدام Select Case في حالتك هذه . خلاف ذلك قد نضطر لاستخدام الرسالة مرتين في الجملة الشرطية ، وهذا سيكرر الرسالة مرتين داخل نفس الحدث . لذا جرب الفكرة التالية :-

 

Private Sub أمر0_Click()
Select Case MsgBox("ماذا تريد ان تفعل Yes فتح نموذج NO فتح تقرير Cancel تراجع" & vbCrLf & vbCrLf & "الحمدلله", _
                   vbYesNoCancel + vbCritical + vbMsgBoxRight + vbMsgBoxRtlReading, _
                   "الله المستعان")
    Case vbYes
        DoCmd.OpenForm "22"
    Case vbNo
        DoCmd.OpenReport "33", acViewPreview
    Case vbCancel
        Exit Sub
End Select
End Sub

 

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

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   1 عضو متواجد الان

×
×
  • اضف...

Important Information