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

نسخة كاملة : طلب كود التحقق
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3 4
السلام عليكم

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


ودمتم



المثال البسيط مرفق

وهذا كلاس الفورم بشكل كامل
استخدمت دالة تلافيا لتكرار الكود في حال احببت وضعه باكثر من مكان
كود :
Imports System.Data.OleDb

Public Class Form1
    Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=|datadirectory|\db.accdb"
    Dim con As New OleDbConnection(str)
    Sub gd()
        Dim ds As New DataSet
        Dim da As New OleDbDataAdapter("select tn from tb", con)
        ds.Clear()
        d.DataSource = Nothing

        da.Fill(ds, "tb")

        d.DataSource = ds
        d.DataMember = "tb"
        If con.State = ConnectionState.Open Then
            con.Close()
        End If

    End Sub

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        My.Settings.m = Me.Location
        My.Settings.Save()
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Location = My.Settings.m
        gd()
    End Sub
    Function isfound(ByVal t As String) As Boolean
        Dim sql As New OleDbCommand("select count(tn) from tb where tn=@tn", con)
        sql.Parameters.AddWithValue("@tn", t)

        If con.State = ConnectionState.Closed Then
            con.Open()
        End If
        If sql.ExecuteScalar > 0 Then
            ' MsgBox("الاسم موجود", MsgBoxStyle.Critical, "")
            Return True
        Else
            Return False
        End If
        gd()
        If con.State = ConnectionState.Open Then
            con.Close()
        End If
    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If TextBox1.Text.Trim.Replace(" ", "").Length < 2 Then Exit Sub
        If insert(TextBox1.Text) Then
            MsgBox("الاسم موجود", MsgBoxStyle.Critical, "")
        Else
            MsgBox("تم الحفظ", MsgBoxStyle.Information, "")
        End If
    End Sub
    Function insert(ByVal t As String) As Boolean
        If isfound(t) Then
            Return True
        Else
            Dim se As New OleDbCommand("insert into tb(tn) values(@tn)", con)
            se.Parameters.AddWithValue("@tn", t)
            If con.State = ConnectionState.Closed Then
                con.Open()
            End If
            Try
                se.ExecuteNonQuery()
                Return False
            Catch ex As Exception
                Return True
            End Try


        End If
        gd()
        If con.State = ConnectionState.Open Then
            con.Close()
        End If

    End Function
    
End Class
اخي سعود جزاك الله خير

انا عندي مشكله تواجهني دائماً وهي عندما افتح المرفق لا تظهر الكائنات في السلوشن يظهر فقط اسم المشروع

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

تقبل تحياتي
الامر بسيط جدا
اولا رتب الاندكس للادوات بحيث يكون الاول هو الاهم في التحرير.
ثم عند حدث LostFocus اكتب كود التحقق مثلا (لتسريع الامرSmile)
اريد التحقق ان مربع النص (Textbox1)ليس فارغا
في حدث TextBox1_LostFocus نكتب الكود التالي:
كود :
If TextBox1.Text.Trim.Replace(" ", "") = "" Then
            MsgBox("يجب كتابة شيء في مربع النص ", MsgBoxStyle.Critical, "")
            TextBox1.Focus()
            Exit Sub
        End If
لو حبيت مثال ممكن اعهدل على الاول واضيف مربع نص آخر واغير حدث التحقق.
إقتباس :انا عندي مشكله تواجهني دائماً وهي عندما افتح المرفق لا تظهر الكائنات في السلوشن يظهر فقط اسم المشروع
ممكن تصور الجزء الخاص بالمشكلة لان الاسباب كثيرة.
ممكن تشوف الرابط التالي بخصوص (لو ان المشكلة هي اختلاف الاصدار):
كيفية تشغيل مشاريع نسخة احدث بنسخة اقدم من برامج فيجوال استوديو.
المثال بعد التعديل مرفق
اضطريت لعدة حيل لانجاح الفكرة قد توجد طرق افضل لعل احدا يدلنا بها





الكلاس بعد التعديل

كود :
Imports System.Data.OleDb

Public Class Form1
    Dim str As String = "provider=microsoft.ace.oledb.12.0;data source=|datadirectory|\db.accdb"
    Dim con As New OleDbConnection(str)
    Sub gd()
        Dim ds As New DataSet
        Dim da As New OleDbDataAdapter("select tn from tb", con)
        ds.Clear()
        d.DataSource = Nothing

        da.Fill(ds, "tb")

        d.DataSource = ds
        d.DataMember = "tb"
        If con.State = ConnectionState.Open Then
            con.Close()
        End If

    End Sub

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        My.Settings.m = Me.Location
        My.Settings.Save()
        End
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Location = My.Settings.m
        gd()
    End Sub
    Function isfound(ByVal t As String) As Boolean
        Dim sql As New OleDbCommand("select count(tn) from tb where tn=@tn", con)
        sql.Parameters.AddWithValue("@tn", t)

        If con.State = ConnectionState.Closed Then
            con.Open()
        End If
        If sql.ExecuteScalar > 0 Then
            ' MsgBox("الاسم موجود", MsgBoxStyle.Critical, "")
            Return True
        Else
            Return False
        End If
        gd()
        If con.State = ConnectionState.Open Then
            con.Close()
        End If
    End Function
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        For Each tt In Me.Controls
            If TypeOf tt Is TextBox Then
                If tt.text.Trim.Replace(" ", "") = "" Then
                    tt.backcolor = Color.Red
                    Exit Sub
                End If
            End If
        Next

        If TextBox1.Text.Trim.Replace(" ", "").Length < 2 Then Exit Sub





        If insert(TextBox1.Text, Val(TextBox2.Text)) Then
            MsgBox("الاسم موجود", MsgBoxStyle.Critical, "")
        Else
            gd()
            MsgBox("تم الحفظ", MsgBoxStyle.Information, "")
        End If
    End Sub
    Function insert(ByVal t As String, ByVal m As Integer) As Boolean
        If isfound(t) Then
            Return True
        Else
            Dim se As New OleDbCommand("insert into tb(tn,mo) values(@tn,@mo)", con)
            se.Parameters.AddWithValue("@tn", t)
            se.Parameters.AddWithValue("@mo", Val(m))

            If con.State = ConnectionState.Closed Then
                con.Open()
            End If
            Try
                se.ExecuteNonQuery()
                Return False
            Catch ex As Exception
                Return True
            End Try


        End If

        If con.State = ConnectionState.Open Then
            con.Close()
        End If

    End Function
    Dim t_allow As Boolean = False
    Private Sub TextBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus
        If TextBox1.Text.Trim.Replace(" ", "") = "" Then
            MsgBox("يجب كتابة اسم في مربع النص الخاص بالاسم ", MsgBoxStyle.Critical, "")
            TextBox1.Focus()
            Exit Sub
        End If

        If isfound(TextBox1.Text) Then
            t_allow = False
            TextBox1.BackColor = Color.Red
            MsgBox("الاسم محجوز , فضلا جرب اسما آخر ", MsgBoxStyle.Critical, "")
            TextBox1.Focus()
            Exit Sub
        Else
            TextBox1.BackColor = Color.White
            t_allow = True
            TextBox2.Focus()
        End If

    End Sub
    
  

    Private Sub TextBox2_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.LostFocus

        If TextBox1.Text.Trim.Replace(" ", "") = "" Then Exit Sub
        If t_allow = False Then Exit Sub
        If TextBox2.Text.Trim.Replace(" ", "") = "" Then
            MsgBox("يجب كتابة رقم في مربع النص الخاص بالرقم ", MsgBoxStyle.Critical, "")
            TextBox2.Focus()
            Exit Sub
        End If

    End Sub

  
  
  
End Class


الاخ سعود انا اريد ان اتحقق من القيمه وليس ان ان اتحقق من كونه فارغاً ام


انا الذي اريده هو عندما اضغط انتر بعد الكتابه للإنتقال الى الصندوق التالي تظهر الرساله اذا كان ماكتبته موجود في نفس الحقل في قاعدة البيانات واذا لم يكن موجود تتواصل عملية ادخال البيانات لكي لا يتم تعبئة البيانات وبالتالي يكتشف ان القيمه موجوده فيذهب تعب مدخل البيانات سدى في تعبئته لكافة الحقول , المطلوب هو الاتصال بقاعدة البيانات والبحث عن القيمه داخل الحقل والموجوده في التيكت بوكس فاذا كانت موجوده تظهر الرساله ويتم قطع الاتصال ويتم مسح القيمه من التكست بوكس اما اذا كانت غير موجوده يتم قطع الاتصال لكي تتم باقي عمليات الإدخال
لا اريد الحفظ في هذه المرحله بل التحقق فقط اما عملية الحفظ فهي موجوده في زر الحفظ
اخي الكريم المطلوب موجود وزودSmile ومثل مايقولون زيادة الخير خيرين
اضفت تحقق من محتوى مربع النص والانتقال يكون بزر تاب Tab وليس زر الادخال Enter والتعديل بالمثال بسيط جداSmile
الصفحات : 1 2 3 4