عبد الله قدور قام بنشر أكتوبر 27, 2018 قام بنشر أكتوبر 27, 2018 السلام عليكم اخواني الكرام عندي نموذجين رئيسي وفرعي كيف يمكنني ان احصل على مجموع السجلات المحددة في النموذج الفرعي بمربع نص في النموذج الرئيسي كما في الاكسل تماما
Shivan Rekany قام بنشر أكتوبر 27, 2018 قام بنشر أكتوبر 27, 2018 45 دقائق مضت, عبد الله قدور said: عندي نموذجين رئيسي وفرعي كيف يمكنني ان احصل على مجموع السجلات المحددة في النموذج الفرعي بمربع نص في النموذج الرئيسي كما في الاكسل تماما الاکسل بيعمل جمع بواسطة اي دي السطور من رقم 1 الى اخره و مع السماء الحقول من a الى اخره لذلك حضرتك ايضا يقدر عمل ذلك لكن بنفس الطريقة تقدر تستخدم DSum وتعطيه شرط من اي دي فلان الى فلان هذا حسب ما فهمت من السؤال 1 1
عبد الله قدور قام بنشر أكتوبر 27, 2018 الكاتب قام بنشر أكتوبر 27, 2018 (معدل) 9 دقائق مضت, رمهان said: هات مرفق للتطبيق تحياتي قاعدة البيانات1.accdb المطلوب الحصول على مجموع الخلايا المحددة ان كان لعمود واحد فقط او كل الاعمدة المحدد منها في مربع النص في الاسفل تم تعديل أكتوبر 27, 2018 بواسطه عبد الله قدور
Hamdi Edlbi-khalf قام بنشر أكتوبر 27, 2018 قام بنشر أكتوبر 27, 2018 (معدل) لقد قمت بإعداد المرفق قبل مشاهدة الردود من الأساتذة CountSubformSelectedRec.accdb تعديل : لقد فهمت السؤال عن أنه عن عدد السجلات المحددة فقط . تم تعديل أكتوبر 27, 2018 بواسطه Khalf
رمهان قام بنشر أكتوبر 27, 2018 قام بنشر أكتوبر 27, 2018 الحل عن طريق ثلاث خصائص للنموذج seltop selheight selwidth حاول اخي عبدالله ان تقرا عنهم وتجرب وان شاء الله اعود لك بتطبيق في اقرب فرصة حسب وقتي تحياتي
Hamdi Edlbi-khalf قام بنشر أكتوبر 27, 2018 قام بنشر أكتوبر 27, 2018 السلام عليكم مصدر الكود هو : https://bytes.com/topic/access/answers/940764-count-selected-record-datasheet قمت بالتعديل عليه و إضافته إلى نموذج من نوع داتاشيت و إضافته كنموذج فرعي عندي قمت بمباشرة العمل فور مُشاهدتي لسؤالك لذا لم يتح لي رؤية الردود و المرفق الكود بعد التعديل : ' في حدث mouseup من النموذج بصيغة داتا شيت الذي سنأخذ منه النموذج الفرعي الذي سنضمه FORMS![النموذج الرئيسي]![counter] = me.selheight 1
Shivan Rekany قام بنشر أكتوبر 27, 2018 قام بنشر أكتوبر 27, 2018 3 ساعات مضت, عبد الله قدور said: المطلوب الحصول على مجموع الخلايا المحددة ان كان لعمود واحد فقط او كل الاعمدة المحدد منها في مربع النص في الاسفل انا عملت المطلوب بطريقة اخر عن ما اخبرك استاذ @رمهان و @Khalf بواسطة هذا الكود ستحدد الحقول المراد جمعه في نموذج الفرعي Option Compare Database Public MyCountFelid As Integer Public Sub MyActiveCon() Dim Spl() As String Dim i As Integer If IsNull(Form_Frm.MyList) = True Then Form_Frm.MyList = Me.ActiveControl.Name MyCountFelid = 1 Else Spl = Split(Form_Frm.MyList, "-") For i = 0 To MyCountFelid - 1 If Spl(i) = Me.ActiveControl.Name Then Exit Sub Next i Form_Frm.MyList = Form_Frm.MyList & "-" & Me.ActiveControl.Name MyCountFelid = MyCountFelid + 1 End If Form_Frm.EdedAlhiqol = MyCountFelid End Sub Private Sub item1_DblClick(Cancel As Integer) Call MyActiveCon End Sub Private Sub item2_DblClick(Cancel As Integer) Call MyActiveCon End Sub Private Sub item3_DblClick(Cancel As Integer) Call MyActiveCon End Sub Private Sub item4_DblClick(Cancel As Integer) Call MyActiveCon End Sub Private Sub item5_DblClick(Cancel As Integer) Call MyActiveCon End Sub اولا سيتأكد الكود هل الاسم الحقل موجود من قبل ام لا اذا نعم لا يتكرر واذا لا سيضيفه الى مربع اسماء الحقول مراد جمعه وبواسطة هذا الكود سيعمل المطلوب اي جمع الحقول المطلوبمة من السجل الى السجل Option Compare Database Private Sub Command16_Click() Dim MYSum As Long Dim Spl() As String Dim i As Integer Spl = Split(Me.MyList, "-") For i = 0 To Me.EdedAlhiqol - 1 MYSum = MYSum + Nz(DSum("[" & Spl(i) & "]", "table1", "[id]>=" & Me.FromID & "and [id]<=" & Me.ToID), 0) Next i Me.MySubSum = MYSum Me.FromID = Null Me.ToID = Null Me.MyList = Null Me.EdedAlhiqol = Null End Sub وهذه صور توضيحي للعملية واليك القاعدة جمع عدد من الحقول من تسلسل الى تسلسل.accdb استخدمه حتى رجوع استاذ رمهان بشيء جديد 😊 1 1 1
Hamdi Edlbi-khalf قام بنشر أكتوبر 27, 2018 قام بنشر أكتوبر 27, 2018 (معدل) السلام عليكم هذه تجربة و محاولة لقد أدت المطلوب لكن ربما للأساتذة رأي أكثر احترافية .. خاصة أني أرى أستاذي @Shivan Rekany و هو من هو و كم له من معلومة قيمة استفدتها منه بارك الله به و بالأساتذة الكرام . تعديل :و ضعت المرفق في المشاركة التالية تم تعديل أكتوبر 27, 2018 بواسطه Khalf 2
Hamdi Edlbi-khalf قام بنشر أكتوبر 27, 2018 قام بنشر أكتوبر 27, 2018 (معدل) الطريقة كانت ثلاث مربعات غير منضمة و استخدام هذا الأمر ... Forms![table1]![Text6] = Me.SelHeight Forms![table1]![Text13] = Me.SelTop Forms![table1]![Text15] = DSum("name2", "table2", "[iD] between Forms![table1]![Text13] and Forms![table1]![Text6]+Forms![table1]![Text13]-1 ") يوضع في حدث MOUSEUP في نموذج الفرعي قبل إضافته إلى النموذج الرئيس حيث ستكون طريقة العرض داتاشيت حقل يعد و يجمع السجلات المحدة في نموذج فرعي1.accdb تم تعديل أكتوبر 27, 2018 بواسطه Khalf 1
Hamdi Edlbi-khalf قام بنشر أكتوبر 27, 2018 قام بنشر أكتوبر 27, 2018 أخي @Shivan Rekany فعلاً طريقة رائعة و ربما لها الكثير جداً من التطبيقات . سلمت يداك و شكراً لصاحب السؤال على هذا السؤال الرائع 1
Hamdi Edlbi-khalf قام بنشر أكتوبر 27, 2018 قام بنشر أكتوبر 27, 2018 السلام عليكم أستاذ @Shivan Rekany لقد قمت بعمل ما يشابه الكود الذي قمت به و لكن بطريقة أبسط عندما نرغب بجمع عامود بالكامل نحدده فقط شريطة أن يكون هذا العمود NUMERIC أما عندما نرغب بجمع بعض السجلات في العمود فإننا نحدد العمود ثم نحدد بعده السجلات التي نرغب بجمعها لتنفيذ الطريقة يجب إضافة مربعي نص غير منضمين غير مربعي العدد و المجموع الكود المستخدم Private Sub Form_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single) On Error Resume Next Forms![table1]![Text6] = Me.SelHeight Forms![table1]![Text13] = Me.SelTop If IsNumeric(Me.ActiveControl.Value) Then Forms![table1]![Text19] = Me.ActiveControl.Name Forms![table1]![Text15] = DSum(Forms![table1]![Text19], "table2", "[iD] between Forms![table1]![Text13] and Forms![table1]![Text6]+Forms![table1]![Text13]-1 ") ElseIf Forms![table1]![Text19] = "num1" Then Forms![table1]![Text15] = DSum("[num1]", "table2", "[iD] between Forms![table1]![Text13] and Forms![table1]![Text6]+Forms![table1]![Text13]-1 ") ElseIf Forms![table1]![Text19] = "Name2" Then Forms![table1]![Text15] = DSum("[Name2]", "table2", "[iD] between Forms![table1]![Text13] and Forms![table1]![Text6]+Forms![table1]![Text13]-1 ") End If End Sub حقل يعد و يجمع السجلات المحدة في نموذج فرعي2.accdb
Hamdi Edlbi-khalf قام بنشر أكتوبر 28, 2018 قام بنشر أكتوبر 28, 2018 أخي @Shivan Rekany لقد حاولت أن أجعل المجموع لكامل نطاق التحديد حيث يتم جمع الحقول المقابلة للأعمدة المحددة ثم يتم جمع النواتج بين السجلات . أحس أنني على الطريق الصحيح . و لكن لم أصل إلى الحل النهائي .
رمهان قام بنشر أكتوبر 29, 2018 قام بنشر أكتوبر 29, 2018 في ٢٧/١٠/٢٠١٨ at 16:36, رمهان said: الحل عن طريق ثلاث خصائص للنموذج seltop selheight selwidth حاول اخي عبدالله ان تقرا عنهم وتجرب وان شاء الله اعود لك بتطبيق في اقرب فرصة حسب وقتي تحياتي هذا تطبيق ومحاولة رمهانية متمنيا لكم التوفيق Private Sub Form_Current() Me.Parent!total = Me.ActiveControl End Sub Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) On Error Resume Next Set rs = Me.RecordsetClone: rs.MoveLast: rs.MoveFirst a = rs.GetRows(rs.RecordCount) If KeyCode = 16 Then For ii = 0 To Me.SelWidth - 1 For i = 0 To Me.SelHeight - 1 xsum = xsum + a(Me.SelLeft + ii - 2, Me.SelTop + i - 1) Next i Next ii End If Me.Parent!total = xsum End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) On Error Resume Next Set rs = Me.RecordsetClone: rs.MoveLast: rs.MoveFirst a = rs.GetRows(rs.RecordCount) For ii = 0 To Me.SelWidth - 1 For i = 0 To Me.SelHeight - 1 xsum = xsum + a(Me.SelLeft + ii - 2, Me.SelTop + i - 1) Next i Next ii Me.Parent!total = xsum End Sub قاعدة البيانات1.accdb 3 1
Hamdi Edlbi-khalf قام بنشر أكتوبر 29, 2018 قام بنشر أكتوبر 29, 2018 شكراً جزيلاً أستاذ @رمهان جزاك الله كل خير
رمهان قام بنشر أكتوبر 31, 2018 قام بنشر أكتوبر 31, 2018 في ٣٠/١٠/٢٠١٨ at 00:59, Khalf said: شكراً جزيلاً أستاذ @رمهان جزاك الله كل خير العفو استاذ خلف وتقبل تحياتي 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.