الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كود للبحث في قريد فيو وتحديد عنصر وانتقال الى مايحتويه

بدأه bushra.b في 8 أبريل 2012 · 8 رد · 3,984 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

سؤال مهم في الفيجوال بيسك دوت نت

مثلا لدي جدول الاصناف category

category-id , category-name

وجدول items

item-id,item-name,item-price,item-descripition,category-id

والقاعده أكسس ..

اريد ان اخصص فورم للبحث .. مثلا تم البحث عن اسم الصنف ولنفرض مواد غذائيه

يظهر لي داتا قريد فيو فيها المواد الغدائيه

أجبان

لحوم

فواكه وخضروات

عن النقر على أجبان .. يظهر لي داتا قريد فيو فيه البيانات التاليه

جبنه المراعي

جبنه بوك

جبنه نادك

جبنه كرافت

جبنه كيري

جبن بالكيلو

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

وباذن الله اذا اتممته نهايه الاسبوع ساطرحه ولكن سامسح قاعده البيانات .. واضع سطر واحد فقط لاسباب ..

شاكره لكم .. واتمنى مساااعدتكم لي عاجلاااااااااااااااا

#2

أختي العملية سهله وتعتمد على الاستعلام وتصميم الجداول ، صممي الجداول بعلاقة رأس لأطراق ، ثم استعلمي عما تريدين ويكون هذا الاستعلام هو مصدر البيانات للداتاقريدفيو ..

يعني لاحظي :

category-id هو مربط الفرس ، لأنه حقل في جدولين ، في الجدول الأول سيكون بلاشك Primary Key .

بالنسبة لكثرة الداتا قريد فلا أنصح بها ، أفضل أن يكون الخرج النهائي في داتاجريدفيو ، أما (( ألبان لحوم أجبان .... الخ ) فأفضل إظهارها في LIstbox أو Listview أو ComboBox وأوفضل ComboBox حتى نوفر مساحة العمل ، ويتم ربط هذا الكومبو مباشرة في جدول الأصناف .. وبمجرد اختيار الصنف نقوم بالاستعلام في جدول الوحدات من خلال category-id الخاص بقيمة الكومبو ونعرض الناتج في جريدفيو ...

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#3

جزاك الله خير اخي ..

لكن انا مثالي ليس هذا مثال مصغر عن الفكره التي اريدها

عباره عن جدول لشركات طالبه موظفينclient id

-job-field

job-id

وجدول اخر يحتوي طلبات المتقدمين للوظيفه client id

requierd-field

الحقل job-field- و requierd field

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

عندي فورم لادخال بيانات الشركه التي تطلب موظفين

وفورم لادخال بيانات الاشخاص المتقدمين للوظيفه

في حال كانت القيم المختاره في فورم بيانات الاشخاص التقنيه والمعلومات

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

هذي فكرتي :( هل هي صعبه ؟!! اتمنى مساعدتكم جزاكم الله خير

#4

up

.........

#5

لنفرض أنك اخترتي من الكومبوبوكس (( التقنية والمعلومات )) .

عندها نقوم بعمل استعلام :

Select * from CompanyTable where JobField = '" & comboBox.text & "'

ونقوم بربط العناصر بمصدر البيانات الذي يحمل هذا الاستعلام ..

أتمنى أن يكون هذا طلبك ، وأرجو إرفاق المشروع وإيضاح المطلوب بالصور في حال لم يكن هذا طلبك

بالتوفيق ...

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#6

ذي صوره فورم البحث وهذا الكووود ..

يوجد لدي فورم لادرجال معلومات شركه تتطلب موظفين .. ويوجد في الجدول jobs الحقول التاليه job-id - Required field -client-id

وباقي الحقول معلومات عامه عن الشركه هواتف الاتصال ومميزات الوظيفه وهكذا

ويوجد لدي فورم آخر لادراج معلومات اشخاص يتقدموا بطلب وظيفه .. ويوجد في جدولهم Required field -client-id

Required field حقل يحمل نفس البيانات اريد البحث ع اساسه في الجدول الثاني client بحيث اذا تساوت القيمتين تظهر بيانات الشركه في قريد فيوو اخر

اظن المطلوب استعلاام يجيب المعلومات من الجدولين ع شرط ان الحقل متساوي بالجدوولين

يعني انا حضيف قريد فيو آخر تحت اللي بالصوره هنا ..

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

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

واذا تم الطلب .. يوجد لدي شيك بوكس enabled= false

يتم تحديد قيمته برمجيا .. اذا تم ربط احدى الوظائف باحدى طلبات التوظيف يتغير القيمه واسندها الى حقل في جدول طلبات التوظيف من نوع بوليان

هذا اللذي اريد عمله .. تمام سير فكرتي او لا ؟!

b5b2363b.jpg

Public Class Form3 
    Dim sqlstr As String 


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

        Try 
            conn() 
            ds.Clear() 
            If TextBox1.Text = Trim("") Then 
                MsgBox("من فضلك أدخل كلمة البحث", MsgBoxStyle.OkOnly, " شؤؤن التوظيف") 
                Exit Sub 
            End If 
            If RadioButton4.Checked = True Then 
                ExactSearch() 
            ElseIf RadioButton5.Checked = True Then 
                GeneralSearch() 
            Else 
                MsgBox("اختر نوع البحث", MsgBoxStyle.OkOnly, "human resources") 
                Exit Sub 
            End If 

            DataGridView1.Visible = True 
            'تعريف متغير لمعالجة البيانات وتمريرعبارة الإستعلام وكائن الإتصال. 
            Dim DataAdapter1 As New OleDb.OleDbDataAdapter(SQLstr, frmconn) 
            DataAdapter1.Fill(ds, "client") 
            frmconn.Close() 
            'جعل مصدر الداتا غريد من الداتا سيت 
            DataGridView1.DataSource = ds 

            DataGridView1.DataMember = "client" 
        Catch err As System.Exception 
            MsgBox(err.Message, MsgBoxStyle.Exclamation, "human resources") 
        End Try 

        DataGridView1.Columns(0).HeaderText = "تاريخ الطلب" 
        DataGridView1.Columns(1).HeaderText = "سنوات الخبره" 
        DataGridView1.Columns(2).HeaderText = "مجال الوظيفه المطلوبه" 
        DataGridView1.Columns(3).HeaderText = "التخصص" 
        DataGridView1.Columns(4).HeaderText = "الشهاده" 
        DataGridView1.Columns(5).HeaderText = "الجنسيه" 
        DataGridView1.Columns(6).HeaderText = "الجنس" 
        DataGridView1.Columns(7).HeaderText = "هاتف " 
        DataGridView1.Columns(8).HeaderText = "المدينه " 
        DataGridView1.Columns(9).HeaderText = "الدوله " 
        DataGridView1.Columns(10).HeaderText = "ايميل المتقدم " 
        DataGridView1.Columns(11).HeaderText = "إسم المتقدم " 
        DataGridView1.Columns(12).HeaderText = "رقم الطلب " 



        If Me.BindingContext(ds, "client").Count = 0 Then 
            MsgBox(" لاتوجد نتائج حاول مرة اخرى") 
            Exit Sub 
        End If 

    End Sub 


    Public Sub GeneralSearch() 
        If RadioButton1.Checked = True Then 
            sqlstr = "SELECT * FROM client WHERE client-name= '" & TextBox1.Text & "'" 
        ElseIf RadioButton2.Checked = True Then 
            sqlstr = "SELECT * FROM client WHERE client-nationality = '" & TextBox1.Text & "'" 
        ElseIf RadioButton3.Checked = True Then 
            sqlstr = "SELECT * FROM client WHERE client-tele= '" & TextBox1.Text & "'" 
        ElseIf RadioButton4.Checked = True Then 
            sqlstr = "SELECT * FROM client WHERE  Required-field= '" & TextBox1.Text & "'" 

        End If 
    End Sub 
    Public Sub ExactSearch() 
        If RadioButton1.Checked = True Then 
            sqlstr = "SELECT * FROM client WHERE client-name LIKE '%" & TextBox1.Text & "%'" 
        ElseIf RadioButton2.Checked = True Then 
            sqlstr = "SELECT * FROM client WHERE client-nationality LIKE '%" & TextBox1.Text & "%'" 
        ElseIf RadioButton3.Checked = True Then 
            sqlstr = "SELECT * FROM client WHERE client-tele LIKE '%" & TextBox1.Text & "%'" 
        ElseIf RadioButton4.Checked = True Then 
            sqlstr = "SELECT * FROM client WHERE Required-field LIKE '%" & TextBox1.Text & "%'" 
        End If 
    End Sub 


    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
        DataGridView1.ReadOnly = False 

    End Sub 

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click 
        Try 
            If ds.HasChanges Then 
                Dim dt As DataTable = ds.Tables("client").GetChanges(DataRowState.Modified) 
                If dt.Rows.Count > 0 Then 
                    Dim update As New OleDb.OleDbCommand 
                    update.Connection = frmconn 
                    update.CommandType = CommandType.Text 
                    conn() 
                    Dim i As Integer 
                    For i = 0 To dt.Rows.Count - 1 
                        update.CommandText = "UPDATE client SET client-name= '" & Trim(dt.DefaultView.Item(i).Item("client-name")) & "' ,client-email = '" & Trim(dt.DefaultView.Item(i).Item("client-email")) & "' , country = '" & Trim(dt.DefaultView.Item(i).Item("country")) & "' , city = " & Trim(dt.DefaultView.Item(i).Item("city")) & ", client-tele = '" & Trim(dt.DefaultView.Item(i).Item("client-tele")) & "' , client-nationality= '" & Trim(dt.DefaultView.Item(i).Item("client-nationality")) & "', client-Certification= '" & Trim(dt.DefaultView.Item(i).Item("client-Certification")) & "',client-Specialization = '" & Trim(dt.DefaultView.Item(i).Item("client-Specialization")) & "' ,,Required-field = '" & Trim(dt.DefaultView.Item(i).Item("Required-field")) & "' ,,year-experince = '" & Trim(dt.DefaultView.Item(i).Item("year-experince")) & "' ,client-date = '" & Trim(dt.DefaultView.Item(i).Item("client-date")) & "'  WHERE client-id =" & dt.DefaultView.Item(i).Item("client-id") & "" 
                        update.ExecuteNonQuery() 
                    Next 
                    frmconn.Close() 
                    MsgBox("تمت عملية التعديل في قاعدة البيانات بنجاح") 
                End If 
            End If 
        Catch ex As Exception 
            MsgBox(ex.Message) 
        End Try 
    End Sub 

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click 
        Try 
            If MsgBox("هل تريد حذف السجل الحالي", MsgBoxStyle.OkCancel) = MsgBoxResult.Cancel Then 
                Exit Sub 
            End If 
        Catch err As System.Exception 
            'عرض رسالة بالخطأ 
            MsgBox(err.Message, MsgBoxStyle.Exclamation, "human resources") 
        End Try 
        Try 
            Dim delet As New OleDb.OleDbCommand 
            delet.Connection = frmconn 
            delet.CommandType = CommandType.Text 
            'الحذف بشرط ان رقم الطلب في السجل الحالي = رقم الطلب الموجود في العمود الثالث في قاعدة البيانات حيث يبدأ الترتيب من (0) 
            delet.CommandText = "DELETE FROM client WHERE client-id =" & Trim(DataGridView1.CurrentRow.Cells(12).Value) & "" 
            conn() 
            delet.ExecuteNonQuery() 
            frmconn.Close() 
            ds.Clear() 
            employee() 
            MsgBox("تمت عملية الحذف في قاعدة البيانات بنجاح") 

        Catch err As System.Exception 
            عرض رسالة بالخطأ 
            MsgBox(err.Message, MsgBoxStyle.Exclamation, "human resources") 

        End Try 

    End Sub 
End Class
#7

أختي الآن تقريباً الفكرة اتضحت ,

اسمحيلي بسؤال أخيرا حتى أتأكد إن الفكرة وصلت :

علشان أفهم الموضوع خليني أبسط الجداول ونركز على الفكرة الرئيسية ، عندي جدولين : جدول المتقدمين ، وجدول الشركات الي تبحث عن هالمتقدمين : صح ؟

بجدول المتقدمين وبجدول الشركات عندنا حقل يتشابه اسمه ( الوظيفة المطلوبة ) .. صح ؟

وعندي فورم يعرض لي الشركات الي تبحث عن موظفين فيها التالي :

اسم الشركة ( تكست بوكس ) ، الوظائف المطلوبة ( ليست بوكس أو كومبو أو ليست فيو ) ومعلومات أخرى عن الشركة ....

في الوظائف المطلوبة ، أحدد اسم الوظيفة أو التخصص ، وأضغط على زر ، يروح يبحث لي عن الأشخاص الي يبون هالوظيفة ، أو يمكن بعد ما احتاج زر ، بس اختار قيمة من الوظائف المطلوبة تلقائياً يظهر لي المتقدمين للوظيفة ... صح ؟

أتمنى تصححين لي إذا كان ما ذكرته غير صحيح ...

مسألة الربط غير واضحة ، إيش تقصدين بالربط ، هل هو عرض المتقدمين للوظيفة فقط كما ذكرت أم غير ذلك ...

المعذرة على الإطالة بس علشان تتضح الصورة ....

... إذا كنت تعتقد أن مشاركتي مفيده ، الرجاء قم بتقييمي ...

%2525D8%2525A8%2525D8%2525B5%2525D9%252585%2525D8%2525A9%252B%2525D8%2525B9%2525D9%252584%2525D9%252585%252B%2525D9%252588%2525D8%2525B5%2525D8%2525B1%2525D8%2525AE%2525D8%2525A9%252B%2525D8%2525A7%25

#8
عاشق للبرمجة كتب:

أختي الآن تقريباً الفكرة اتضحت ,

اسمحيلي بسؤال أخيرا حتى أتأكد إن الفكرة وصلت :

علشان أفهم الموضوع خليني أبسط الجداول ونركز على الفكرة الرئيسية ، عندي جدولين : جدول المتقدمين ، وجدول الشركات الي تبحث عن هالمتقدمين : صح ؟

صحيح

بجدول المتقدمين وبجدول الشركات عندنا حقل يتشابه اسمه ( الوظيفة المطلوبة ) .. صح ؟

صحيح يتشابه بمحتوى البيانات ولكن عدلت اسم احداهم في الجدول .. لان زر احذف في احد الفورمات لا يعمل والسبب تشابه الحقلين

وعندي فورم يعرض لي الشركات الي تبحث عن موظفين فيها التالي :

اسم الشركة ( تكست بوكس ) ، الوظائف المطلوبة ( ليست بوكس أو كومبو أو ليست فيو ) ومعلومات أخرى عن الشركة ....

صحيح والوظائف اعرضها في كومبو بوكس

في الوظائف المطلوبة ، أحدد اسم الوظيفة أو التخصص ، وأضغط على زر ، يروح يبحث لي عن الأشخاص الي يبون هالوظيفة ، أو يمكن بعد ما احتاج زر ، بس اختار قيمة من الوظائف المطلوبة تلقائياً يظهر لي المتقدمين للوظيفة ... صح ؟

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

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

أتمنى تصححين لي إذا كان ما ذكرته غير صحيح ...

جزاك الله خيرا

مسألة الربط غير واضحة ، إيش تقصدين بالربط ، هل هو عرض المتقدمين للوظيفة فقط كما ذكرت أم غير ذلك ...

المعذرة على الإطالة بس علشان تتضح الصورة ....

#9

up

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…