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

عمل استعلام يعرض جميع المعلومات في جميع الجداول في قاعدة بيانات اكسس

بدأه amin1982 في 2 أبريل 2011 · 5 رد · 1,421 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لو سمحتم أريد حلا للاتي:

عمل استعلام يعرض جميع المعلومات في جميع الجداول في قاعدة بيانات اكسس

مثالالمطلوب:

SELECT * FROM ALL _TABLES;

مع العلم بعدم استخدام اسماء الجداول و ليس هناك عدد محدد مسبقا للجداول.

و شكرا

#2

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

#3

هذا يتوقف على الجداول أخى

ضع مثال حتى تتضح مدى امكانية ذلك

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#4
Abo_Yossof كتب:

هذا يتوقف على الجداول أخى

ضع مثال حتى تتضح مدى امكانية ذلك

السلام عليكم

شكرا على الردود و لكن اوضح المطلوب:

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

id name age shool notes subscription_date

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

قاعدة البيانات يمكن لن تحتوي جدول او ثلاثة أو خمسة أو عشرة او أي عدد من الجداول .

المطلوب :بدلا من عرض جدول واحد كالتالي:

select * from Table1

أريد عرض محتوى جميع الجداول مرة واحدة و أنا لا أعرف عدد الجداول بمعنى الاستعلام يجب أن يعني (كل الجداول في قاعدة البيانات) ,أي استعلام يقوم بالتالي:

select * from ALL_TABLES_IN_THE_MDB

وشكرا

#5

اليك اخى هذا الحل

1- ضع استعلام ( اى استعلام ) و يكون اسمه Qry

2- ضع الكود التالى فى زر فى نموذج

Dim strsql As String
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("SELECT [MSysObjects].[Name] FROM MSysObjects WHERE (Left([Name],1)<>'~') AND (Left([Name],4) <> 'MSys') AND ([Type] In (1, 4, 6)) ORDER BY Name")

For i = 1 To rs.RecordCount
 If i = 1 Then
   strsql = "select " & rs!Name & ".* from " & rs!Name & "; "
 Else
   strsql = strsql & "union all select " & rs!Name & ".* from " & rs!Name & "; "
 End If
rs.MoveNext
Next i

CurrentDb.QueryDefs("Qry").SQL = strsql
DoCmd.OpenQuery "Qry"

rs.Close
Set rs = Nothing

3- احفظ التعديل

4- افتح النموذج و اضغط الزر

1

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#6
Abo_Yossof كتب:

اليك اخى هذا الحل

1- ضع استعلام ( اى استعلام ) و يكون اسمه Qry

2- ضع الكود التالى فى زر فى نموذج

Dim strsql As String
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("SELECT [MSysObjects].[Name] FROM MSysObjects WHERE (Left([Name],1)<>'~') AND (Left([Name],4) <> 'MSys') AND ([Type] In (1, 4, 6)) ORDER BY Name")

For i = 1 To rs.RecordCount
 If i = 1 Then
   strsql = "select " & rs!Name & ".* from " & rs!Name & "; "
 Else
   strsql = strsql & "union all select " & rs!Name & ".* from " & rs!Name & "; "
 End If
rs.MoveNext
Next i

CurrentDb.QueryDefs("Qry").SQL = strsql
DoCmd.OpenQuery "Qry"

rs.Close
Set rs = Nothing

3- احفظ التعديل

4- افتح النموذج و اضغط الزر

قمت بتجربة الحل بنجاح .

أخي Abo_Yossof شكرا جزيل لك ....

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

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

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

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

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

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