اذهب الي المحتوي
أوفيسنا

سؤال بخصوص الاستعلام الإلحاقى


ابو جودي

الردود الموصى بها

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

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

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


هل يمكن تعديل كود ال Sql  ليتم الحاق البيانات من ثلاث جداول او اكثر الى جدول واحد فقط به نفس اسماء الحقول بأنواعها ؟

مثلا عندى حقل باسم       A     وهو حقل رقمى  موجود فى جدول باسم    tbl1

وايضا عندى حقل باسم    B     وهو حقل نصى  موجود فى جدول باسم    tbl2

وايضا عندى حقل باسم    C    وهو حقل رقمى موجود فى جدول باسم      tbl3

ويوجد جدول باسم  tbl_data  يحتوى على الحقول  A, B, C  وبنفس الانواع

هل يمكن عمل جملة Sql  لعمل الحاق لكل من  الحقول  A, B, C  من الجداول  tbl1   ,   tbl2    ,  tbl3  إلى الجدول   tbl_data

رابط هذا التعليق
شارك

8 دقائق مضت, محمد عصامـے said:

يقوم بالحاق البيانات من جدول لاخر بنفس اسماء الحقول وانواعها ويتم هذا بين جدولين

هذا غير صحيح ، فتستطيع ان تلحق اي معلومة/حقل/معادلة الى اي حقل في جدول الالحاق.

 

 

جعفر

رابط هذا التعليق
شارك

5 دقائق مضت, jjafferr said:

هذا غير صحيح ، فتستطيع ان تلحق اي معلومة/حقل/معادلة الى اي حقل في جدول الالحاق.

 

 

جعفر

السلام عليكم ورحمة الله تعالى وبركاته
استاذى الجليل القدير والفنان جعفر :dance1: 
طيب دى معلومة كنت انا فاهمها غلط جزاكم الله خيرا على تصحيحها
ولكن بقى السؤال هل يمكن الحاق حقول من ثلاث جداول الى جدول رابع ؟ 
ولو ممكن 
اطلب من حضرتك على استحياء مثال لذلك 
جزاكم الله خيرا

او حتى لضيق وقتك اكتب لى جملة الاستعلام التى اضعها فى محرر SQL ,  وسأقوم انا بمحاولة تفكيكها وفتحليلها وفهمها 

تم تعديل بواسطه محمد عصامـے
رابط هذا التعليق
شارك

11 دقائق مضت, محمد عصامـے said:

هل يمكن عمل جملة Sql  لعمل الحاق لكل من  الحقول  A, B, C  من الجداول  tbl1   ,   tbl2    ,  tbl3  إلى الجدول   tbl_data

نعم :rol:

ولكن في بعض الاوقات قد تكون بحاجة الى عمل استعلامات عادية جانبية ، ثم تجمعها في استعلام الحاقي ، انظر الصورة التالية:

275.Clipboard02.jpg.e31f58597c3e282de57b

 

جعفر

 

 

هذا الرابط فيه الاستعلام السابق

http://www.officena.net/ib/topic/65067-ما-هي-طريقة-استيراد-بيانات-من-عدة-صفحات-اكسل-الى-جدول-اكسس/?page=1

 

جعفر

رابط هذا التعليق
شارك

8 دقائق مضت, jjafferr said:

نعم :rol:

ولكن في بعض الاوقات قد تكون بحاجة الى عمل استعلامات عادية جانبية ، ثم تجمعها في استعلام الحاقي ، انظر الصورة التالية:

275.Clipboard02.jpg.e31f58597c3e282de57b

 

جعفر

Expr3: qry_5_Crosstab
لو عاوز اعمل الحاق من  الحقل F29  اكمل المعيار الى فوق ازاى ؟

رابط هذا التعليق
شارك

2 دقائق مضت, محمد عصامـے said:

لو عاوز اعمل الحاق من  الحقل F29  اكمل المعيار الى فوق ازاى ؟

مجرد انك تنزل الحقل الاستعلام :rol:

 

وهذا مثال على قولي:

20 دقائق مضت, jjafferr said:

تستطيع ان تلحق اي معلومة/حقل/معادلة الى اي حقل في جدول الالحاق.

.

275.Clipboard03.jpg.57d915301a465fa6fd32

 

 

جعفر

رابط هذا التعليق
شارك

طيب لو تكرمت يا استاذ جعفر الله يكرمك ممكن تررفق لى المرفق ده عملى على قاعدة اكسس واللا صعب ؟

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

رابط هذا التعليق
شارك

انا اعطيتك رابط الموضوع وبه المرفقات ، رجاء الرجوع الى المشاركات اعلاه :rol:

 

وكذلك المرفق موجود في المشاركة اعلاه ، في كود الحاقي متغير ، هكذا:


    mySQL = "INSERT INTO Degrees ( S_Name, S_ID, Sheet_Number )"
    mySQL = mySQL & " SELECT [" & sName & "], [" & sID & "], " & lngCount & " as S"
    mySQL = mySQL & " FROM tbl_Sheets"
    mySQL = mySQL & " GROUP BY [" & sName & "], [" & sID & "]"
    mySQL = mySQL & " HAVING [" & sName & "]<>'اسم الطالب' And [" & sName & "] Is Not Null"
    Debug.Print mySQL
    CurrentDb.Execute (mySQL)
    
    

 

جعفر

رابط هذا التعليق
شارك

5 دقائق مضت, jjafferr said:

انا اعطيتك رابط الموضوع وبه المرفقات ، رجاء الرجوع الى المشاركات اعلاه :rol:

 

وكذلك المرفق موجود في المشاركة اعلاه ، في كود الحاقي متغير ، هكذا:



    mySQL = "INSERT INTO Degrees ( S_Name, S_ID, Sheet_Number )"
    mySQL = mySQL & " SELECT [" & sName & "], [" & sID & "], " & lngCount & " as S"
    mySQL = mySQL & " FROM tbl_Sheets"
    mySQL = mySQL & " GROUP BY [" & sName & "], [" & sID & "]"
    mySQL = mySQL & " HAVING [" & sName & "]<>'اسم الطالب' And [" & sName & "] Is Not Null"
    Debug.Print mySQL
    CurrentDb.Execute (mySQL)
    
    

 

جعفر

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

رابط هذا التعليق
شارك

السلام عليكم

مع انني مشغول جدا ولكن السائل اعلى من كل انشغالاتي :smile:

ولاني لم ارى الجواب شافي من اخي وحبيبي الاستاذ جعفر :rol:

هنا يا استاذ محمد انت سالت سؤال تراوغ منه لغة الاستعلامات الاكسس ! لانها مش قادره عليه !

هنا خلينا نعمل حاجة في الاستعلامات select  وحنسيب الالحاق لاحقا !

انا عملت مايدور في ذهنك او حسب سؤالك وارفقته كملف اكسس ! والمطلوب كملف اكسل وهذا اللي احنا عايزينه !

احنا خلينا نعمل نتيجة ت زي اللي بالاكسل بعدين نرجع لموضوع الالحاق !

فاريدك تحاول !  

 

بالتوفيق

 

mo_esam.rar

  • Like 1
رابط هذا التعليق
شارك

9 ساعات مضت, رمهان said:

السلام عليكم

مع انني مشغول جدا ولكن السائل اعلى من كل انشغالاتي :smile:

ولاني لم ارى الجواب شافي من اخي وحبيبي الاستاذ جعفر :rol:

هنا يا استاذ محمد انت سالت سؤال تراوغ منه لغة الاستعلامات الاكسس ! لانها مش قادره عليه !

هنا خلينا نعمل حاجة في الاستعلامات select  وحنسيب الالحاق لاحقا !

انا عملت مايدور في ذهنك او حسب سؤالك وارفقته كملف اكسس ! والمطلوب كملف اكسل وهذا اللي احنا عايزينه !

احنا خلينا نعمل نتيجة ت زي اللي بالاكسل بعدين نرجع لموضوع الالحاق !

فاريدك تحاول !  

 

بالتوفيق

 

mo_esam.rar

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

رابط هذا التعليق
شارك

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

رابط هذا التعليق
شارك

3 دقائق مضت, jjafferr said:

أخي محمد

 

ارفق جزء من برنامجك اللي تريدنا نساعدك فيه ، وخلينا نشوف اللي تشوفه انت :rol:

 

 

جعفر

حبيبى الله يكرمك

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

رابط هذا التعليق
شارك

8 ساعات مضت, محمد عصامـے said:

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

اليس هذا سؤالك اخ محمد ؟ لان في السؤال اختيار ثلاث حقول من ثلاث جداول ثم الحاقها في جدول ثالث ؟ وهنا احنا في جزئية الاختيار اولا !

وهنا للعلم : برضه انا مش قادر اعملها ؟ ولا اعتقد الاستاذ جعفر كذلك ! واعتقد ان الاكسس نفسه مش قادر !

وهنا لي عودة بعد نيفا من الوقت !

 

تحياتي

رابط هذا التعليق
شارك

20 ساعات مضت, jjafferr said:

أخي محمد

 

ارفق جزء من برنامجك اللي تريدنا نساعدك فيه ، وخلينا نشوف اللي تشوفه انت :rol:

 

 

جعفر

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

رابط هذا التعليق
شارك

أخي محمد :rol:

 

ومن قال انه في طريقة واحدة لتحقيق المطلوب!!

هناك مجموعة طرق ، والكود دائما موجود ، فلهذا السبب ، وبعيد عن يصير/مايصير  ، ارفق مثالك واخبرنا الحقول والجداول ، وخلينا نحاول :rol:

 

 

جعفر

رابط هذا التعليق
شارك

7 ساعات مضت, jjafferr said:

أخي محمد :rol:

 

ومن قال انه في طريقة واحدة لتحقيق المطلوب!!

هناك مجموعة طرق ، والكود دائما موجود ، فلهذا السبب ، وبعيد عن يصير/مايصير  ، ارفق مثالك واخبرنا الحقول والجداول ، وخلينا نحاول :rol:

جعفر

عزيزي واخي الاستاذ جعفر

طبعا انت ابو الاكواد ! فاكيد كل شي بيصير معك ما شاء الله !

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

وهنا ارفقت مرفق به جدول رابع لالحاق الحقول الثلاثة به ومن الجداول الثلاثة الاولى واعتمدت تسميتها بنفس تسمية الاخ محمد عصام في نفس المشاركة الاولى !

هنا استاذ جعفر تفضل علينا بطريقة الكود لعمل الالحاق وليظهر table4  به قيمة الاعمدة الثلاثة ومن الجداول table1,table2,table3  وليصبح كما بورقة الاكسل المرفقة 

بالتوفيق

 

mo_esam_sample.rar

رابط هذا التعليق
شارك

السلام عليكم  اخواني الكرام

جداول اكسس تختلف عن جداول اكسل

فالاساس في جدول اكسس هو السجل  والحقل فرع منه ..  لذا فالعمود لا ينفرد بخصيصة

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

    لو افترضنا تم تطبيق مطلب اخونا محمد عن طريق الكود فستكون القيم : 1 ، 4 ، 7 في سجل واحد

   السؤال الآن : ما الرابطة او العلاقة  بين هذه القيم  ، وبأي وسيلة نستطيع الرجوع الى احدى هذه القيم عند الحاجة

نخرج من هذه المقدمة المقتضبة الى وجوب وجود معرف في كل جدول وتكون له علاقة داخل الجداول الاخرى

السجل وحقوله في الجدول كالمنزل وساكنيه

 

  • Like 3
رابط هذا التعليق
شارك

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

 

قمت بالعمل لإثبات انه ممكن ، ولكن الشئ المهم ما قاله أخي أبو خليل:

2 ساعات مضت, ابوخليل said:

 السؤال الآن : ما الرابطة او العلاقة  بين هذه القيم

.

لهذا ، هذه النتيجة:

Clipboard01.jpg.ea4a0750c607cd015d2fbeea

.

وهذا الكود الذي يقوم بالعمل كاملا:

1. استعلام الحاق للجدول table1 ،

2. استعلام تحديث للجدول table2 ،

3. استعلام تحديث للجدول table3 ،


Private Sub cmd_append_update_Click()

    Dim rstFrom As DAO.Recordset
    Dim rstTo As DAO.Recordset
    
    Set rstTo = CurrentDb.OpenRecordset("Select * From table4")
    
'table1, Append
    Set rstFrom = CurrentDb.OpenRecordset("Select * From table1")
    rstFrom.MoveLast: rstFrom.MoveFirst
    RC = rstFrom.RecordCount
    
    For i = 1 To RC
        rstTo.AddNew
            rstTo!a = rstFrom!a
        rstTo.Update
        rstFrom.MoveNext
    Next i
    
'table2, Update
    rstTo.MoveFirst
    Set rstFrom = CurrentDb.OpenRecordset("Select * From table2")
    rstFrom.MoveLast: rstFrom.MoveFirst
    RC = rstFrom.RecordCount
    
    For i = 1 To RC
        rstTo.Edit
            rstTo!b = rstFrom!b
        rstTo.Update
        rstFrom.MoveNext
        rstTo.MoveNext
    Next i
    
'table3, Update
    rstTo.MoveFirst
    Set rstFrom = CurrentDb.OpenRecordset("Select * From table3")
    rstFrom.MoveLast: rstFrom.MoveFirst
    RC = rstFrom.RecordCount
    
    For i = 1 To RC
        rstTo.Edit
            rstTo!c = rstFrom!c
        rstTo.Update
        rstFrom.MoveNext
        rstTo.MoveNext
    Next i
    
    MsgBox "Done"
    
End Sub

 

جعفر

mo_esam_sample.zip

  • Like 1
رابط هذا التعليق
شارك

  • 3 weeks later...

السلام عليكم ورحمة الله تعالى وبركاته
اولا اعتذر لتأخرى بسبب مشاكل فى جهاز الكمبيوتر عنندى :wallbash::wallbash:
وثانيا احضر حالى للسفر لآداء العمرة ان شاء الله يوم  19-1-2016
ولذلك اعتذر جدا جدا جدا عن تاخرى فى الرد على اساتذتى الكرام ومتابعتهم واطلب منكم على استحياء ان تتحملونى حتى عودتى ان شاء الله تعالى من السعودية ان كان فى العمر بقية

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information