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

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

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

لدي مشكلة واجهتني وانا بصدد عمل مشروع برنامج لإدارة المستودعات للمنضمة التي اعمل بها 
حيث انني لست محترف ولكن لإثبات نفس في منصبي الحالي كمسئول المستودعات والمشتريات 

لا أطيل عيكم احبتي 

قد تم عمل قاعد بيانات اكسس  باسم storemng بداخلها جدول بإسم product وهو يحمل ثلاث أعمدة 
الأول  nump/ رقم الصنف من نوع رقم صحيح
الثاني namep/ اسم الصنف من نوع نص 
الثالث now / الكمية المتوفرة من نوع رقم صحيح 



أما الفورم متكون من 3 تيكست بوكس و 3 زر بوتون 

وفي الجينرال تم عمل الكود التالي 

Imports System.Data

Imports System.Data.OleDb

أما في داخل الفورم تم عمل الكود التالي للاتصال بقاعدة البيانات حيث أن ليس لدي مشكلة في الاتصال 

 Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=storemng.accdb")


في زر الاضافة تم عمل الكود التالي 


كود :
Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click

       If (Integer.Parse(TextBox2.Text) AndAlso String.IsNullOrWhiteSpace(TextBox3.Text) AndAlso Integer.Parse(TextBox4.Text)) Then
           MessageBox.Show("يجب تعبئة جميع الفراغات قبل الاضافة")
           Return
       End If

       'مرحلة تعريف أمر إضافة
       Dim cmd As New OleDbCommand("insert into products (nump, namep, now) values ('& text2.text & ','" & TextBox3.Text & "','  & TextBox4.Text & ')")

     

       cmd.Connection = con
       con.Open()
       cmd.ExecuteNonQuery()
       con.Close()
       MessageBox.Show("تم إضافة الصنف بنجاح")
       TextBox2.Text = String.Empty
       TextBox3.Text = String.Empty
       TextBox4.Text = String.Empty


   End Sub
End Class

اعلم بأن الكود خطأ واتوقع الخطأ في السطر الأول 

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

فأرجو منكم تعديل الكود حتى يتوافق مع زر الاضافة ولكم جزيل الشكر 

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

شوف إذا كان الحقل رقم لا تضعه داخل علامات(' ') وإن شاء تمام
PHP كود :
Dim cmd As New OleDbCommand(" INSERT INTO  [products] ([nump], [namep], [now]) VALUES ( '" Me.TextBox2.text "' ,'" Me.TextBox3.Text "' ,'" Me.TextBox4.Text "' ) "con

لكن هذه الطريقة أفضل ومريحة وذكرها عدة أعضاء هنا
PHP كود :
' مرحلة تعريف أمر إضافة
Using cmd As New OleDbCommand(" INSERT INTO [products] ( [nump], [namep], [now]) VALUES (@nump, @namep, @now)", con)
    cmd.Parameters.AddWithValue("@nump", Me.TextBox2.text)
    cmd.Parameters.AddWithValue("@namep", Me.TextBox3.Text)
    cmd.Parameters.AddWithValue("@now", Me.TextBox4.Text)
    con.Open()
    cmd.ExecuteNonQuery()
    con.Close()
End Using 

أسأل الله العلي القدير أن يوفقك ونفع بك ورحم والديك

ما قصـرت اخوي الوليد كود صحيح وتم العمل به جزاك الله خير

دمت سالما

اعتذر منك كيف اظهر مسج بوكس بعدم ترك البيانات فارغة

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

شوف هذا التعديل كامل وإن شاء الله يكون تمام
نلاحظ ان مربعات النص المخصصة للأرقام وضعناها في دالة Val
ومربعات النص المخصصة للنصوص وضعنا آخرها Trim عشان نحذف أي مسافات زائدة قبلها أو بعدها
PHP كود :
Private Sub Button6_Click(sender As ObjectAs EventArgs)

    If (
Val(Me.TextBox2.Text) = 0) Or (Me.TextBox3.Text.Trim "") Or (Val(Me.TextBox4.Text) = 0Then
        MessageBox
.Show("يجب تعبئة جميع الفراغات قبل الاضافة")
        Exit 
Sub
    End 
If

    Try

        
'مرحلة تعريف أمر إضافة
        Using cmd As New OleDbCommand("INSERT INTO [products] ([nump], [namep], [now]) values (@nump, @namep, @now)", con)
            cmd.Parameters.AddWithValue("@nump", Val(Me.TextBox2.Text))
            cmd.Parameters.AddWithValue("@namep", Me.TextBox3.Text.Trim)
            cmd.Parameters.AddWithValue("@now", Val(Me.TextBox4.Text))
            con.Open()
            cmd.ExecuteNonQuery()
            con.Close()
        End Using

        MessageBox.Show("تم إضافة الصنف بنجاح")

        Me.TextBox2.Text = String.Empty
        Me.TextBox3.Text = String.Empty
        Me.TextBox4.Text = String.Empty

    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub 

الله يسعد ايامك ومن يعز عليك اخوي الوليد فعلا ماقصرت

جزاك الله خير .. ولك دعوة بظهر الغيب

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

جزاك الله خير على الدعوة الطيبة ولك بالمثل دعوة بظهر الغيب

اخي الوليد ،،، لم استغنى عن خدماتك

عملت فورم خاص لفواتير الطلب بإسم فاتورة صرف عهدة ومواد قرطاسية

مكونة من تيكست بوكس لرقم الصنف واخر لاسم الصنف واخر لوحدة الصنف وايضا للكمية

طلبي هو عند كتابة رقم الصنف والضغط على زر أمر ( اظهار البيانات ) يتم ملئ اسم الصنف والوحدة والكمية تلقائي من قاعدة البيانات التي لدي علم ان الجدول في القاعدة مكون من رقم الصنف واسم الصنف والوحدة والكمية

واعتذر على طلباتي التي سوف تكثر ههههه

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

الحمد لله، ما فيها شيء، الي نقدر عليه إن شاء الله ما نبخل،

هذا مثال إن شاء الله يكون ما طلبت،

توجد فيه دالة GetItemInfo من أحد مشاريع الأخوة ترسل لها الرقم وترجع لك بسطر بيانات وليس جدول، وهذا يسهل قراءته
مربع النص الأول تكتب الرقم وتضغط الزر وبعدها إذا وجد الصنف تعبئ مربع النص الثاني بالاسم والثالث بالكمية والرابع بالوحدة
PHP كود :
Imports System.Data.OleDb

Public Class Form1

    Dim conn 
As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = Database1.accdb;")

    Private 
Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click
        Me
.TextBox2.Clear()
        
Me.TextBox3.Clear()
        
Me.TextBox4.Clear()

        
Dim row As DataRow GetItemInfo(Val(Me.TextBox1.Text))
        If 
row IsNot Nothing Then
            Me
.TextBox2.Text row("name")
            
Me.TextBox3.Text row("quantity")
            
Me.TextBox4.Text row("unit")
        
End If

     
End Sub


    
' قراءة بيانات المادة من رقمها وتأتي على شكل سطر بيانات وليس جدول '
    
Public Function GetItemInfo(id As Integer) As DataRow
        
Try
            
Using da As New OleDbDataAdapter("SELECT * FROM [table1] WHERE [id] = @id "conn)
                
da.SelectCommand.Parameters.AddWithValue("@id"id)
                
Using myDatatable As New DataTable
                    
If da.Fill(myDatatable) > 0 Then Return myDatatable.Rows(0)
                
End Using
            End Using
        
Catch ex As Exception
            MsgBox
(ex.Message)
        
End Try
    
End Function

End Class 

جزاك الله خير اخوي الوليد م قصرت جعلها الله في ميزان حسناتك

الكود تم بنجاح ولله الحمد شكرا لك