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

اخوانى ارجوا المساعدة اظهار الرقم الاساس

مغلق
بدأه كفاح في 29 يناير 2006 · 29 رد · 2,307 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

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

29_01_06_03_09_34_1138532974emp.JPG

EMP.zip

تم تعديل هذه المشاركة بواسطة كفاح في 29 يناير 2006 في 14:11

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#2

السلام عليكم

لم اتمكن من تحميل المرفقات

لكن بافتراض انك ربط الكمبو بdataset وجعلت الdisplay member هو اسم القسم والvaluemember هو رقم القسم

فى حدث الكمبوSelectedIndexChanged

TextBox.Text=Cstr( Me.ComboBox.SelectedValue)

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#3

أشكرك اخى الكريم لكن اعطانى خطأ عندما ربط ( الكمبو بdataset وجعلت الdisplay member هو اسم القسم والvaluemember هو رقم القسم)

اليك المثال فى هذا الرابط

http://www.geocities.com/zoro_145/EMP.zip

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#4

انظر المرفقات ولا تنسى تعديل نص الاتصال

EMP1.zip

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#5

يحدث خطأ عند !!!!!!!!!!!!

Me.OleDbDataAdapter1.Fill(Me.DataSet11.Department)

قمت بتعديل الاتصال فى Form_load

    OleDbConnection1.ConnectionString = "Provider=Microsoft.jet.oleDB.4.0;Data Source=" & Application.StartupPath & "\DB.mdb;"
       
        Try
            OleDbConnection1.Open()
            DataSet11.Clear()
            OleDbDataAdapter1.Fill(DataSet11)
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            Me.OleDbConnection1.Close()
        End Try

        type()
        Me.OleDbDataAdapter1.Fill(Me.DataSet11.Department)
        Me.ComboBox1.SelectedIndex = -1

وكود type

    Public Sub type()
        Try
         
            Dim sql As String = "SELECT Name_Department FROM Department"
            CON.ConnectionString = ConString
            CMD.Connection = CON
            CMD.CommandText = sql
            CON.Open()
            Dim rd As OleDbDataReader = CMD.ExecuteReader
            While rd.Read()
                ComboBox1.Items.Add(rd.GetString(0))
            End While

            rd.Close()
        Catch ex As Exception
            MessageBox.Show("لايوجد اقسام")
        Finally

        End Try
    End Sub

كود ComboBox1_SelectedIndexChanged

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Me.TextBox1.Text = CStr(Me.ComboBox1.SelectedValue)
    End Sub

وهذا هو الخطأ

An unhandled exception of type 'System.Data.ConstraintException' occurred in system.data.dll

Additional information: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

واسف على الازعاج وشكرا لك على المساعدة

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#6

السلام عليكم

المثال الذى عملته يعمل بدون اخطاء ولاد داعى للاجراء type

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#7

الاجراء type مسئول على ملئ ComboBox1 من قاعدة البيانات

انا اريد على اساس البيانات المحملة الى ComboBox1( أسم القسم) حفظ رقم الاساس الخاص بالقسم الذى يعمل فية موظف فى قاعدة البيانات ؟ وشكرا اخى وارجوا مثال توضحيى حتى تتضح لي الفكرة كاملة وشكرا لك

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

  
        Me.OleDbDataAdapter1.Fill(Me.DataSet11.Department)
        Me.ComboBox1.SelectedIndex = -1
        Me.TextBox4.Text = CStr(Me.ComboBox1.SelectedValue)
    End Sub

قمت بوضع الكود حتى يتم وضع رقم القسم فى ال textbox4

تم تعديل هذه المشاركة بواسطة كفاح في 29 يناير 2006 في 18:56

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#8

السلام عليكم

اخى المثال كان واضح حيث تم ربط الكمبو بوكس بالداتا سيت اى سيتم ملء الكمبو بالبيانات من خلال الداتا سيت فلا داعى للاجراءtype

ممكن توضح ايش مشكلتك بالضبط؟

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

وهى تعود بكائن من نوع Object استخدم دوال التحويل بما يناسب نوع الحقل

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#9

السلام عليكم أخي كفاح والى الأخوة الكرام

أعتقد أخي أن أولا المشكلة في ال SQL أنت وضعت ربط واحد مبني على شرط Select لقسم من الأقسام ولم تضع الشرط Where يعني مثلا لو عندي أسم حقل يدعى name وحقل يدعى Number ويوجد ربط بين الأثنين أسم الشخص ورقمه وأريد عند أختيار الرقم أن يعطيني الأسم مباشرة أكتب التالي :

SQL = "Select name from table Where Number = 101"

أعطيني ألأسم من القاعدة Table حيث يجب أن يكون رقم الحقل Number يساوي 101 .

هذا على ما أعتقد والله أعلم .

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

هذا وجرب أن تضع حدث النقر في الأداة Combo على Click هذا والله أعلم أيضا .

أنا لم أنزل المثال منك ولكن هذا ما أعتقدته , جرب وحدثنا ما حدث معك .

والسلام عليكم

#10

أخى والهى انا بجد محرج من كثرة سؤالى لكن اوضح لك ما ذا اريد بالضبط

1- يتم ملئ الكموبوبوكس من قاعدة البيانات (اسماء الاقسام الموجود فى جدول القسم )

2- عند تحديد اسم القسم فى نموذج العمال يتم كتابة رقم القسم تلقائيا فى Textbox4 ثم اقوم بحفظ القيمة فى جدول العمال الذى يكون هذه القيمة هى مفتاح اجنبى للحقل الموجود فى جدول الاقسام

والمثال الخاص بك شغال 100 % لكن على فورم واحد انا اريد من البيانات المحملة فى كمبوكس (اسماء الاقسام) فى فورم العمال يظهر رقم كل قسم فى TextBox4 شوف المرفق بتاعى الى وضعتة هنا

http://www.geocities.com/zoro_145/EMP.zip

تم تعديل هذه المشاركة بواسطة كفاح في 29 يناير 2006 في 22:05

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#11

?? يظهر سؤالى صعب :D

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#12

أولا معلش الفيجوال غير متاح لي حاليا :(

لكن ,

اقتباس
وأيضا جرب أن تضع أسماء الحقول وأسم القاعدة

أن كنت فهمتك يبقي ..., انت عايز لما تختار من الـ Combobox اسم القسم يحط في الـ Textboxرقم القسم ... صح ولا لأ ؟؟؟

يبقي انت عايز في حدث اختيار عنصر من الـ Combobox تعمل استعلام يقوم باحضار الـ PK ؟؟؟

Select <ID> From <TableName> Where <ColumnName>=<'Combobox Seleted Item'>

أو كما تفضل الأخ iemad , هذا والله أعلم ,,,

#13

كلامك تمام اخى حزوم ياريت تقولى بقى ازاى لانى احترت فى كتابة اكواد هذا الاستعلام هذا اخر ما وصلت الية فى هذا الكود الى حينى وبيدنى غلط فى الاتصال

 DataSet11.Clear()
        Dim sql As String = "Select <Num_Departmant> From <Department> Where <Name_Department>= Combobox1Seleted Item "
        CON.ConnectionString = ConString
        CMD.CommandText = sql
        CON.Open()
        Dim f3 As New Form2
        f3.OleDbDataAdapter1.Fill(Me.DataSet11.Department)
        Me.ComboBox1.SelectedIndex = -1
        Me.TextBox4.Text = CStr(Me.ComboBox1.SelectedValue)

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#14

لقد حاولت مرة اخرى ولكن فشلت

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim ConditionCriteria As Boolean = True
        DataSet11.Clear()
        OleDbDataAdapter1.SelectCommand.CommandText = "select Num_Departmant from [Department]where [Name_Department]like'" & ComboBox1.SelectedItem & "%'"
            ConditionCriteria = False
            TextBox4.Focus()
        If ConditionCriteria = True Then
            OleDbDataAdapter1.Fill(DataSet11, "Department")
        End If
        Try
            Me.TextBox4.Text = CStr(Me.ComboBox1.SelectedValue).ToString
        Catch ex As Exception

        End Try

    End Sub

الن يوجد حل لهذه المشكلة بدأت ان اشعر بالحباط :(

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#15

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

#16

لا ليس هذا الحل ببسطة لو كان على ربط التيكست بالداتا سيت كان الامر سهل انما هذاا استعلام من يبنع من كمبوبوكس

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#17

أخي الكريم كفاح ..الحقيقة كنت أتمنى أن أساعدك لأني حتى الآن لم أجد دروس Ado.Net(بانتظار الأخ حازم :lol:) و الوقت القليل الذي سأقضيه معكم قبل انقطاع جديد أطول لا يسمح لي بالإلمام بهذا المجال.

و لكن سأحاول بطريقتي و أنشر سؤالك في Microsoft و لكن ممكن توضح لي ما هو الأساس ..يعني هل هو رقم الحقل أو رقم الجدول ..أو رقم البيان..بصراحة لم نكن نتعامل مع هذا الشيء في Vb6 ..

#18

رقم الاساسى هو ( Primary key ) او مفتاح اساسى وهو رقم لا يمكن تكرارة وهو حقل فى قاعدة بيانات الاقسام وشكرا لك اخى الكريم

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#19

كيف حالك يا كفاح؟

هل ذلك لا زال صعباً عليك؟، إذاً ماذا كنت تفعل في السنتين الماضيتين :lol:

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

سأعطيك حل (من مجموعة حلول ممكنة طرح بعضها الأخوة من قبل)، قم أولاً بعمل داتاسيت لجدول ال department وقم عن طريق loop بوضع الأسماء في ال cobmobox، وحينما يختار المستخدم أحد الأقسام فتقوم بأخذ رقم الأيندكس index لل combobox وإختيار العمود الموازي لذلك الرقم (الذي يكون فيه الرقم الأساسي) لعرضه في ال textbox... هل ذلك صعب؟

لقد قمت بفتح الداتابيز، أنا لا أعلم لماذا عملت join في الداتابيز، نحن لا نعمل ذلك إلا لأسباب تستدعي ذلك، مثل:

1. أن يكون برنامجاً هو واجهة فقط (أي أنه واجهة لتبسيط العمل وأدخال البيانات وفي هذه الحالة يفضل إستخدام ال access مباشرة بالإستعانة ب VBA)، ويكون تعامل المستخدم بشكل مباشر مع الداتابيز.

2. أن يكون برنامجاً يعرض الجدولين في فورم واحد، وهو ما لم ألاحظه في برنامجك.

Learn Japanese :>>> http://www.nouben.com/

#20

و الله اشتقنالك أستاذنا هارون..:lol: ...أرجو أن تكون طريقتك قد حلت مشكلة الأخ كفاح .. و لكن للتأكد سأكتب السؤال و نرى اقتراحاتهم ...

#21

حمد لله على السلامة اخى هارون

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

تم تعديل هذه المشاركة بواسطة كفاح في 31 يناير 2006 في 16:53

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#22

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

تم تعديل هذه المشاركة بواسطة كفاح في 31 يناير 2006 في 17:11

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#23

مشتاقين لك يا كفاح ولبقية الأخوة، والمعذرة فأنا عن تغيبي القصري عن المنتدى بسبب مشاغل العمل والأسرة.

كما قلت لك أخي كفاح، قم فقط بعمل داتاسيت لجدول ال department، ولإضافة أسماء الأقسام إلى الكمبوبوكس قم بعمل loop في الداتاسيت بالطريقة التالية (مفترضاً بأن أسماء الأقسام هي في العمود المسمى D وأالرقم الأساسي هو في العمود ID).

For X as integer = 0 To dataset.tables("department").rows.count -1
cobmobox1.items.add(dataset.tables("department").rows(x).item("D")
next

وعندما يقوم المستخدم بإختيار item معين من ال combobox فإنك يجب أن تظهر الرقم الأساس في ال textbox بالطريقة التالية:

textbox.text=cstr(dataset.tables("department").rows(combobox.selectedindex).item("ID"))

أرجو بأن لا أكون قد أخطأت بال spelling لأنني أكتب الكود من الذاكرة... وهذا بالطبع حل من مجموعة حلول كثيرة يمكنك القيام بها.

Learn Japanese :>>> http://www.nouben.com/

#24

تم اضافة اسماء الاقسام فى الكموبوبكس باقى اضافة رقم الاساس فى التيكست وقمت بكاتبة هذا الكود فى ComboBox1_SelectedIndexChanged

   Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        TextBox4.Text = CStr(DataSet11.Tables("department").Rows(ComboBox1.SelectedIndex).Item("Num_Departmant"))
    End Sub

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

#25

تم اضافة اسماء الاقسام فى الكموبوبكس باقى اضافة رقم الاساس فى التيكست وقمت بكاتبة هذا الكود فى ComboBox1_SelectedIndexChanged

   Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        TextBox4.Text = CStr(DataSet11.Tables("department").Rows(ComboBox1.SelectedIndex).Item("Num_Departmant"))
    End Sub

ويعطنى خطا فى الكود السابق ويعرض لى هذه الرسالة

An unhandled exception of type 'System.IndexOutOfRangeException' occurred in system.data.dll

Additional information: There is no row at position 0

الفريق المصري للبرمجة

تحليل وتصميم برامج قواعد بيانات لاتصال بينا masry4u@hotmail.com

هذا الموضوع مغلق.

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

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

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

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

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