اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

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

قام بنشر

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

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

دمج اكثر من عمود فى جدول فى عمود واحد فى جدول جديد اسفل بعض، يعني لدى جدول به عدة اعمدة كالاسم وصنف1 وصنف2 وصنف3 والاجمالى اريد انشاء جدول جديد يعمل على دمج قيمة  الصنف الاول ثم اسفلها قيم الصنف الثانى ثم اسفلها قيم الصنف الثالث لعمل دالة الانحراف المعيارى لكل هذه القيم

قام بنشر
  في 12‏/7‏/2022 at 05:31, 01142177047 said:

اريد انشاء جدول جديد يعمل على دمج قيمة  الصنف الاول ثم اسفلها قيم الصنف الثانى ثم اسفلها قيم الصنف الثالث

Expand  

الامر مبهم قليلا

اذا كان المطلوب كما في الصور المرفقة فيمكن عمل كود بحلقتين دوارة

الحلقة الاولى تمر على سجلات الجدول والحلقة الاخرى تمر على الحقول لكل سجل

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

الصور مرفقة

 

دوارة1.png

دوارة2.png

قام بنشر

لا اريد العمود b اسفله العمود c اسفله العمود d بدون اسم العمود

  في 12‏/7‏/2022 at 08:49, مبرمج سابق said:

الامر مبهم قليلا

اذا كان المطلوب كما في الصور المرفقة فيمكن عمل كود بحلقتين دوارة

الحلقة الاولى تمر على سجلات الجدول والحلقة الاخرى تمر على الحقول لكل سجل

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

الصور مرفقة

 

دوارة1.png

دوارة2.png

Expand  

لا اريد العمود b اسفله العمود c اسفله العمود d بدون اسم العمود

قام بنشر
  في 12‏/7‏/2022 at 11:15, 01142177047 said:

لا اريد العمود b اسفله العمود c اسفله العمود d بدون اسم العمود

Expand  

ممكن ذلك

    Dim rst As DAO.Recordset
    Dim rs As DAO.Recordset
    Dim fld As Field
    Dim a As Integer

    Set rst = CurrentDb.OpenRecordset("tbl_1")
    Set rs = CurrentDb.OpenRecordset("tbl_2")
    For a = 1 To rst.RecordCount
    For Each fld In rst.Fields
    If fld.Name <> "id" And fld.Name <> "item" Then
    rs.AddNew
      rs!a = fld.Value
'      rs!Item = rst!Item
    rs.Update
    End If
    Next fld
    rst.MoveNext
    Next a
    rst.Close: Set rst = Nothing
    rs.Close: Set rs = Nothing

عملته بشكل سريع وليس لدي وقت للمراجعة

مرفق مثال صغير

تحياتي

Database151.accdbFetching info...

  • Thanks 1
قام بنشر
  في 12‏/7‏/2022 at 11:23, مبرمج سابق said:

ممكن ذلك

    Dim rst As DAO.Recordset
    Dim rs As DAO.Recordset
    Dim fld As Field
    Dim a As Integer

    Set rst = CurrentDb.OpenRecordset("tbl_1")
    Set rs = CurrentDb.OpenRecordset("tbl_2")
    For a = 1 To rst.RecordCount
    For Each fld In rst.Fields
    If fld.Name <> "id" And fld.Name <> "item" Then
    rs.AddNew
      rs!a = fld.Value
'      rs!Item = rst!Item
    rs.Update
    End If
    Next fld
    rst.MoveNext
    Next a
    rst.Close: Set rst = Nothing
    rs.Close: Set rs = Nothing

عملته بشكل سريع وليس لدي وقت للمراجعة

مرفق مثال صغير

تحياتي

Database151.accdb 424 kB · 2 downloads

Expand  

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

قام بنشر
  في 12‏/7‏/2022 at 11:30, 01142177047 said:

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

Expand  

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

Database51.rarFetching info...

  في 12‏/7‏/2022 at 12:09, 01142177047 said:

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

Database51.rar 101.76 kB · 0 downloads

Expand  

الاعمدة المطلوب دمجها هى 28 و280 و281

قام بنشر
  في 12‏/7‏/2022 at 12:09, 01142177047 said:

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

Expand  

استبدل الكود في زر الامر بالتالي

    Dim rst As DAO.Recordset
    Dim rs As DAO.Recordset
    Dim fld As Field
    Dim a As Integer

    Set rst = CurrentDb.OpenRecordset("the main")
    Set rs = CurrentDb.OpenRecordset("sd")
    For a = 1 To rst.RecordCount
    For Each fld In rst.Fields
    If fld.Name = "28" Or fld.Name = "280" Or fld.Name = "281" Then
    rs.AddNew
      rs!a = fld.Value
'      rs!id = rst!no
rs.Update
    End If
    Next fld
    rst.MoveNext
    Next a
    rst.Close: Set rst = Nothing
    rs.Close: Set rs = Nothing

ولو تضع عمود id تنقل له الرقم no للمحافظة على التسلسل

اذا رغبت بذلك اضف حقل id في جدول sd ولا تجعله مفتاح اساسي وفي السطر 12 من الكود الغي علامة . من بداية السطر

تحياتي

  • Like 2
  • تمت الإجابة
قام بنشر
  في 12‏/7‏/2022 at 13:29, 01142177047 said:

كيف افعل ذلك 

Expand  

 

  في 12‏/7‏/2022 at 12:59, مبرمج سابق said:

اذا رغبت بذلك اضف حقل id في جدول sd ولا تجعله مفتاح اساسي وفي السطر 12 من الكود الغي علامة . من بداية السطر

Expand  

ملاحظة تجنب تسمية الاحقول بالارقم

الملف مرفق

Database51.accdbFetching info...

  • Like 1
  • Thanks 1
قام بنشر
  في 12‏/7‏/2022 at 14:07, 01142177047 said:

بارك الله فيك أخي الحبيب جزيت خيرا 

تعبتك كتير معايا هذا هو المطلوب

Expand  

ولك مثل ذلك بعون الله

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

تمنياتي لك بالتوفيق وعيدكم مبارك

  • Like 1
قام بنشر

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

ممكن ان نصل للنتيجة بدون الحاجة الى اكواد وبعدة طرق

ومن باب تعدد الحلول سوف اشرح طريقة واحدة اضافية

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

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

ولكن ايضا ممكن دمج حقول من نفس الجدول لذا ممكن ان نصيغ جملة الاستعلام بالشكل التالي

SELECT [The Main].[no], [The Main].dx
FROM [The Main]
union all
SELECT [The Main].[no], [The Main].dd
FROM [The Main]
UNION ALL SELECT [The Main].[no], [The Main].dh
FROM [The Main];

والخطوة التالي نعمل استعلام الحاق مصدر بياناته استعلام التوحيد

INSERT INTO sd ( id, a )
SELECT q_1.[no], q_1.dx
FROM q_1
ORDER BY q_1.[no];

ونحصل على نفس نتيجة استخدام الاكواد

تحياتي

  • Like 3
قام بنشر
  في 12‏/7‏/2022 at 16:34, مبرمج سابق said:

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

ممكن ان نصل للنتيجة بدون الحاجة الى اكواد وبعدة طرق

ومن باب تعدد الحلول سوف اشرح طريقة واحدة اضافية

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

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

ولكن ايضا ممكن دمج حقول من نفس الجدول لذا ممكن ان نصيغ جملة الاستعلام بالشكل التالي

SELECT [The Main].[no], [The Main].dx
FROM [The Main]
union all
SELECT [The Main].[no], [The Main].dd
FROM [The Main]
UNION ALL SELECT [The Main].[no], [The Main].dh
FROM [The Main];

والخطوة التالي نعمل استعلام الحاق مصدر بياناته استعلام التوحيد

INSERT INTO sd ( id, a )
SELECT q_1.[no], q_1.dx
FROM q_1
ORDER BY q_1.[no];

ونحصل على نفس نتيجة استخدام الاكواد

تحياتي

Expand  

اولا اشكرك جدا لاهتمامك

ثانيا انا جربت طريقة إستعلام التوحيد ولكن يحدث معى اخطاء ولم استطع الوصول لحل 

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

  • Like 1
قام بنشر
  في 12‏/7‏/2022 at 17:21, 01142177047 said:

اولا اشكرك جدا لاهتمامك

Expand  

الشكر لله اخي

ليس من الضروري تجربتها طالما انت وصلت للحل بالطريقة السابقة

واشارتي لاستعلام التوحيد فقط لغرض الحديث عن حلول اخرى واثراء للموضوع فقط

تحياتي

  • Like 1
قام بنشر (معدل)
  في 12‏/7‏/2022 at 11:23, مبرمج سابق said:

ممكن ذلك

Expand  

مبدع مشرفنا الكريم @مبرمج سابق

هل يمكن تطوير الكود بحيث لا يكرر البيانات.. وإنما ينقل الجديد فقط..؟:fff:

وهل بالإمكان أن يقبل النص.. لأني فيما رأيت لا يقبل سوى الرقم..؟

تم تعديل بواسطه حامل المسك
  • Like 1
قام بنشر
  في 12‏/7‏/2022 at 21:00, حامل المسك said:

هل يمكن تطوير الكود بحيث لا يكرر البيانات.. وإنما ينقل الجديد فقط..؟

Expand  

يا هلا دكتورنا العزيز

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

ربما الامر الغير ممكن ان نحصل على نتيجة اذا لم تتوفر المعطيات المطلوبة

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

و لو تلاحظ اني تحدثت عن طريقتين بالكود وعدم التكرار يحتاج الى تعديل

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

اي تعديل union all في السطر الثالث والسطر السادس الى union وهنا سوف يقوم بجمع البيانات بدون تكرار

  في 12‏/7‏/2022 at 21:00, حامل المسك said:

مشرفنا الكريم

Expand  

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

و الحديث في الماضي نقصان عقل ونحن ابناء اليوم

تحياتي وتقديري اخي الكريم 🌹

  • Like 1
قام بنشر
  في 12‏/7‏/2022 at 12:59, مبرمج سابق said:

 

    Dim rst As DAO.Recordset
    Dim rs As DAO.Recordset
    Dim fld As Field
    Dim a As Integer

    Set rst = CurrentDb.OpenRecordset("the main")
    Set rs = CurrentDb.OpenRecordset("sd")
    For a = 1 To rst.RecordCount
    For Each fld In rst.Fields
    If fld.Name = "28" Or fld.Name = "280" Or fld.Name = "281" Then
    rs.AddNew
      rs!a = fld.Value
'      rs!id = rst!no
rs.Update
    End If
    Next fld
    rst.MoveNext
    Next a
    rst.Close: Set rst = Nothing
    rs.Close: Set rs = Nothing

 

Expand  

ظهر لي مشكلة في هذه الطريقة وهى عند الضغط على ذر الامر اكثر من مرة يقوم بعمل تكرار لسجلات الجدول 

واريد ان اعدل على هذا الكود بااضافة زر تصفية يعني انا قمت بااضافة عمود اخر بااسم s عند اختيار منه 400 يظهر البيانات الخاصة ب400 فقط

مرفق نسخة من قاعدة البيانات 

Database51-1.rarFetching info...

قام بنشر
  في 13‏/7‏/2022 at 05:24, 01142177047 said:

ظهر لي مشكلة في هذه الطريقة وهى عند الضغط على ذر الامر اكثر من مرة يقوم بعمل تكرار لسجلات الجدول 

واريد ان اعدل على هذا الكود بااضافة زر تصفية يعني انا قمت بااضافة عمود اخر بااسم s عند اختيار منه 400 يظهر البيانات الخاصة ب400 فقط

Expand  

جرب الان

 

Database511.accdbFetching info...

قام بنشر

تسلم بارك الله فيك 

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

وشكراً جزيلا لك 

قام بنشر (معدل)

  

  في 12‏/7‏/2022 at 21:39, مبرمج سابق said:

يا هلا دكتورنا العزيز

Expand  

هذه خلفها سر ..

  في 12‏/7‏/2022 at 21:39, مبرمج سابق said:

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

Expand  

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

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

  في 12‏/7‏/2022 at 21:39, مبرمج سابق said:

و لو تلاحظ اني تحدثت عن طريقتين بالكود وعدم التكرار يحتاج الى تعديل

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

اي تعديل union all في السطر الثالث والسطر السادس الى union وهنا سوف يقوم بجمع البيانات بدون تكرار

Expand  

وهذا إبداع..

 

  في 12‏/7‏/2022 at 21:39, مبرمج سابق said:

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

Expand  

لك ولهذا المنتدى علينا فضائل... وستظلون أساتذة لنا نذكركم بخير ما حيينا..

 

  في 13‏/7‏/2022 at 09:20, مبرمج سابق said:

الملف مرفق

Expand  

مبدع حقيقة..

كتب الله أجرك وأجر من طرح الموضوع وكل من شارك وقرأ..

تم تعديل بواسطه حامل المسك
  • Like 1
قام بنشر

بارك الله فيكم جميعا هذا المنتدى صرح كبير 

تعلمنا فيه الكثير وأنتم جميعا استاذنا تعلمنا منكم الكثير  شكرا لكم جميعا 

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