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

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

قام بنشر

نامل من الاخوة المساعدة في حل الدالة 

في حالة  ان حقل الخدمة = ايواء يكون حقل السعر = قيمة مبلغ الشراء

في حالة  ان حقل الخدمة = يومي  يكون حقل السعر = الايجار اليومي * عدد الايام

ولكم التوفيق

بيانات القيد.accdb

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

اتفضل ونصيحة بلاش تسمى الحقول بالعربى


Sub Calc()
    Select Case Nz([الخدمة], "")
        Case "": Me.[السعر] = ""
        Case Is = "ايواء": Me.[السعر] = Me.[مبلغ الشراء]
        Case Is = "يومي": Me.[السعر] = Me.[الايجار] * Me.[عدد الايام]
    End Select
End Sub

Private Sub الخدمة_AfterUpdate()
    Call Calc
End Sub

Private Sub الايجار_AfterUpdate()
    Call Calc
End Sub

Private Sub عدد_الايام_AfterUpdate()
    Call Calc
End Sub

 

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

تفضل اخي الكريم

Private Sub Form_BeforeUpdate(Cancel As Integer)
    Me.السعر = IIf([الخدمة] = "يومي", [مبلغ الشراء], (Nz([عدد الايام]) * Nz([الايجار])))
End Sub

بيانات القيد.accdb

تحياتي

قام بنشر

استاذ ابو عبد الله ..انت عاملها بالعكس بع اذنك..

    Me.السعر = IIf([الخدمة] = "ايواء", [مبلغ الشراء], (Nz([عدد الايام]) * Nz([الايجار])))

 

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

طيب وكمان غير مشاكل اللغة اللى ممكن تحصل عندما يتم استخدام الحروف العربية داخل المحرر

قولى يا almosafer almasry  هل قدرت تفهم قاعدة iif مع العربى 🤭 كما تفضل اساتذتى الكرام بوضع الحل طبقا للاحرف العربية مع قاعدة iif 

 

انا عن نفسي لا بافهما ولا باعرف اكتبها مع العربى ههههههه

علشان كدع استخدمت Select Case عن نفسى بافضلها فى كل الاحوال مرنه اكثر

والان صار معاك الحلين

,وحل ثالث ايضا اثراء للموضوع استخدام الدالة switch  :wink2: 

    Me.[السعر] = Switch(Me.[الخدمة] = "ايواء", Me.[مبلغ الشراء], Me.[الخدمة] = "يومي", Me.[الايجار] * Me.[عدد الايام])

 

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

اتقضل
 

Me.[السعر] = Switch(IsNull(Me.[الخدمة]), 0, Me.[الخدمة] = "ايواء", Me.[مبلغ الشراء], Me.[الخدمة] = "يومي", Me.[الايجار] * Me.[عدد الايام])

 

قام بنشر

جرب الكود التالي

    If Len(Me.[الخدمة] & vbNullString) = 0 Then
        Me.[السعر] = 0
    Else
        Me.السعر = IIf([الخدمة] = "ايواء", [مبلغ الشراء], (Nz([عدد الايام]) * Nz([الايجار])))
    End If

تحياتي

قام بنشر

تفضل اخي الكريم

    If Len(Me.[الخدمة] & vbNullString) = 0 Then
        Me.[السعر] = 0
    Else
        Me.السعر = IIf([الخدمة] = "ايواء", [مبلغ الشراء], IIf([الخدمة] = "يومي", (Nz([عدد الايام]) * Nz([الايجار])), 0))
    End If

 

41.gif.5c9aea140e5f0c2007cad073eec59f30.gif

بيانات القيد.rar

تحياتي

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

المرفق الاول لم يكن به سوا ايواء  , يومى لذا اعتقدت انه غير ذلك سوف تكون قيمة خالية ولذلك اعتذر لضيق افقى فى التصور الصحيح

اليكم الاجابة

Me.[السعر] = Switch(IsNull(Me.[الخدمة]), 0, Me.[الخدمة] = "ايواء", Me.[مبلغ الشراء], Me.[الخدمة] = "يومي", Me.[الايجار] * Me.[عدد الايام], Me.[الخدمة] <> "ايواء" And Me.[الخدمة] <> "يومي", 0)

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

Me.[السعر] = Switch( _
                        IsNull(Me.[الخدمة]), 0, _
                        Me.[الخدمة] = "ايواء", Me.[مبلغ الشراء], _
                        Me.[الخدمة] = "يومي", Me.[الايجار] * Me.[عدد الايام], _
                        Me.[الخدمة] <> "ايواء" And Me.[الخدمة] <> "يومي", 0 _
                    )

 

واذا اسم الحقل كبير وراح يتكرر كثرا ممكن استخدام الكود الاتى 

    Dim Fld As String: Fld = Nz(Me.[الخدمة])
    Me.[السعر] = Switch(IsNull(Fld), 0, Fld = "ايواء", Me.[مبلغ الشراء], Fld = "يومي", Me.[الايجار] * Me.[عدد الايام], Fld <> "ايواء" And Fld <> "يومي", 0)

 

تم تعديل بواسطه ابو جودي
قام بنشر (معدل)
25 دقائق مضت, almosafer almasry said:

جزاك الله الف خير ابو جودي انا اللي ما وضحت التفاصيل كاملة من البداية 

ولك الف شكر

انا كمان مقدرتش افكر صح واضع كل التصورات والسناريوهات اللازمة .. 

على كل حال اهلا بيك وان شاء الله تكون توصلت للنتيجة التى ترغب بها على اكمل وجه

وانا لو مكانك استخدمها بالشكل ده بدون كتابة حرف عربى فى محرر الاكواد 

انظر فى مصدر بيانات النموذج :yes:

 

 

بيانات القيد.accdb

تم تعديل بواسطه ابو جودي

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