منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : اريد حفظ وتحديث البيانات بعد تعبئتها في الداتا جريد فيو ---
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله وبركاته
كيف أحوالكم أخوتي
لدى مشروع صغير أعمل عليه في بيئة الدوت نت
اشتغل على إصدار 2010
بقاعدة بيانات أكسيس اسمها DB.accdb وبالطبع الاتصال يكون عن طريق OleDbConnection
لدى جدولين
الأول يحتوى على معلومات الأصناف (الكود , اسم الصنف , السعر , الكمية )
والثاني لتسجيل المبيعات
ما أريده يا شباب الخير
بعد إدراج الأصناف بالداتا جريد فيو
1- يتم حفظ جميع الأصناف في جدول المبيعات ( تم تنفيذه)
2- يتم تحديث جدول الأصناف بخصم الكميات المباعه والمدرجه في الداتا جريد فيو ( المطلوب )
لقد حاولت مرارا وتكرار باستخدام For .. Next
ولكن كل محاولاتي بائت بالفشل
بالله عليكم ساعدوني
ولكم جزيل الشكر والثواب
صورة للتوضيح



نموذج من المشروع للتعديل عليه[attachment=6049]
اعذرني اخي على قلة وقتي ولاكن هذا مثال اعتقد انه لأخي سعود وفقه الله

يمكن منه ان يفيدك في نفس مشروعك

http://www.gulfup.com/?AOHLzb
أحي الكريم العزابي
لا ادرى باي الكلام أشكرك على محاولتك مساعدتى
ولكن المشروع المرفق لم يجدى نفعا معى لأنه لا يعتمد على مخزون
شكرا لك أخي الكريم
وأنتظر من أحد الأعضاء الكرام مساعدتى
إقتباس : اعذرني اخي على قلة وقتي ولاكن هذا مثال اعتقد انه لأخي سعود وفقه الله
واياك اخي الكريم .. لكن المشروع من برمجة وتصميم الاخ ramilove بارك الله فيه.
ياشباب الله يبارك فيكم
عاوز حل ....
بالله عليكم
انت تريد مثلاً اذا بعت 50 صندوق من اصل 150 صندوق تصبح الكمية 100 في الجدول
هل هذا ما تريد
اخي الكريم اطلعت على المشروع ووجدت اكواد لم افهمها .. فلو تريد اسوي مثال بالفكرة ونت عاد تشوف رايك فيه خبرني.
إقتباس :انت تريد مثلاً اذا بعت 50 صندوق من اصل 150 صندوق تصبح الكمية 100 في الجدول
هل هذا ما تريد

أخي الكريم honest
أذا كان الأمر يقتصر على صنف واحد باتت المشكلة محلولة
الداتا جريد فيو هنا لعرض اصناف الفاتورة فقط ويتم تفريغها بعد الحفظ وتحديث الكمية في قاعدة البيانات
ما اريده هو ما قصدته انت بعينه ولكن مع تكرار الأمر للاصناف الموجوده كلها في الداتا جريد فيو باستخدام For .. Next وحفظها وتحديثها في قاعدة البيانات
بمعنى اخر ....
قمت مثلا بتسجيل 4 اصناف مختلفين في الداتا جريد فيو
والمباع من كل صنف 10 من الكمية
المطلوب خصم القيمة المباعة من كل الاصناف الموجوده مره واحده

إقتباس :اخي الكريم اطلعت على المشروع ووجدت اكواد لم افهمها .. فلو تريد اسوي مثال بالفكرة ونت عاد تشوف رايك فيه خبرني.

أخي الفاضل سعود
اشكرك جدا لطرحك هذا واتمنى منك مساعدتى
ما اريده ببساطه
أن يتم حفظ الاصناف المباعه , وتحديث الكمية في قاعدة البيانات بكود واحد يعتمد على دالة For ....Next لكي يتم التكرار برمجيا
ملحوظه قاعدة البيانات المستخدمة من نوع أكسيس
انتظر منك المثال
شاكر جدا لكم إخواني الأكارم


والمثال مرفق
كم أنت كبير أخي سعود
تعجز الكلمات وتتوارى الحروف ويخجل القلم ان يقف هذا الموقف,
فقد تخونه العبارات وتتشتت الجمل ويضيع المعنى ,ولا يصل الهدف ,
أشكرك لأنك أجتهدت لترد على سائل وتساعده
ولكنى لم استطيع فتح المشروع اعتقد انه تم تنفيذه بإصدار أعلى مما انا عليه
فانا اعمل على إصدار 2010
عموما أبشرك أخي فلقد وفقنى الله للوصول إلى الحل الصحيح
فكما تفضلت حضرتك في المثال الخاص بك
ان يتم البيع ويتم بعدها تحديث قاعدة البيانات بخصم الكميات المباعة من الكميات الموجود
-----
كان من السهل أن يتم هذا الإجراء بالنسبة إلى في حالة ما إذا كان المباع صنفا واحدا بهذا الكود
كود :
UPDATE kotob SET mojod = mojod - [?] WHERE (((tid = [?])))

طيب إذا كان المباع أكثر من صنف ( أصناف مختلفة بكميات مختلفة )
قمت بإنشاء إجراء مخزن في الاكسيس كالاتى
قمت بكتابة الكود ووضعته في حلقة For ... next
ليصبح بهذا الشكل
كود :
For I As Integer = 0 To Me.dgv.Rows.Count - 1
               Dim ecode As Int32 = CInt(Me.dgv.Rows(I).Cells(0).Value) 'تخزين الآي دي الخاص بالمادة
               'جلب الكمية الحالية للمادة المحددة
               Dim DsNowQ As New DataSet
               MyMod.Me_DSFillText(DsNowQ, "Select enum From esanf where ecode=" & ecode & "", "esanf")
               Dim NowQ As Double = CDbl(DsNowQ.Tables(0).Rows(0).Item(0))
               Dim GridQ As Double = CDbl(Me.dgv.Rows(I).Cells(3).Value)
               Dim NewQ As Double
               NewQ = NowQ - GridQ
               'البدء بعملية التعديل لجميع الأصناف بعاليه
               MyMod.Me_SqlExecute("Update esanf Set enum =" & NewQ & " Where ecode= " & ecode & "", False)
           Next
esanf = جدول الأصناف في قاعدة البيانات
enum = حقل الكمية الموجود في جدول الاصناف وهو بيت القصيد
sanf = اسم الصنف المباع ويتم التطابق عليه من الداتا جريد فيو
MyMod.Me_SqlExecute = إجراء مخزن في مديول
وهو
كود :
If MsgState = True Then
           If MsgBox(Msg, MyMod.Me_MsgQuestion, MyMod.Me_MsgCaption) = vbYes Then
               Dim Cmd As New OleDbCommand(SqlStr, MyMod.Conn)
               Cmd.CommandType = CommandType.Text
               If MyMod.Conn.State = ConnectionState.Open Then MyMod.Conn.Close()
               Conn.Open()
               Cmd.ExecuteNonQuery()
               MyMod.Conn.Close()
               Cmd.Dispose()
           End If
           Return True
       Else
           Dim Cmd As New OleDbCommand(SqlStr, MyMod.Conn)
           Cmd.CommandType = CommandType.Text
           If MyMod.Conn.State = ConnectionState.Open Then MyMod.Conn.Close()
           Conn.Open()
           Cmd.ExecuteNonQuery()
           MyMod.Conn.Close()
           Cmd.Dispose()
       End If
       Return True

عذرا للإطالة ......
واشكرك جدا
الصفحات : 1 2