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

حفظ سجلات النموذج الفرعي في جدول منفصل


athal

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

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

تقبل الله طاعتكم وكل عام وانتم بخير

اريد حفظ بيانات نموذج فرعي  واريد حفظ البيانات في جدول

في حالة وجود سجل واحد يحفظ

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

بوركتم وجوزيتم خيرا

 

invoice2.rar

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

وعليكم السلام

انت لم توضح المطلوب  ففي اول مشاركة تريد الحفظ بشرط  وهنا تريد الحفظ فقط وايضا لم تبين الجدول المراد الحفظ اليه  كل هذا اي واحد من الاخوة الاعضاء يمر من هنا ويقرأ لا يعلم ما يصنع لك

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

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

41 minutes ago, ابوخليل said:

وعليكم السلام

انت لم توضح المطلوب  ففي اول مشاركة تريد الحفظ بشرط  وهنا تريد الحفظ فقط وايضا لم تبين الجدول المراد الحفظ اليه  كل هذا اي واحد من الاخوة الاعضاء يمر من هنا ويقرأ لا يعلم ما يصنع لك

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

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

بارك الله فيك استاذي الكريم ابو خليل

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

اخطأت في بيان المطلوب وما اقصده ان الكود في زر الحفظ يعمل بشكل سليم في حالة وجود سجل واحد

ولكن المشكلة عند وجود اكثر من سجل فالكود يكرر الصنف الاول بعدد  السجلات الموجودة

وطبعا المطلوب هو حفظ السجلات كلها

بارك الله فيك وجزاك الخير

وتقبل الله طاعاتكم

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

استأذن من استاذنا ابو خليل

اخ @athal اتفضل 

استخدمت هذا الكود 

Private Sub InvSave_Click()
    Dim MyFormCount As Integer
    Dim i As Integer
    Dim Sql As String

MyFormCount = Nz(Forms![invoice table]![InvoiceDetails Table Subform]!MyFormCount, 0)
    If MyFormCount = 0 Then
            MsgBox ""
        Exit Sub
        Else
            DoCmd.SetWarnings False
                Forms![invoice table]![InvoiceDetails Table Subform].SetFocus
                    DoCmd.GoToRecord , , acFirst
                        For i = 1 To MyFormCount
                            Sql = "INSERT INTO InvSaveTable ( ItemID, Quantity, ItemName, ItemPrice, InvoiceID, InvoiceDate ) SELECT [Forms]![Invoice Table]![InvoiceDetails Table Subform].[Form]![ItemID] AS ItemID, [Forms]![Invoice Table]![InvoiceDetails Table Subform].[Form]![Quantity] AS Quantity, [Forms]![Invoice Table]![InvoiceDetails Table Subform].[Form]![ItemName] AS ItemName, [Forms]![Invoice Table]![InvoiceDetails Table Subform].[Form]![ItemPrice] AS ItemPrice, [Forms]![Invoice Table]![InvoiceDetails Table Subform].[Form]![InvoiceID] AS InvoiceID, [Forms]![Invoice Table]![InvoiceDate] AS InvoiceDate"
                        DoCmd.RunSQL (Sql)
                    DoCmd.GoToRecord , , acNext
                Next i
            DoCmd.SetWarnings False
    End If
        MsgBox (MyFormCount & " new recoreds are saved")
End Sub

واليك المرفق

 

invoice2-2003.rar

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

 شكرا للاستاذ شفان

وهذا تعديل على الكود

Dim rs As DAO.Recordset
Dim i, r As Integer
Set rs = Me.Subform.Form.RecordsetClone
rs.MoveLast
r = rs.RecordCount
rs.MoveFirst
For i = 1 To r
CurrentDb.Execute "INSERT INTO InvSaveTable " & vbCrLf & _
"(InvoiceID,InvoiceDate,ItemID,ItemName,ItemPrice,Quantity)" & vbCrLf & _
"VALUES('" & InvoiceID & "','" & InvoiceDate & "','" & rs!ItemID & "'," & vbCrLf & _
"'" & rs!ItemName & "','" & rs!ItemPrice & "','" & rs!Quantity & "') "
rs.MoveNext
Next
rs.Close
Set rs = Nothing
MsgBox "new recoreds are saved"

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

ملاحظة يجب عدم ترك مسافات فارغة عند تسمية الكائنات  ، ولاحظ اني غيرت اسم  عنصر تحكم النموذج الفرعي

db1.rar

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

اتمام المعلومة

الان, ابوخليل said:

ملاحظة يجب عدم ترك مسافات فارغة عند تسمية الكائنات

واذا تسميت الكائن وبها مسافة

يجب عليك ان تكتبه في محرر الاكواد []

اي النموذج باسم InvoiceDetails Table Subform سيكون [InvoiceDetails Table Subform]

هذا والله يعلم

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

18 hours ago, Shivan Rekany said:
20 hours ago, Shivan Rekany said:

استأذن من استاذنا ابو خليل

اخ @athal اتفضل 

استخدمت هذا الكود 



Private Sub InvSave_Click()
    Dim MyFormCount As Integer
    Dim i As Integer
    Dim Sql As String

MyFormCount = Nz(Forms![invoice table]![InvoiceDetails Table Subform]!MyFormCount, 0)
    If MyFormCount = 0 Then
            MsgBox ""
        Exit Sub
        Else
            DoCmd.SetWarnings False
                Forms![invoice table]![InvoiceDetails Table Subform].SetFocus
                    DoCmd.GoToRecord , , acFirst
                        For i = 1 To MyFormCount
                            Sql = "INSERT INTO InvSaveTable ( ItemID, Quantity, ItemName, ItemPrice, InvoiceID, InvoiceDate ) SELECT [Forms]![Invoice Table]![InvoiceDetails Table Subform].[Form]![ItemID] AS ItemID, [Forms]![Invoice Table]![InvoiceDetails Table Subform].[Form]![Quantity] AS Quantity, [Forms]![Invoice Table]![InvoiceDetails Table Subform].[Form]![ItemName] AS ItemName, [Forms]![Invoice Table]![InvoiceDetails Table Subform].[Form]![ItemPrice] AS ItemPrice, [Forms]![Invoice Table]![InvoiceDetails Table Subform].[Form]![InvoiceID] AS InvoiceID, [Forms]![Invoice Table]![InvoiceDate] AS InvoiceDate"
                        DoCmd.RunSQL (Sql)
                    DoCmd.GoToRecord , , acNext
                Next i
            DoCmd.SetWarnings False
    End If
        MsgBox (MyFormCount & " new recoreds are saved")
End Sub

واليك المرفق

 

invoice2-2003.rar

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

استاذي الكريم شفان

بارك الله فيك وجزاك الخير

لك دعوات طيبات في شهر الخير والبركة 

 

 

 

اتمام المعلومة

واذا تسميت الكائن وبها مسافة

يجب عليك ان تكتبه في محرر الاكواد []

اي النموذج باسم InvoiceDetails Table Subform سيكون [InvoiceDetails Table Subform]

هذا والله يعلم

جوزيت خيرا من معلم فاضل وكريم

 

 

19 hours ago, ابوخليل said:

 شكرا للاستاذ شفان

وهذا تعديل على الكود


Dim rs As DAO.Recordset
Dim i, r As Integer
Set rs = Me.Subform.Form.RecordsetClone
rs.MoveLast
r = rs.RecordCount
rs.MoveFirst
For i = 1 To r
CurrentDb.Execute "INSERT INTO InvSaveTable " & vbCrLf & _
"(InvoiceID,InvoiceDate,ItemID,ItemName,ItemPrice,Quantity)" & vbCrLf & _
"VALUES('" & InvoiceID & "','" & InvoiceDate & "','" & rs!ItemID & "'," & vbCrLf & _
"'" & rs!ItemName & "','" & rs!ItemPrice & "','" & rs!Quantity & "') "
rs.MoveNext
Next
rs.Close
Set rs = Nothing
MsgBox "new recoreds are saved"

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

ملاحظة يجب عدم ترك مسافات فارغة عند تسمية الكائنات  ، ولاحظ اني غيرت اسم  عنصر تحكم النموذج الفرعي

db1.rar

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

استاذي الكريم ابو خليل

بارك الله فيك وجزاك الله الخير

اضافة جميلة وطيبة

لك دعوات طيبات في شهر الخير والبركة

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

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