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

عدم حفظ بيانات الفاتورة الاساسية والاصناف المتعلقة بها


wael_rafat

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

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

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

 

الاخ الفاضل / جعفر كل الشكر والتقدير

كان لي استفسارات سابقة مع حضرتك بمنتدي الفريق العربي للبرمجة

وتظهر لدي استفسارات حاليا برجاء مراجعة الكود والنتائج التي تظهر بالجدول المرفقة وهي:-

احيانا لا يتم حفظ بيانات الفاتورة الاساسية وبالتالي لا يتم حفظ الاصناف المتعلقة بها  ، مع العلم انه يتم طباعة الفاتورة بعد الضغط علي ايقونة الحفظ

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

مع العلم ان هذه المشكلة لا تظهر بصفة مستمرة وانما علي فترات .

برجاء مراجعة المرفقات وابلاغي برايك 

مع الشكر وجزاك الله كل خير

 

post-140842-0-55224500-1426500097_thumb.

post-140842-0-19251600-1426500104_thumb.

الكود.txt

رابط هذا التعليق
شارك

 

الاخ الفاضل / جعفر كل الشكر والتقدير

كان لي استفسارات سابقة مع حضرتك بمنتدي الفريق العربي للبرمجة

 

وعليكم أخي وائل  :smile:

 

صحيح انا شايب ، بس مب من زمان الديناصورات  :yes:

وانزلت مرفق الكود ، ولم اجد به بصماتي (نعم ، استطيع ان ارى بصمتي في الكود  :smile: )

 

 

والآن ، فلنبدأ بصفحة جديدة  :smile:

ما هو المطلوب (وبالتفصيل لوسمحت) ، ورجاء ارفاق ملفك  :smile:

 

 

جعفر

رابط هذا التعليق
شارك

تسلم اخي الكريم جعفر علي الاستجابة وهذا هو المعهود منك ، وكما عودتنا دائما بارك الله فيك .

مرفق القاعدة والتساؤلات كالتالي :     

  1. 1- لماذا يتم حفظ رقم الفاتورة  ( فقط ) بدون اي بيانات ولا اصناف ( موضحة بالصور المرفقة سابقا ) مع العلم بانني وضعت كود لعدم الحفظ في حالة خلو الفاتورة من الاصناف
  2. 2 – لماذا يتم طباعة الفاتورة بشكل صحيح ولكن برقم مكرر  ،  بدون حفظها بالجدول
  3. ملحوظة : رقم الفاتورة فى الطباعة يكون مكرر ، ولكن بياناتها مختلفة عن الرقم الاصلي ( حيث يحفظ الرقم الاصلي مع بياناته بالجدول ولا يحفظ الرقم المكرر .
  4. 3 – لماذا لا يحدث هذا الامر بصفة مستمرة ، حيث انه يحدث علي فترات متباعدة .

ملاحظات :-

  • تنسيق البرنامج 2003 والاكسس المستخدم 2013
  • البرنامج يوجد به العديد من الامثلة المفيدة للرد على كثير من تساؤلات الاخوه الاعضاء مثل ( الترقيم التلقائي – عدم الحفظ التلقائي – المبيعات – الاصناف .... )

 

         وسامحني علي الاطالة وجزاك الله كل خير .

 

Test.rar

رابط هذا التعليق
شارك

السلام عليكم أخي وائل

 

في الواقع نظرت الى الكود الذي ذكرته ، ووجدت فيه مجال لتحسينه ، ولكن لا اعرف اذا كانت المشكلة هنا او في مكان آخر ، هذا هو الكود ، جربه واخبرني:

Private Sub sav_Click()
 ' On Error Resume Next
    DoCmd.Beep
    DoCmd.SetWarnings False
    
    
    If MsgBox("سوف يتم حفظ الفاتورة بعد طباعتها. تريد بالفعل اكمال العملية ", vbYesNo + vbInformation + vbMsgBoxRight + vbDefaultButton1, "تنبيـــه") = vbNo Then
        DoCmd.RunCommand acCmdDeleteRecord
        SendKeys "{ESC}"
        MsgBox "لقد تم إلغاء عملية الطباعة والحفظ ", vbMsgBoxRight + vbInformation, ""
        Refresh
        DoCmd.close
    End If
    If (DLookup("[s]", "Torderno", "[orderno]=" & Me.orderno) = True) Then
            MsgBox " خطــأ... الفاتورة محفوظة من قبل ", vbCritical, " خطــأ 1 "
        DoCmd.CancelEvent
        DoCmd.close
    End If
    If IsNull(DLookup("[orderno]", "Torder", "[orderno]=" & Me.orderno)) Then
        MsgBox " خطــأ... لا يوجد اصناف بالفاتورة  ", vbCritical, " خطــأ 2 "
        DoCmd.CancelEvent
        DoCmd.close
    End If
    If Me.num > 0 Then
        MsgBox " خطــأ... لم يتم الانتقال الي فاتورة جديدة ", vbCritical, " خطــأ 3 "
        DoCmd.CancelEvent
        DoCmd.close
    End If
    If IsNull(Me.totalinvoice) Or IsNull(Me.itemcount) Then
        MsgBox "ادخل اصناف الفاتورة ", vbInformation, " "
        Me.F_ordersubform.SetFocus
        Exit Sub    'jj
     End If
     If (Me.totalinvoice) = 0 Then
        MsgBox "ادخل اصناف الفاتورة ", vbInformation, " "
        Me.F_ordersubform.SetFocus
        Exit Sub    'jj
     End If
     If IsNull([F_ordersubform]![Qty]) And ([F_ordersubform]![itemcode]) > 0 Then
        MsgBox "ادخل العدد ", vbInformation, " "
        Me.F_ordersubform.SetFocus
        [F_ordersubform]![Qty].SetFocus
        Exit Sub    'jj
   End If
   If Me.discount > Me.totalinvoice Or Me.totalinvoice < 0 Then
        MsgBox "مبلغ الخصم اكبر من مبلغ الفاتورة ...! ", vbCritical, "  خطــــأ "
        Me.discount = 0
    ' Me.cash.SetFocus
    '  Me.discount.SetFocus
        Exit Sub    'jj
  End If
  

    ' DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
       Me.tim.Value = Format(Time, "hh:mm AMPM")
       Me.cashier = USID
       Me.due = Me.amount
       Me.num.Value = Format([orderno], "0000000")
    Refresh
    Set Q = CurrentDb.OpenRecordset("SELECT torderno.orderno, torderno.s FROM [torderno] where s=false;")
    Q.Edit
    Q!s = True
    Q.Update
    Refresh
    DoCmd.OpenReport "s", acViewNormal, , "[orderno] = " & Me![orderno]
    Refresh
    'On Error Resume Next
       'DoCmd.SetWarnings False
        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


    

Exit Sub
End Sub

في الطريقة السابقة ، الكود كان يرى واحد من if او elseif ولا يرى البقية.

 

وجرب هذا في الكود السابق:

عندما تأتي رسالة: سوف يتم حفظ الفاتورة بعد طباعتها. تريد بالفعل اكمال العملية

اختر نعم ، ولكن الكود لا يحفظ شئ (حيث انه يقفز لنهاية الكود ، وذلك بسبب الكود يرى واحد من if او elseif ولا يرى البقية.

 

 

جعفر

رابط هذا التعليق
شارك

تسلك اخي الفاضل جعفر علي التفاعل  ولكن المشكلة كما ذكرت سابقا ان هذا الخلل لا يحدث باستمرار بمعني انه يحدث على فترات متباعدة

تقريبا كل يومين او ثلاث ايام يحدث مرة

عموما ساقوم بتجربة الكود الجديد وابلاغك بالنتيجــة ,,,  وبرجاء الاطلاع مرة اخري  بنظرة شاملة  وجزاك الله كل خير

رابط هذا التعليق
شارك

جرب هذا الكود:

Private Sub sav_Click()
 ' On Error Resume Next
    DoCmd.Beep
    DoCmd.SetWarnings False
    
    
    If MsgBox("سوف يتم حفظ الفاتورة بعد طباعتها. تريد بالفعل اكمال العملية ", vbYesNo + vbInformation + vbMsgBoxRight + vbDefaultButton1, "تنبيـــه") = vbNo Then
        DoCmd.RunCommand acCmdDeleteRecord
        SendKeys "{ESC}"
        MsgBox "لقد تم إلغاء عملية الطباعة والحفظ ", vbMsgBoxRight + vbInformation, ""
        Refresh
        DoCmd.close
        GoTo Done   'jj
    End If
    If (DLookup("[s]", "Torderno", "[orderno]=" & Me.orderno) = True) Then
            MsgBox " خطــأ... الفاتورة محفوظة من قبل ", vbCritical, " خطــأ 1 "
        DoCmd.CancelEvent
        DoCmd.close
        GoTo Done   'jj
    End If
    If IsNull(DLookup("[orderno]", "Torder", "[orderno]=" & Me.orderno)) Then
        MsgBox " خطــأ... لا يوجد اصناف بالفاتورة  ", vbCritical, " خطــأ 2 "
        DoCmd.CancelEvent
        DoCmd.close
        GoTo Done   'jj
    End If
    If Me.num > 0 Then
        MsgBox " خطــأ... لم يتم الانتقال الي فاتورة جديدة ", vbCritical, " خطــأ 3 "
        DoCmd.CancelEvent
        DoCmd.close
        GoTo Done   'jj
    End If
    If IsNull(Me.totalinvoice) Or IsNull(Me.itemcount) Then
        MsgBox "ادخل اصناف الفاتورة ", vbInformation, " "
        Me.F_ordersubform.SetFocus
        Exit Sub    'jj
     End If
     If (Me.totalinvoice) = 0 Then
        MsgBox "ادخل اصناف الفاتورة ", vbInformation, " "
        Me.F_ordersubform.SetFocus
        Exit Sub    'jj
     End If
     If IsNull([F_ordersubform]![Qty]) And ([F_ordersubform]![itemcode]) > 0 Then
        MsgBox "ادخل العدد ", vbInformation, " "
        Me.F_ordersubform.SetFocus
        [F_ordersubform]![Qty].SetFocus
        Exit Sub    'jj
   End If
   If Me.discount > Me.totalinvoice Or Me.totalinvoice < 0 Then
        MsgBox "مبلغ الخصم اكبر من مبلغ الفاتورة ...! ", vbCritical, "  خطــــأ "
        Me.discount = 0
    ' Me.cash.SetFocus
    '  Me.discount.SetFocus
        Exit Sub    'jj
  End If
  
Done:
    ' DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
       Me.tim.Value = Format(Time, "hh:mm AMPM")
       Me.cashier = USID
       Me.due = Me.amount
       Me.num.Value = Format([orderno], "0000000")
    Refresh
    Set Q = CurrentDb.OpenRecordset("SELECT torderno.orderno, torderno.s FROM [torderno] where s=false;")
    Q.Edit
    Q!s = True
    Q.Update
    Refresh
    DoCmd.OpenReport "s", acViewNormal, , "[orderno] = " & Me![orderno]
    Refresh
    'On Error Resume Next
       'DoCmd.SetWarnings False
        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


    

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