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

نسخة كاملة : البحث تلقائياً عند التبديل بين الـ RadioButton
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم

عند التبديل بين الـ RadioButton  الاول او الثاني تظهر النتيجه 


مثلاُ كتبت كلمه خضره وبحثت عليه في الـ VILLAGE    ظهرت النتيجه مباشره تمام ، اريد عند التبديل الى OZLAHH يظهر مباشره لم يتم العثور على شي .

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


اتمنى تكون الفكره وضحت والمشروع مرفق لكم  .

شكراً للجميع .
هل اجد الكود المناسب حقيقه بحثت في المنتدى لم اجد توضيحاً للكود المطلوب ، سيكون المثال والفكره للتبديل بالبحث شي جيد بالنسبه لي ولبقيه الاعضاء الكرام في المنتدى ,
المثال يعمل كما طلبت؟
ماهي المشكلة لديك؟

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

فقط اريد عند التبديل في الراديو بوتون البحث يكون بشكل تلقائي اتمنى ان تكون الفكره وصلت .
نحن الان مفعلين الاختيار التلقائي بـ راديو بوتون 1 المسمى VILLAGE كويس كده

الان ادخلت كلمت خضره مثلاً وهي موجود في عمود الـ VILLAGE وعملت بحث ظهرت النتيجه كويس .
في نفس الوقت وعلى نفس الكلمه خضره انتقلت واضغط على راديو بوتون 2 المسمى OZLAHH لايظهر شي لاانها غير موجوده في عمود الـ OZLAHH ايضاً تمام

المطلوب الان هو عند العوده بالاخيتار مباشره الى الراديو بوتون 1مباشره تظهر النتيجه السابقه ( التبديل بين الراديو بوتون للبحث تلقائي ) يكون فعال من الى بمعنى حركه الانتقال والبحث مابين الراديو بوتون 1 و2 مفعله بشكل تلقائي للنتائج .

شكرأً
جرب انك تستخدم الحدث click بدلا عن CheckedChanged
واطلع على المثال ففيه ترتيب الاكواد بشكل جيد.
جربت غيرت ولم يتم التفعيل للبحث التلقائي عند التنقل بين الراديو بوتون 1 وبوتون 2

PHP كود :
Private Sub RadioButton1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles RadioButton1.Click

        Dim da 
As New OleDbDataAdapter("SELECT * FROM [Coverage Claims] WHERE [VILLAGE] LIKE @c "con)
 
   End Sub

    Private Sub RadioButton2_Click
(ByVal sender As System.ObjectByVal e As System.EventArgsHandles RadioButton2.Click
        Dim da 
As New OleDbDataAdapter("SELECT * FROM [Coverage Claims] WHERE [OZLAHH] LIKE @c "con)
 
   End Sub 
حدث البحث عندك هو المسؤول عن العملية ..
انسخ حدث البحث وضعه تحت RadioButton لكل منهما

فبمجرد اختيار أي منهما يتم البحث .. واعطاء النتيجة ...

أما الكود الذي وضعته أنت تحت حدث الـ RadioButton    خطأ وما في داعي له أبداً

الكود عندك في حدث البحث فيه أشياء مكررة وغير منطقية 
أقرأ الكود جيداً وراجعه خوة خطوة وستعرف ما المفيد منه وما الشيء الذي لو حذفته لن يغير شيء بمسار التنفيذ ..
(04-10-24, 01:34 AM)Taha Okla كتب : [ -> ]حدث البحث عندك هو المسؤول عن العملية ..
انسخ حدث البحث وضعه تحت RadioButton لكل منهما

فبمجرد اختيار أي منهما يتم البحث .. واعطاء النتيجة ...

أما الكود الذي وضعته أنت تحت حدث الـ RadioButton    خطأ وما في داعي له أبداً

الكود عندك في حدث البحث فيه أشياء مكررة وغير منطقية 
أقرأ الكود جيداً وراجعه خوة خطوة وستعرف ما المفيد منه وما الشيء الذي لو حذفته لن يغير شيء بمسار التنفيذ ..

بارك الله فيك كلامك صحيح ولكن انا عملت الراديو بوتون هو الخيار الافتراضي المفعل لماذا عندما اكتب كلمه في خانه البحث لاتظهر النتيجه مباشره بأعتبار الراديو بوتون واحد محدد ، بل يجب عليا الضغط مره اخرى علشان الامر يمشى هل بالامكان الكتابه والبحث يظهر مباشره RadioButton1.Checked = True
PHP كود :
Private Sub RadioButton1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles RadioButton1.Click
        dt
.Clear()
 
       Label1.Hide()
 
       If textSerch.Text.Trim "" Then Label1.Visible False : Exit Sub
        If textSerch
.Text.Trim.Length 3 Then
            Label1
.Visible True
            Exit Sub
        End 
If

 
       dt.Clear()
 
       Label1.Hide()
 
       If textSerch.Text.Trim.Length >= 3 Then
            If RadioButton1
.Checked True Then

                Dim DS 
As New DataSet
                da 
= New OleDbDataAdapter("Select * From [Coverage Claims] Where [VILLAGE] Like '%" Trim$(textSerch.Text) & "%'"con)

 
               DS.Clear()
 
               da.Fill(DS"VILLAGE")
 
               DataGridView1.DataSource DS
                DataGridView1
.DataMember "VILLAGE"
 
               dt DS.Tables(0)
 
               If dt.Rows.Count 0 Then Label1.Show()
 
           Else
                Dim DS 
As New DataSet
                da 
= New OleDbDataAdapter("Select * From [Coverage Claims] Where [OZLAHH] Like '%" Trim$(textSerch.Text) & "%'"con)

 
               DS.Clear()
 
               da.Fill(DS"OZLAHH")
 
               dt DS.Tables(0)
 
               DataGridView1.DataSource DS
                DataGridView1
.DataMember "OZLAHH"
 
               If dt.Rows.Count 0 Then Label1.Show()


 
           End If

 
       End If
 
       If textSerch.Text "" Then
            Label2
.Show()
 
       Else
            Label2
.Hide()
 
       End If

 
       'التحكم في عرض العمود
        DataGridView1.Columns(0).Width = 40
        DataGridView1.Columns(1).Width = 110
        DataGridView1.Columns(2).Width = 110
        DataGridView1.Columns(3).Width = 130
        DataGridView1.Columns(4).Width = 130
    End Sub

    Private Sub RadioButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.Click
        dt.Clear()
        Label1.Hide()
        If textSerch.Text.Trim = "" Then Label1.Visible = False : Exit Sub
        If textSerch.Text.Trim.Length < 3 Then
            Label1.Visible = True
            Exit Sub
        End If

        dt.Clear()
        Label1.Hide()
        If textSerch.Text.Trim.Length >= 3 Then
            If RadioButton1.Checked = True Then

                Dim DS As New DataSet
                da = New OleDbDataAdapter("Select * From [Coverage Claims] Where [VILLAGE] Like '
%" & Trim$(textSerch.Text) & "%'", con)

                DS.Clear()
                da.Fill(DS, "VILLAGE")
                DataGridView1.DataSource = DS
                DataGridView1.DataMember = "VILLAGE"
                dt = DS.Tables(0)
                If dt.Rows.Count = 0 Then Label1.Show()
            Else
                Dim DS As New DataSet
                da = New OleDbDataAdapter("Select * From [Coverage Claims] Where [OZLAHH] Like '
%" & Trim$(textSerch.Text) & "%'", con)

                DS.Clear()
                da.Fill(DS, "OZLAHH")
                dt = DS.Tables(0)
                DataGridView1.DataSource = DS
                DataGridView1.DataMember = "OZLAHH"
                If dt.Rows.Count = 0 Then Label1.Show()


            End If

        End If
        If textSerch.Text = "" Then
            Label2.Show()
        Else
            Label2.Hide()
        End If
    End Sub 
نسخ الحدث مش يعني تنسخ كل الكود ..

بتضيع كثير وقت ع أشياء بسيطة جداً المفروض تكون عندك من المسلمات .


راجع الأساسيات وراح تفيدك كثير  (حرام تضيع وقتك ع مشروع فيك تخلصه بأقل من يومين -- لو هذا الوقت انصرف ع الاساسيات راح توفر عليك كثير بإنتاجية مشاريعك اللاحقة)..

هذا الكود بعد بعض التعديلات (فيك تبسطه أكثر من هيك بكثير) .. 
كود :
   Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
       textSerch_TextChanged(Nothing, Nothing)
   End Sub

   Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged
       textSerch_TextChanged(Nothing, Nothing)
   End Sub

   Private Sub textSerch_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles textSerch.TextChanged
       dt.Clear()
       
       If textSerch.Text.Trim = "" Then Label1.Visible = False : Exit Sub

       If textSerch.Text.Trim.Length < 3 Then
           Label1.Visible = True
           Exit Sub
       End If

       Dim strCity As String

       dt.Clear()
       Label1.Hide()

       If RadioButton1.Checked = True Then
           strCity = "VILLAGE"
       Else
           strCity = "OZLAHH"
       End If

       Dim DS As New DataSet
       da = New OleDbDataAdapter("Select * From [Coverage Claims] Where [" & strCity & "] Like '%" & Trim$(textSerch.Text) & "%'", con)

       DS.Clear()
       da.Fill(DS, strCity)
       DataGridView1.DataSource = DS
       DataGridView1.DataMember = strCity
       dt = DS.Tables(0)
       If dt.Rows.Count <= 0 Then Label1.Show()

       'التحكم في عرض العمود
       DataGridView1.Columns(0).Width = 40
       DataGridView1.Columns(1).Width = 110
       DataGridView1.Columns(2).Width = 110
       DataGridView1.Columns(3).Width = 130
       DataGridView1.Columns(4).Width = 130

   End Sub

راجع الأساسيات ولا تفوت شي منها ..
أكاديمية حسونة ع يوتيوب - فيها كثير أشياء بيحتاجها كل مبرمج ..