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

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

اريد اضافة صف جديد  في حالة جداول مرتبطة بعلاقة راس براس الجدول الاساسي tb1  , الجدول الثاني tb2


حيث الكود التالي  لاختيار البيانات


كود :
Dim cmd As OleDbCommand = New OleDbCommand("SELECT tb1.ID_mail ,tb1.clien_mail, tb1.model_mail, tb2.probl_acce,tb2.main_acce,tb2.typ_acce  FROM tb1, tb2 where tb1.ID_mail and tb2.ID_acce", con)
           con.Open()
           DataAdapter1 = New OleDbDataAdapter(cmd)
           Dim builder As OleDbCommandBuilder = New OleDbCommandBuilder(DataAdapter1)
           DataSet1 = New DataSet()
           DataAdapter1.Fill(DataSet1, "tb1,tb2")
           DataGridView1.DataSource = DataSet1
           DataGridView1.DataMember = "tb1,tb2"
           con.Close()


كود الاضافة ويعطي خطاء عند الاضافة


كود :
Me.Label2.Text = Me.DataSet1.Tables("tb1").Compute("Max(ID_mail)", "ID_mail >= 0") + "1"

       Using con As New OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=" & Application.StartupPath & "\web_database.accdb;Jet OLEDB:Database Password=12345")
           Using cmd As New OleDbCommand("insert into tb1,tb2 (ID_mail,clien_mail,model_mail,probl_acce,main_acce,typ_acce) values(@ID_mail,@clien_mail,@model_mail,@probl_acce,@main_acce,@typ_acce)", con)
               cmd.Parameters.AddWithValue("@ID_mail", Label2.Text)
               cmd.Parameters.AddWithValue("@clien_mail", TextBox2.Text)
               cmd.Parameters.AddWithValue("@model_mail", TextBox3.Text)
               cmd.Parameters.AddWithValue("@probl_acce", TextBox4.Text)
               cmd.Parameters.AddWithValue("@main_acce", TextBox5.Text)
               cmd.Parameters.AddWithValue("@typ_acce", TextBox6.Text)
               If con.State = ConnectionState.Open Then
                   con.Close()
               End If
               con.Open()
               cmd.ExecuteNonQuery()
               con.Close()
           End Using
       End Using
الاضافة تتم لكل جدول على حدة
وحقل الترقيم التلقائي id لكل جدول ولا مرة واحدة لاول جدول

حاولات بالكود دة ولكن يعطي خطا بحقل المفتاح اول لاين



كود :
Me.Label2.Text = Me.DataSet1.Tables("tb1").Compute("Max(ID_mail)", "ID_mail >= 0") + "1"

       Dim con As New OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=" & Application.StartupPath & "\web_database.accdb;Jet OLEDB:Database Password=12345")
       Dim cmd As New OleDbCommand("insert into tb1 (ID_mail,clien_mail,model_mail) values(@ID_mail,@clien_mail,@model_mail,)", con)
       cmd.Parameters.AddWithValue("@ID_mail", Label2.Text)
       cmd.Parameters.AddWithValue("@clien_mail", TextBox2.Text)
       cmd.Parameters.AddWithValue("@model_mail", TextBox3.Text)
     

       cmd = New OleDbCommand("insert into tb2 (ID_acce,probl_acce,main_acce,typ_acce) values(@ID_acce,@probl_acce,@main_acce,@typ_acce)", con)
       cmd.Parameters.AddWithValue("@ID_acce", Label2.Text)
       cmd.Parameters.AddWithValue("@probl_acce", TextBox4.Text)
       cmd.Parameters.AddWithValue("@main_acce", TextBox5.Text)
       cmd.Parameters.AddWithValue("@typ_acce", TextBox6.Text)
       If con.State = ConnectionState.Open Then
           con.Close()
       End If
       con.Open()
       cmd.ExecuteNonQuery()
       con.Close()