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

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

قام بنشر

السلام عليكم 

في نموذج sale قمت بعمل زر copy لنقل البيانات الي نموذج buy

لكنه ينقل فقط البيانات الخاصة بالنموذج الرئيسي فقط اريده ان ينقل ايضا بيانات النموذج الفرعي وهي العدد والسعر والصنف كما هو موضح في الفيديو

Downloads.rar

قام بنشر

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

رغم عدم قناعتي بهيكلة وتصميم الملف ، اعتقد أن ذهابك إلى جدول منفصل لعمليات البيع وجدول آخر منفصل لعميات الشراء ، أو جدول الحركات الموحد العام وهو جدول يعرض تفاصيل لجميع حركات المخزن ( بيع ، شراء ، مرتجع ، تحويل من إلى ... إلخ ) ، ولكن بحقول موحدة ( TransID , DocType , DocID , Item , Qty , Price , Discount ) ؛ حيث DocType كمثال ، سيحدد هل الحركة هي حركة بيع أم شراء ، وبذلك لا تحتاج لتكرار حقول sale_qty و buy_qty ....

 

ولكن !!

في فكرة التنفيذ على الزر ، استعمل الحدث التالي :-

Private Sub Command160_Click()
    On Error GoTo ErrHandler

    If Me.NewRecord Or IsNull(Me.sale_id) Then
        MsgBox "يرجى تحديد فاتورة بيع أولاً", vbExclamation + vbMsgBoxRight, ""
        Exit Sub
    End If
    
    If Me.Dirty Then Me.Dirty = False

    Dim db As DAO.Database
    Dim rsBuy As DAO.Recordset
    Dim rsSaleDet As DAO.Recordset
    Dim rsBuyDet As DAO.Recordset
    Dim newBuyID As Long

    Set db = CurrentDb

    Set rsBuy = db.OpenRecordset("buy", dbOpenDynaset)
    rsBuy.AddNew
        rsBuy!reg_date = Me.reg_date
        rsBuy!code = Me.code
        rsBuy!explain = Me.explain
        rsBuy!discount = Me.discount
        rsBuy!note = Me.note
        rsBuy!saving = Me.saving
        
        newBuyID = rsBuy!buy_id
    rsBuy.Update
    rsBuy.Close
    Set rsBuy = Nothing

    Set rsSaleDet = db.OpenRecordset("SELECT * FROM details WHERE sale_id = " & Me.sale_id, dbOpenSnapshot)
    Set rsBuyDet = db.OpenRecordset("details", dbOpenDynaset)

    Do While Not rsSaleDet.EOF
        rsBuyDet.AddNew
            rsBuyDet!buy_id = newBuyID
            rsBuyDet!item = rsSaleDet!item
            rsBuyDet!buy_qty = rsSaleDet!sale_qty
            rsBuyDet!buy_price = rsSaleDet!sale_price
            rsBuyDet!buy_discount_percent = rsSaleDet!sale_discount_percent
            rsBuyDet!note = rsSaleDet!note
            rsBuyDet!m = rsSaleDet!m
            rsBuyDet!check = rsSaleDet!check
            rsBuyDet!serial = rsSaleDet!serial
        rsBuyDet.Update
        
        rsSaleDet.MoveNext
    Loop

    rsSaleDet.Close: Set rsSaleDet = Nothing
    rsBuyDet.Close: Set rsBuyDet = Nothing

    DoCmd.OpenForm "buy", acNormal, , "buy_id = " & newBuyID
    Exit Sub
ErrHandler:
    MsgBox "حدث خطأ أثناء نسخ الفاتورة الحالية", vbCritical + vbMsgBoxRight, ""
End Sub

 

تفضل الملف المرفق :-

yasser_10.zip

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

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

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

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

سجل حساب جديد

تسجيل دخول

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

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

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

Important Information