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

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

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

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

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

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

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

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

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

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

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

العميل  : احمد  .... رصيد المديونية له " اجمالي مسحوباته "  = 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

 

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

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

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

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

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

سجل حساب جديد

تسجيل دخول

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

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

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information