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

كيفية ربط ComboBox بياناتها من جدول(1) إلى جدول(2) من نفس القاعدة برمجيا

بدأه أبو سيف المصلاوي في 24 أبريل 2010 · 7 رد · 3,324 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

طلب حل لهذه المشكلة يرحمكم الله

صممت برنامجا لإدخال معلومات مبيعات الخطوط الواردة إلى شركتنا والمباعة إلى وكلائنا في المنطقة.

في قاعدة البيانات (أكسس 2007) قمت بعمل قاعدة بيانات ذات جدولين :

الجدول الأول : أسماء الوكلاء وعناوينهم وأرقام هواتفهم بالإضافة إلى الـ(ID) الذي اعتبرته مفتاحا أساسيا كي أستخدمه لاحقا بتبديل قيمة اسم الوكيل بها.

الجدول الثاني : معلومات الخطوط ويتكون من الحقول (رقم القائمة ـ رقم الخط ـ تاريخ القائمة ـ تاريخ البيع ـ اسم الوكيل المباعة له الخطوط ـ حالة العقد).

المشكلة تكمن فيما يلي :

بعد ربط قاعدة البيانات بالفيجوال بيسك (برمجيا) وبشكلها الصحيح وبعد أن تأكدت أن المعلومات الظاهرة أمامي تؤكد صحة فتح وغلق قاعدة البيانات قمت (برمجيا) وأكرر (برمجيا) بربط الـ(ComboBox) باسم الوكيل من جدول (أسماء الوكلاء) (الجدول رقم (1)) وظهرت لي الأسماء كما أردتها ولكنني لم أستطع (برمجيا أيضا) من أخذ قيمة الـ(ID) المقابل لاسم الوكيل في الجدول رقم (1) ووضعها في جدول معلومات الخطوط في حقل (اسم الوكيل المباعة له الخطوط) (الجدول رقم (2)) .

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

أخوكم

ملاحظة : مرفق صورة لما شرحت.post-68100-12721140466852_thumb.jpg

1
#2

إذا كنت تقصد بكلمة "برمجيا" أنك قمت بإضافة الأسماء إلى ComboBox في حلقة while Rdr.read، فاقترح عليك التالي

1.في Command الخاصة بالوكلاء قم بجلب الإسم و المعرف ID معا وليس الإسم فقط

cmd.CommandText = "Select ID,Name From ..."

2 قم بعد ذلك بإنشاء جدول و datatAdapter الذي سيستخدم لجلب البينات إليه:

Dim dt as new datatable("table1")
dim DA as oleDbDataAdapter(cmd)

3. قم بملأ الجدول بواسطة dataAdapter

DA.Fill(dt)

4. قم بتحديد dt كمصدر بيانات لCombobox الوكلاء

combobox1.datasource = dt
combobox1.displaymember = "Name"
combobox.ValueMember = "ID"

5. بعدها لمعرفة العنصر الذي اختاره المستخدم

dim selectedId as integer = combobox.selectedValue

هذا اقتراح، ويمكن عملها بأكثر من طريقة

تم تعديل هذه المشاركة بواسطة عمران عماري في 25 أبريل 2010 في 03:07

#3

بارك الله فيك أخي العزيز

جاري التجربة والنتيجة بعد التجربة إن شاء الله

#4

تمت ولله الحمد بارك الله فيك أخي العزيز وجزاك الله خيرا

#5

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

Imports System

Imports System.Data.OleDb

Public Class Form1

Dim b As Boolean

Dim Con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" & Application.StartupPath & "\Tel.mdb")

Dim sqlstr1 As String = "SELECT T1.ID, T1.Fname, T1.Lname, T1.Telx, gov.gov FROM gov INNER JOIN T1 ON gov.govid=T1.govid"

Dim sqlstr2 As String = "SELECT gov.govID, gov.gov FROM gov "

Dim cmd As OleDbCommand

Dim dr As OleDbDataReader

Dim dt1 As OleDbDataAdapter

Dim ID As Integer

Dim DataSet1 As New DataSet

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Con.Open()

Dim DataAdapter1 As New OleDbDataAdapter(sqlstr1, Con)

DataAdapter1.Fill(DataSet1, "T1")

Me.DataGridView1.DataSource = DataSet1

Me.DataGridView1.DataMember = "T1"

ComboBox1.DataSource = DataSet1

ComboBox1.ValueMember = "T1.gov"

Con.Close()

TextBox1.DataBindings.Add("Text", DataSet1, "T1.ID")

TextBox2.DataBindings.Add("Text", DataSet1, "T1.FName")

TextBox3.DataBindings.Add("Text", DataSet1, "T1.LName")

TextBox4.DataBindings.Add("Text", DataSet1, "T1.Telx")

TextBox6.DataBindings.Add("Text", DataSet1, "T1.gov")

End Sub

كيف احصل علي govid للعنصر في الكومبوبوكس

#6
Imports System
Imports System.Data.OleDb

Public Class Form1
	Dim b As Boolean
	Dim Con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=" & Application.StartupPath & "\Tel.mdb")
	Dim sqlstr1 As String = "SELECT T1.ID, T1.Fname, T1.Lname, T1.Telx, gov.gov FROM gov INNER JOIN T1 ON gov.govid=T1.govid"
	Dim sqlstr2 As String = "SELECT gov.govID, gov.gov FROM gov "

	Dim cmd As OleDbCommand
	Dim dr As OleDbDataReader
	Dim dt1 As OleDbDataAdapter
	Dim ID As Integer
	Dim DataSet1 As New DataSet

	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 	Con.Open()
 	Dim DataAdapter1 As New OleDbDataAdapter(sqlstr1, Con)

 	DataAdapter1.Fill(DataSet1, "T1")
 	Me.DataGridView1.DataSource = DataSet1
 	Me.DataGridView1.DataMember = "T1"

 	'I added This ===============================
 	Dim DataAdapter2 As New OleDbDataAdapter(sqlstr1, Con)
 	DataAdapter2.Fill(DataSet1, "gov")
 	ComboBox1.DataSource = DataSet1.Tables("gov")
 	ComboBox1.ValueMember = "govID"
 	ComboBox1.DisplayMember = "gov"
 	'===========================================


 	Con.Close()

 	TextBox1.DataBindings.Add("Text", DataSet1, "T1.ID")
 	TextBox2.DataBindings.Add("Text", DataSet1, "T1.FName")
 	TextBox3.DataBindings.Add("Text", DataSet1, "T1.LName")
 	TextBox4.DataBindings.Add("Text", DataSet1, "T1.Telx")
 	TextBox6.DataBindings.Add("Text", DataSet1, "T1.gov")



	End Sub

	'I added This ===============================
	Private Sub ComboBox1_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedValueChanged
 	Dim SelectedId As Integer = ComboBox1.SelectedValue
	End Sub
	'===========================================

End Class
#7

السيد الفاضل عمار السادو المسيولين عن المنتدي

لكم جزيل الشكر

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

#8

الاخ الكريم عمران عماري برجاء المساعدة مع الشكر مقدما

السادة الاعضاء

انا جديدة بالبرمجه اعمل على VISUALSTUDIO2008 ACCESS 2007 WINDOWFORM

عملت جدواول

MAIN-TAB (ID-NUM -ID-NAME- ID-PRINTER- ID-COLOR - ID-INK

EMPLOYY-TAB (ID-NAME -EMPLOYEE-NAME - EMLOYE-DEPRTMET

PRINTER-TAB ( ID-PRINTER- PRINTER-NAME

COLOR-TAB (ID-COLOR - ID-PRINTER- COLOR-NAME- I

INK-TAB ( ID-INK- - ID-COLOR-INK-NAME

عملت استغلام

تسنعلام يظهر اسماء الموظقين على اساس المفتاح المشترك (MAINTAB - EMPLOYY-TAB) لهمل لسته بالاسماء

تسنعلام يظهر اسماء الطابعات على اساس المفتاح المشترك (MAINTAB - PRINTER-TAB) لعمل قائمه بالطابعات

تسنعلام يظهر اسماء اسم اللون على اساس المفتاح المشترك (COLORTAB- PRINTER-TAB) لعمل قائمه باسماء الالوان

تسنعلام يظهر اسماء الحبر على اساس المفتاح المشترك (COLOR-TAB TAB-INK) لعمل قائمه باسماء الاحبار

عند فتح WINDOWFORM

عملت داتا سورس و داتا ست

اخترت الحقول الموجوده في الاستغلام لكي تظهر في الشاشه الرئيسية......الا انه لم تظعر لي الا اول سجل

بعني . تظهر لي اسم اول موظف فقط - تول ظابعه - اول لون - اول خبر

السوال لماذا لا تظهر البيانات داخل COMBOBOX

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

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

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

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

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