اذهب الي المحتوي
أوفيسنا

تحديد مبلغ كحد اقصى لمسحوبات العميل


wael_rafat

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

السلام عليكم ورحمة الله وبركاته ،،،

اخواني الافاضل مشرفي واعضاء منتدانا الجميل

تحية طيبة وبعد ،،،

المطلوب : هو تحديد مبلغ كحد اقصي لمسحوبات العميل ولا يتعداه

المعادلة كالتالي :

وذلك عند ضغط حفظ الفاتورة

عندما يكون  ( اجمالي الفاتورة الحالية  + رصيد العميل السابق " اجمالي مسحوباته " ) اكبر من الحد الاقصى المسموح  للعميل  .... يتم رفض الفاتورة .

على سبيل المثال :-

العميل  : احمد  .... رصيد المديونية له " اجمالي مسحوباته "  = 8 دينار

الحد الاقصى لهذا العميل  = 10 دينار

عند حفظ الفاتورة وكانت بمبلغ يتعدى مبلغ  ال2 دينار  ... يتم رسالة رفض للفاتورة

ولدي الكود يعمل تمام وموجود بالمرفق  وهو

     Dim x As String

     x = (DLookup("[sumoftot]", "Q_balance", "[customerno]=" & Me.customerno))

     If (x + Me.totalinvoice) > Me.limit Then

     MsgBox " åÐÇ ÇáÚãíá ÞÏ ÊÚÏí ÇáÍÏ ÇáÇÞÕí ÇáãÓãæÍ áå ", vbCritical, " ÛíÑ ãÓãæÍ "

     Exit Sub

 

 ولكن المشكلة فى حالة العملاء الغير موجودين  باستعلام الرصيد  والمسمى Q_Balance يعطي رسالة خطأ فكيف اتخطى هذه المشكلة .

 

KFC.rar

تم تعديل بواسطه wael_rafat
رابط هذا التعليق
شارك

استاذ علي تسلم على التفاعل والمشاركة

ولكن المشكلة مازالت ..... ،  ولي استفسار  ما المقصود بالرمز ( y )

     Dim x As String
     x = DLookup("[limit]", "Tcustomers", "[customerno]=" & Me!customerno)
     If (x + Me.totalinvoice) > y Then
     MsgBox " åÐÇ ÇáÚãíá ÞÏ ÊÚÏí ÇáÍÏ ÇáÇÞÕí ÇáãÓãæÍ áå ", vbCritical, " ÛíÑ ãÓãæÍ "
     Me.Undo
  

   Exit Sub
هي الفكرة تتلخص فى الاتي :

البحث فى استعلام الاصدة للعملاء ...، واذا وجد ان رصيد العميل  + اجمالي الفاتورة الحالية  اكبر من الحد الاقصى له  يتم الرفض

وهذا ما حققة الكود الاول وتمام

ولكن المشكلة فى حالة عميل ليس له رصيد او غير موجود باستعلام الارصدة  للعملاء مثل العميل النقدي فانه يعطي رسالة بعدم وجود رصيد له . 

 

 

وبارك الله فيك

Capture.JPG

تم تعديل بواسطه wael_rafat
رابط هذا التعليق
شارك

حدث خطأ عند نسخ الكود

 

Private Sub sav_Click()
 ' On Error Resume Next
    DoCmd.Beep
   
     Dim x As String
     Dim y As String
     x = Nz(DLookup("[limit]", "Q_balance", "[customerno]=" & Me!customerno))
     y = Nz(DLookup("[sumoftot]", "Q_balance", "[customerno]=" & Me!customerno))
    
     If x = "" Or y = "" Then: GoTo 1
    
     If (y + Me.totalinvoice) > x Then
         MsgBox " هذا العميل قد تعدي الحد الاقصي المسموح له ", vbCritical, " غير مسموح "

     Me.Undo
     Exit Sub

 
  Else
1    DoCmd.GoToRecord , , acNewRec
  If Me.orderno > 0 Then
   DoCmd.Close
    Exit Sub
   Else
   Refresh
   Call MyOutoNum
   F_ordersubform.SetFocus
   DoCmd.GoToControl "itemcode"
   Refresh
   End If


End If
Exit Sub
End Sub

 

تم تعديل بواسطه علي المصري
رابط هذا التعليق
شارك

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