تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] منع تكرار البيانات في عند الادخال
#1
لدي قاعدة بيانات باسم data مكونه من ثلاث جداول 
جدول tan (المراجعين)
وجدول mtl (الحوادث)
وجدول aml (المخالفات)

الشرح كالتالي اللي ابيه

انا اضفت بيانات عندي في جدول الحوادث وجدول المخالفات

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

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

 الحوادث اذا لم يكن موجود مواصله ادخال الشخص مراجع عادي بجدول المراجعين

هذا الكود وشغال معاى
كود :
Try
           If connAccess999.State = ConnectionState.Closed Then connAccess999.Open()

           Dim cmd As New OleDbCommand("SELECT COUNT([id_mtl]) FROM [mtl]  WHERE [id_mtl]=? ", connAccess999)
           cmd.Parameters.AddWithValue("@", Val(id_mr.Text))
           If cmd.ExecuteScalar > 0 Then

           End If
           MsgBox("الشخص مطلوب لقسم الحوادث!", MsgBoxStyle.Exclamation, "تنبية!")

           Return


           Dim arrImage() As Byte
           Dim myMs As New IO.MemoryStream
           If Not IsNothing(pic_mr.Image) Then
               pic_mr.Image.Save(myMs, pic_mr.Image.RawFormat)
               arrImage = myMs.GetBuffer
           Else
               arrImage = Nothing
           End If

           time_mr.Text = Format(Date.Today, "dd/MM/yyyy")
           sad_mr.Text = TimeOfDay
           Dim cmdinsert As New OleDbCommand("insert into tan (name_mr, id_mr,jn_mr,num_mr,jeh_mr,time_mr,sad_mr,pic_mr) values (?,?,?,?,?,?,?,?)")
           cmdinsert.Parameters.AddWithValue("@", name_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", Val(id_mr.Text))
           cmdinsert.Parameters.AddWithValue("@", jn_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", num_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", jeh_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", time_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", sad_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", arrImage)
           cmdinsert.Connection = connAccess999
           cmdinsert.ExecuteNonQuery()
           MsgBox("تم حفظ البيانات بنجاح")
           name_mr.Clear()
           id_mr.Clear()
           jn_mr.Clear()
           num_mr.Clear()
           jeh_mr.Clear()
           time_mr.Clear()
           sad_mr.Clear()
           pic_mr.Image = Nothing
       Catch ex As Exception
           MsgBox(ex.Message.ToString)
       End Try

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

هذا الكود
 
كود :
Try
           If connAccess999.State = ConnectionState.Closed Then connAccess999.Open()

           Dim cmd As New OleDbCommand("SELECT COUNT([id_mtl]) FROM [mtl]  WHERE [id_mtl]=? ", connAccess999)
           cmd.Parameters.AddWithValue("@", Val(id_mr.Text))
           If cmd.ExecuteScalar > 0 Then

           End If
           MsgBox("الشخص مطلوب لقسم الحوادث!", MsgBoxStyle.Exclamation, "تنبية!")

           Dim cmmd As New OleDbCommand("SELECT COUNT([id_aml]) FROM [aml]  WHERE [id_aml]=? ", connAccess999)
           cmmd.Parameters.AddWithValue("@", Val(id_mr.Text))
           If cmmd.ExecuteScalar > 0 Then

           End If
           MsgBox("الشخص مطلوب لقسم المخالفات!", MsgBoxStyle.Exclamation, "تنبية!")
           Return


           Dim arrImage() As Byte
           Dim myMs As New IO.MemoryStream
           If Not IsNothing(pic_mr.Image) Then
               pic_mr.Image.Save(myMs, pic_mr.Image.RawFormat)
               arrImage = myMs.GetBuffer
           Else
               arrImage = Nothing
           End If

           time_mr.Text = Format(Date.Today, "dd/MM/yyyy")
           sad_mr.Text = TimeOfDay
           Dim cmdinsert As New OleDbCommand("insert into tan (name_mr, id_mr,jn_mr,num_mr,jeh_mr,time_mr,sad_mr,pic_mr) values (?,?,?,?,?,?,?,?)")
           cmdinsert.Parameters.AddWithValue("@", name_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", Val(id_mr.Text))
           cmdinsert.Parameters.AddWithValue("@", jn_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", num_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", jeh_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", time_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", sad_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", arrImage)
           cmdinsert.Connection = connAccess999
           cmdinsert.ExecuteNonQuery()
           MsgBox("تم حفظ البيانات بنجاح")
           name_mr.Clear()
           id_mr.Clear()
           jn_mr.Clear()
           num_mr.Clear()
           jeh_mr.Clear()
           time_mr.Clear()
           sad_mr.Clear()
           pic_mr.Image = Nothing
       Catch ex As Exception
           MsgBox(ex.Message.ToString)
       End Try


ولكن عند التجربه يتحقق واذا كان الهويه موجود في اول استفسار اللي هو قسم الحوادث يظهر رساله مطلوب في قسم الحوادث 

ثم تظهر رساله ثانية مباشره مطلوب في قسم المخالفات علما انه ليس مضاف مطلوب في قسم المخالفات 

اريد الكود يتحقق من الجدولين اذا موجود في احد الجداول اظهر رساله مطلوب في القسم ............... (القسم اللي مطلوب فيه سواء الحوادث او المخالفات )

تم ارفاق مثال للتعديل عليه 


الملفات المرفقة
.rar   تجربة التكرار.rar (الحجم : 3.26 م ب / التحميلات : 50)
الرد }}}
تم الشكر بواسطة:
#2
استبدل هذا الكود بالكود الذي عندك في نافذة كود (Form1)..

كود :
Imports System.Data.OleDb
Imports JbsaPrintDataGridView

Public Class Form1
   Public connAccess999 As New OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;" & "data source=" & Application.StartupPath & "\DATA.accdb")

   'ConnP تعريف كائن جديد للاتصال مع قاعدة البيانات بشكل سريع ومنفصل بحيث لا يتداخل مع كائن الاتصال الأساسي مع البرنامج
   Public ConnP As New OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;" & "data source=" & Application.StartupPath & "\DATA.accdb")

   Function Existing_Value(sSQLSelect As String, pConn As OleDbConnection) As Boolean
       '  هذا إجراء للتحقق من أي قيمة موجودة أو لاااا بأي جدول بأي قاعدة بيانات
       If pConn.State <> ConnectionState.Open Then pConn.Open()

       Dim cmd As OleDbCommand = New OleDbCommand(sSQLSelect, pConn)
       Dim dt As New DataTable

       dt.Load(cmd.ExecuteReader())

       If pConn.State <> ConnectionState.Closed Then pConn.Close()
       If dt.Rows.Count > 0 Then
           Return True
       Else
           Return False
       End If
   End Function

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Try
           '  التحقق من تواجد رقم الهوية في جداول أخرى قبل الاتصال بـ قاعدة البيانات للحفظ
           If Existing_Value("SELECT * FROM [mtl]  WHERE [id_mtl]='" & id_mr.Text.Trim() & "'", ConnP) Then
               MsgBox("الشخص مطلوب لقسم الحوادث!", MsgBoxStyle.Exclamation, "تنبية!")
               Exit Sub
           End If

           If Existing_Value("SELECT * FROM [aml]  WHERE [id_aml]='" & id_mr.Text.Trim() & "'", ConnP) Then
               MsgBox("الشخص مطلوب لقسم المخالفات!", MsgBoxStyle.Exclamation, "تنبية!")
               Exit Sub
           End If

           ' الاتصال مع قاعدة البيانات  واجراء عملية حفظ البيانات
           If connAccess999.State = ConnectionState.Closed Then connAccess999.Open()

           Dim arrImage() As Byte
           Dim myMs As New IO.MemoryStream
           If Not IsNothing(pic_mr.Image) Then
               pic_mr.Image.Save(myMs, pic_mr.Image.RawFormat)
               arrImage = myMs.GetBuffer
           Else
               arrImage = Nothing
           End If

           time_mr.Text = Format(Date.Today, "dd/MM/yyyy")
           sad_mr.Text = TimeOfDay
           Dim cmdinsert As New OleDbCommand("insert into tan (name_mr, id_mr,jn_mr,num_mr,jeh_mr,time_mr,sad_mr,pic_mr) values (?,?,?,?,?,?,?,?)")
           cmdinsert.Parameters.AddWithValue("@", name_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", Val(id_mr.Text))
           cmdinsert.Parameters.AddWithValue("@", jn_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", num_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", jeh_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", time_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", sad_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", arrImage)
           cmdinsert.Connection = connAccess999
           cmdinsert.ExecuteNonQuery()
           MsgBox("تم حفظ البيانات بنجاح")
           name_mr.Clear()
           id_mr.Clear()
           jn_mr.Clear()
           num_mr.Clear()
           jeh_mr.Clear()
           time_mr.Clear()
           sad_mr.Clear()
           pic_mr.Image = Nothing
       Catch ex As Exception
           MsgBox(ex.Message.ToString)
       End Try

   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

   End Sub

   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
       OpenFileDialog1.Filter = "Image Formats (*.PNG; *.JPG; *.BMP) | *.PNG; *.JPG; *.BMP | All Files (*.*) | *.*"

       With OpenFileDialog1
           If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.Cancel Then
               MsgBox("image is not choised")
               Return
           Else
               pic_mr.Image = Image.FromFile(.FileName)
           End If
       End With
   End Sub
   
   Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
       Form3.Show()
   End Sub

   Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
       mtl.Show()
   End Sub


End Class
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: مبرمج صغير 1 , melad2002
#3
(24-01-24, 12:00 AM)Taha Okla كتب : استبدل هذا الكود بالكود الذي عندك في نافذة كود (Form1)..

كود :
Imports System.Data.OleDb
Imports JbsaPrintDataGridView

Public Class Form1
   Public connAccess999 As New OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;" & "data source=" & Application.StartupPath & "\DATA.accdb")

   'ConnP تعريف كائن جديد للاتصال مع قاعدة البيانات بشكل سريع ومنفصل بحيث لا يتداخل مع كائن الاتصال الأساسي مع البرنامج
   Public ConnP As New OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;" & "data source=" & Application.StartupPath & "\DATA.accdb")

   Function Existing_Value(sSQLSelect As String, pConn As OleDbConnection) As Boolean
       '  هذا إجراء للتحقق من أي قيمة موجودة أو لاااا بأي جدول بأي قاعدة بيانات
       If pConn.State <> ConnectionState.Open Then pConn.Open()

       Dim cmd As OleDbCommand = New OleDbCommand(sSQLSelect, pConn)
       Dim dt As New DataTable

       dt.Load(cmd.ExecuteReader())

       If pConn.State <> ConnectionState.Closed Then pConn.Close()
       If dt.Rows.Count > 0 Then
           Return True
       Else
           Return False
       End If
   End Function

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Try
           '  التحقق من تواجد رقم الهوية في جداول أخرى قبل الاتصال بـ قاعدة البيانات للحفظ
           If Existing_Value("SELECT * FROM [mtl]  WHERE [id_mtl]='" & id_mr.Text.Trim() & "'", ConnP) Then
               MsgBox("الشخص مطلوب لقسم الحوادث!", MsgBoxStyle.Exclamation, "تنبية!")
               Exit Sub
           End If

           If Existing_Value("SELECT * FROM [aml]  WHERE [id_aml]='" & id_mr.Text.Trim() & "'", ConnP) Then
               MsgBox("الشخص مطلوب لقسم المخالفات!", MsgBoxStyle.Exclamation, "تنبية!")
               Exit Sub
           End If

           ' الاتصال مع قاعدة البيانات  واجراء عملية حفظ البيانات
           If connAccess999.State = ConnectionState.Closed Then connAccess999.Open()

           Dim arrImage() As Byte
           Dim myMs As New IO.MemoryStream
           If Not IsNothing(pic_mr.Image) Then
               pic_mr.Image.Save(myMs, pic_mr.Image.RawFormat)
               arrImage = myMs.GetBuffer
           Else
               arrImage = Nothing
           End If

           time_mr.Text = Format(Date.Today, "dd/MM/yyyy")
           sad_mr.Text = TimeOfDay
           Dim cmdinsert As New OleDbCommand("insert into tan (name_mr, id_mr,jn_mr,num_mr,jeh_mr,time_mr,sad_mr,pic_mr) values (?,?,?,?,?,?,?,?)")
           cmdinsert.Parameters.AddWithValue("@", name_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", Val(id_mr.Text))
           cmdinsert.Parameters.AddWithValue("@", jn_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", num_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", jeh_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", time_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", sad_mr.Text)
           cmdinsert.Parameters.AddWithValue("@", arrImage)
           cmdinsert.Connection = connAccess999
           cmdinsert.ExecuteNonQuery()
           MsgBox("تم حفظ البيانات بنجاح")
           name_mr.Clear()
           id_mr.Clear()
           jn_mr.Clear()
           num_mr.Clear()
           jeh_mr.Clear()
           time_mr.Clear()
           sad_mr.Clear()
           pic_mr.Image = Nothing
       Catch ex As Exception
           MsgBox(ex.Message.ToString)
       End Try

   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

   End Sub

   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
       OpenFileDialog1.Filter = "Image Formats (*.PNG; *.JPG; *.BMP) | *.PNG; *.JPG; *.BMP | All Files (*.*) | *.*"

       With OpenFileDialog1
           If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.Cancel Then
               MsgBox("image is not choised")
               Return
           Else
               pic_mr.Image = Image.FromFile(.FileName)
           End If
       End With
   End Sub
   
   Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
       Form3.Show()
   End Sub

   Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
       mtl.Show()
   End Sub


End Class

الله يعطيك الف عافيه ويرحم والديك

عمل الكود تمام
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اختصار كود الجمع داخل شبكة البيانات محمد خيري 2 124 25-04-24, 03:30 PM
آخر رد: محمد خيري
  [VB.NET] حل مشكلة الاتصال بقواعد البيانات access loay775 2 211 25-02-24, 06:29 AM
آخر رد: loay775
  سؤال عن عملية حذف سجل من قاعدة البيانات assuhimi 3 288 11-02-24, 08:43 PM
آخر رد: assuhimi
  معرفة عدد مرات تكرار الاسم في الداتاقريدفيو صالح عبدالله 8 471 05-02-24, 04:39 PM
آخر رد: صالح عبدالله
  [VB.NET] مساعدة في استدعاء البيانات معينه من form الأول إلى form 2 بدون التعديل loay775 2 305 18-01-24, 05:04 PM
آخر رد: loay775
  [VB.NET] إعادة استدعاء البيانات من قاعدة بيانات اكسس والاهم الصورة مبرمج صغير 1 1 296 13-01-24, 01:17 PM
آخر رد: مبرمج صغير 1
  [كود] اريد كود إرسال البيانات من الفيجوال بيسك إلىPDF issamsaidd 10 5,906 25-12-23, 06:30 PM
آخر رد: الحزين اليماني
  جملة الاتصال بقاعدة البيانات اكسس محمد خيري 4 397 12-12-23, 03:14 AM
آخر رد: محمد خيري
  كود الاتصال بقاعدة البيانات sqlserver strongriseman 2 449 29-11-23, 09:25 PM
آخر رد: العتيق
Heart [VB.NET] كيفية جعل الدتاجريديد فيو تظهر عندما تكون قاعدة البيانات فارغه الحزين اليماني 1 384 22-11-23, 05:31 PM
آخر رد: justforit

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم