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

طلب مساعدة فى عمل علاقة بين حدولين فى ملفين أكسيس مختلفين

بدأه Waleed Said في 23 أبريل 2010 · 25 رد · 1,846 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

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

وصف المشكلة :

بفرض انه عندى جدولين(data1.mdb). الجدول الأول و اسمه doctorList يحتوى على اسماء و عناوين جميع ألاطباء . و يتحتوى فى هذه المعلومات .... اسم الدكنور.. التخصص .. العنوان.

و الجدول الثانى (data2.mdb) يحتوى على أسماء المرضىpatientList. و يحتوى اسم المريض .. و الدكتور المعالج...

المشكلة ... اريد أن اعرض جدول المرضى فى dataGridView .. و لكن عندما يتم عرضه يجب ان تم الحصول على أسماء معلومات الاطباء من جدول doctorlist .

شكرا

#2

أولا أخى هذين (data1.mdb وdata2.mdb ) ليسا جدولين

ولا أفهم لماذا جدولين اكسيس منفصلين

ماتريده سهل جدا

عمل جدول Doctors ويحتوى على بيانات الاطباء ويكون مثلا DoctorID مفتاح رئيسى

عمل جدول Patients ويحتوى على بيانات المرضى ويكون DoctorID مفتاح أجنبى

عمل View لعرض البيانات التى تحتاجها من الجدولين مع وضع الشرط Doctors.DoctorID = Patients.DoctorID

أتمنى اكون فهمت ماتريد

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#3

اخى الكربم

شكرا على المساعده , و اتمنى لو انك تستطيع و ضع مثال للتوضيح . أنا مبرمج فى ال vb6 . و لكن جديد تماما فى ال vb.net .

شكرا مجددا على المساعده ز

#4

أخى هذا سكريبت لعمل الجداول فى SqlServer

Create table Doctors
(
DoctorID        int	              NOT NULL ,
DoctorName	    Varchar(100) ,
Adresss	        Varchar(100) ,
Tel	            Varchar(20)  ,

CONSTRAINT [PK_Doctors] PRIMARY KEY  CLUSTERED 
	  (DoctorID)
)


Create table Patients
(
PatienID        int	              NOT NULL ,
PatienName	    Varchar(100) ,
Adresss	        Varchar(100) ,
DoctorID	    int   ,


CONSTRAINT [FK_Patients_Doctors] FOREIGN KEY 
	(DoctorID) REFERENCES Doctors(DoctorID),
)

وجملة Select التى تجلب بها البيانات تكون كالأتى

SELECT 
Patients.PatienID,
Patients.PatienName,
Patients.Adresss,
Doctors.DoctorID,
Doctors.DoctorName,

FROM Patients, Doctors WHERE Patients.DoctorID = Doctors.DoctorID

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#5

أخى الفاضل .

شكرا على المجهود و الاهتمام . و لكن أنا أعمل على access mdb file و ليس SQLServer file . .

و ملفات الي أكسيس موجوده بالفعل . كل ما أريده هو قرائتها و عرضها فى ال DATAGRIDVIEW

شكرا

waleed.makarem@gmail.com

#6

أخى جرب هذا الكود

' Get the connection string from the .config file.
Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\db.mdb;Persist Security Info=False"
' Create the ADO.NET objects.
Dim con As New OleDbConnection(connectionString)

Dim cmd As New OleDbCommand("SELECT Patients.PatienID,Patients.PatienName,Patients.Adresss,Doctors.DoctorID,Doctors.DoctorName,FROM Patients, Doctors WHERE Patients.DoctorID = Doctors.DoctorID", con)

cmd.CommandType = CommandType.Text

Dim adapter As New OleDbDataAdapter(cmd)

'create a command builder
Dim cBuilder As New OleDbCommandBuilder(adapter)

'create a DataTable to hold the query results
Dim dTable As New DataTable()

'fill the DataTable
adapter.Fill(dTable)

'the DataGridView
Dim dgView As New DataGridView()

'BindingSource to sync DataTable and DataGridView
Dim bSource As New BindingSource()

'set the BindingSource DataSource
bSource.DataSource = dTable

'set the DataGridView DataSource
dgView.DataSource = bSource

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#7

الأخ وليد وجد حل المشكله

#8
عمر التعزي كتب:

الأخ وليد وجد حل المشكله

هل حضرتك نائب عنه أم ماذا !!!!!

تم تعديل هذه المشاركة بواسطة عمرو الصعيدي في 24 أبريل 2010 في 10:50

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#9

أولا انا بأساله هو مش انت

ثانين ليش هو متهم حتى ماسأل ,عندو سؤال ماتحل وانا باحول اساعد

ثالثا انت زعلان ليش

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

أرجو ان نكون رودودنا تدل على شخصيتنا

#10

أخى عمر بشويش ايه الى حصل

أولا مشاركتك لاتدل على أنك تسأل

جاء الى ذهنى أنك تعرف الأخ وليد وترد نيابة عنه

لأن كثيرا من فى هذا المنتدى يطلب حل شئ

وعندما يتوصل الى حل لايضعه هنا ليتشارك فيه الجميع

على العموم أنا أسف ان كنت أغضبتك :rose:

تم تعديل هذه المشاركة بواسطة عمرو الصعيدي في 24 أبريل 2010 في 10:55

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#11

مشكور أخي العزيز

هدفي الوحيد هو المشاركه والمساعده

وتبادل الخبرات

فقط لاغير

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

اتمنا لك التوفيق وعذرا مني انا ايضا إذا صدر مني اي شي ضايقك

#12

الاخوة الأفاضل ...عمرو و عمر ...

أسف ان كان سوء الفهم هذا قد حدث بسببى .

ألاخ عمر .... المشكلة لم تحل حتى الأن ....

ألاخ المجتهد عمرو الصعيدى :

ألف ألف ألف ألف شكر على المجهود و الاهتمام. و جزاك الله خيرا.

شكرا على الكود و لكن المشكله ان الكود يفترض ان هناك جدولين فى الملف db.mdb , و أسماء هذان الجدولين هما Patients + Doctors .

و لكن الحقيقة أن هناك ملفين مختلفين الاول هو db1.mdb و هو يحتوى على حدول يسمى Doctors .

و هناك ملف أخر يسمى db2.mdb و هو يحتوى على جدول يسمى Patients .

<و أريد ان اربط بينى الملفين كما فعلت فى الكود الرائع السابق , و لكن مع الفىق أن كل جدول يوجد فى ملف مختلف

الكود قد يصبح كاالتلى .

connDoctor.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = c:\db1.mdb"

DA1= New OleDb.OleDbDataAdapter("Select * from Doctor", connDoctor)

connPatien.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = c:\db2.mdb"

DA2 = New OleDb.OleDbDataAdapter("Select * from Patient", connPatien)

و شكرا للجميع على الاهتمام

#13

أخى جرب وضع اسم الداتا بيز قبل كل جدول مثل هذه الطرقه

select * from [database1].[dbo].MyTable1 MyTable1


inner join  [database2].[dbo].MyTable2 MyTable2 on MyTable1.TabId = MyTable2.TabId

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#14

أخى : هل تستطيع التوضيح أكثر .

هذا هو الكود الذى استخدمة و حسب ما أفهم أن لكى أصنع SQL statement يجب أن يتم تطبيقها على connection و التى هى تم تعريفها الى mdb file و احد :

connMaster.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source = c:\dataRel.mdb"

'''''''' Loading hte DataMaster file database

SQL = "Select * from drList"

DA = New OleDb.OleDbDataAdapter(SQL, connMaster)

connMaster.Open()

' builder = New OleDb.OleDbCommandBuilder(DA)

DA.Fill(ds, "drList")

GMaster.DataSource = ds.Tables("drList").DefaultView

#15

أخى وليد اختار الطريق الأسهل وضع الجدولين فى داتابيز واحده

هذا أفضل

بصراحه لم أصادف أى برنامج أو أى أحد يستخدم 2 داتابيز

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#16

شكرا على المجهود و المتابعة

و لكن هل يعمل هدا الكود

elect * from [database1].[dbo].MyTable1 MyTable1

inner join [database2].[dbo].MyTable2 MyTable2 on MyTable1.TabId = MyTable2.TabId

#17

هل استطيع أن أبعث لك كود على الاميل أريد تعديل أخر

عنما أريد اضافة اى صف جديد يعطى error .

my mail is waleed.makarem@gmail.com

أن لا أعرف ان كان هذا يخالف شروط المنتدى أم لا

شكرا

#18

أخى هذا مجرد مثال

لكننى لم أعمل على 2 داتابيز قبل ذلك

ولكن لعل هذه الروابط تفيدك

http://bytes.com/topic/sql-server/answers/586326-link-two-tables-two-databases

http://www.aspfree.com/c/a/MS-SQL-Server/SQL-Connection-Connecting-to-Multiple-Databases/

http://support.microsoft.com/kb/113701

 وممّا زادنـــي شرفــاً وتيهــاً   **  وكدت بأخمصي أطأ الثريّا

دخولي تحت قولك يا عبادي  **   وأن صيّرت أحمد لي نبيّـاً

#19

}أخى الفااضل

هلا يمكن ان اتكلم معك لطلب أخر خاص بنفس البرنامج و لكن غير هذه المشكلة

على ال skype اسمى هو waleed.makarem

my email is : waleed.makarem@gmail.com

شكرا

#20

الأخ عمر التعزى .

أشكرك على المتابعة و الاهتمام أيضا .

#21

أخ وليد

أسف على التأخير

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

شكرا

#22

الأخ وليد

أرجو الإطلاع على البرنامج

وشكرا

Waleed.rar

#23

الاخ الفاضل عمر ,

أولا : أعتذر على التأخير فى الرد لظروف .

ثانيا : اشكرك على المجهود الرائع الذى قمت بعمله .و لكننى لم أجد الملفين ال mdb > , و عندما click على ال database , فانه يعطينى هذه ال error message :

The "Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine .

أرجو التفضل و التوضيح

و شكرا ....

#24

الأخ وليد

يجب ان يكون عندك في جهاز الكمبيوتر البرامج التاليه

VS 2008 لتشغيل البرنامج المرسل لك

MS Office 2007 لتشغيل ملفات الأكسس

مع أخر تحديث لهما

الصور التاليه من البرنامج مع بعض الشرح

post-227437-12723445181261_thumb.jpg

post-227437-12723445367015_thumb.jpg

#25

الاخ الفاضل عمر ,

أولا : أعتذر على التأخير فى الرد لظروف .

ثانيا : اشكرك على المجهود الرائع البرنامج يعمل و بكفاءة . شكرا على المجهود و الاهتمام و جزاك الله خيرا

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

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

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

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

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