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

تقسيم بيانات الالحاق بين حقلين بالتساوى


Amr Ashraf
إذهب إلى أفضل إجابة Solved by ابوخليل,

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

السلام عليكم

فى القاعدة المرفقة عندى استعلام لعمل عملية فرز واستعلام الحاق لالحاق نتيجة الفرز بجدول المطلوب الحاق النصف الاول من البيانات فى الجدول Matches فى الحقل Player1 والحاق النصف الثانى من البيانات المفرزة فى Player2 

مثال :

فلنقل ان استعلام الفرز انتج قائمة من الأسماء 6 أسماء مثلا (اجمد محمد حسين ابراهيم ياسر عبدالله ) اريد ان يتم الحاق اول 3 اسماء فى حقل Player1 وال3 اسماء المتبقيين فى Player2

واذا افترضنا ان نتيجة استعلام الفرز 7 اسماء يعنى لا تقبل القسمة على 2 يتم الحاق 6 بالطريقة السابقة والاسم السابع فى Player1 وفى حقل Player2 يكتب بدون منافس 

شكرا جزيلا

 

Append.rar

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

وعليكم السلام

انا رأيي لو كان  التوزيع عشوائي او بالتوالي واحد ثم الذي يليه 

عموما تفضل هذا  الكود  يعمل حسب طلبك

On Error GoTo err_g
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE Matches.*, * FROM Matches"
DoCmd.SetWarnings True
Dim rs, rs2 As Recordset
Dim i, i2, c0, c1, c2 As Integer
Set rs = CurrentDb.OpenRecordset("Qry1")
Set rs2 = CurrentDb.OpenRecordset("Matches")
c0 = DCount("*", "Qry1")
c1 = c0 \ 2
c2 = c0 Mod 2
If c2 = 1 Then c1 = c1 + 1
rs.MoveFirst
          For i = 1 To c0
If rs.RecordCount = c1 + 1 Then
rs2.MoveFirst
 For i2 = rs.RecordCount To c0
   rs2.Edit
   rs2!player2 = rs!player
   rs2.Update
    rs2.MoveNext
   rs.MoveNext
Next i2
If rs.RecordCount = c0 Then GoTo g
   Else
    rs2.AddNew
      rs2!player1 = rs!player
        rs2.Update
          rs.MoveNext
     End If
             Next i
g:
If c2 = 1 Then
rs2.MoveLast
rs2.Edit
rs2!player2 = " بدون منافس"
rs2.Update
     Else
         Exit Sub
      End If
     rs.Close
     rs2.Close
err_g:
  Exit Sub

 

Append2.rar

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

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

وعليكم السلام

انا رأيي لو كان  التوزيع عشوائي او بالتوالي واحد ثم الذي يليه 

عموما تفضل هذا  الكود  يعمل حسب طلبك

Append2.rar

 

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

اولا بستأذنك قمت ببعض التعديل على الكود بحيث يقوم بالحاق النادى الخاص بكل لاعب فى حقلين تم انشاؤهم حديثا فى جدول Matches .

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

سلمت يمناك شيخنا الجليل 

 

 

 

Append4.rar

تم تعديل بواسطه Amr Ashraf
رابط هذا التعليق
شارك

انا من رأيت اسماء الاندية وقع في بالي ما اشرت اليه  لهذا لم اتصور فلترة  تفي بالغرض  عن طريق التقسيم

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

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

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

انا من رأيت اسماء الاندية وقع في بالي ما اشرت اليه  لهذا لم اتصور فلترة  تفي بالغرض  عن طريق التقسيم

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

خذ ما تشاء من وقت استاذى الفاضل جعله الله فى ميزان حسناتك:fff:

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

  • أفضل إجابة

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

لاحظ القيمة الافتراضية في الجدول فمنطقيا قد يكون النقص من اليمين  او يكون من اليسار

لذا اي حقل فارغ ستظهر فيه العبارة الخاصة به

rs.MoveFirst
  c1 = rs!club
  For i = 1 To ii
   If rs!club = c1 Then
  rs2.AddNew
     rs2!player1 = rs!player
     rs2!pl1club = rs!club
   rs2.Update
 rs.MoveNext
Else
rs.MoveNext
End If
Next i
  rs.MoveFirst
rs2.MoveFirst
For i2 = 1 To ii
   If rs!club <> c1 Then
  rs2.Edit
      rs2!player2 = rs!player
     rs2!pl2club = rs!club
   rs2.Update
 rs2.MoveNext
 rs.MoveNext
Else
rs.MoveNext
End If
Next i2

 

Append5.rar

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

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

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

لاحظ القيمة الافتراضية في الجدول فمنطقيا قد يكون النقص من اليمين  او يكون من اليسار

لذا اي حقل فارغ ستظهر فيه العبارة الخاصة به

Append5.rar

سلمت يداك استاذنا الغالى تمت الافادة والنتيجة اكثر من رائعة 

بستأذنك لو فيه مشكلة هضيف مشاركة جديدة

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

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