ahmedabuzena قام بنشر أغسطس 4 قام بنشر أغسطس 4 السلام عليكم ورحمة الله وبركاته برجاء مساعدتي في منع تكرار القيم عند الضغط على زر التقسيط للعميل لاني لو ضغط على الزر اكثر من مرة في كل مرة يقوم بتكرار نفس القيم مع كل ضغطة وبالتالي يتم اضافة اقساط وهمية غير مستحقة za-AKSAT-Pro-LAST- (1).rar
Hamtoooo قام بنشر أغسطس 4 قام بنشر أغسطس 4 مرحبا فيك الفكرة اللي استخدمها هو لما تكون سجلات الاقساط فارغه يتم تنزيل الاقساط بشكل عادي واذا كانت السجلات غير فارغه لا يتم اضافة اقساط اخرى مرفق لك الملف لتجربة العمل 111.rar
ahmedabuzena قام بنشر أغسطس 4 الكاتب قام بنشر أغسطس 4 2 ساعات مضت, Hamtoooo said: مرحبا فيك الفكرة اللي استخدمها هو لما تكون سجلات الاقساط فارغه يتم تنزيل الاقساط بشكل عادي واذا كانت السجلات غير فارغه لا يتم اضافة اقساط اخرى مرفق لك الملف لتجربة العمل 111.rar 53.66 kB · 5 downloads السلام عليكم شكرا لمجهودك لو امكن عايز استخدم NOT IN ولو ينفع اضيف زر لاضافة جميع الاقساط مرة واحدة ويكون بدون تكرار في كل مرة بالضغط على الزر يقوم باضافة الجديد فقط ولا يكرر الاقساط
Foksh قام بنشر أغسطس 4 قام بنشر أغسطس 4 جرب فكرتي أخي الكريم @ahmedabuzena ,, za-AKSAT-Pro-LAST- (1).accdb
ahmedabuzena قام بنشر أغسطس 4 الكاتب قام بنشر أغسطس 4 3 ساعات مضت, Foksh said: جرب فكرتي أخي الكريم @ahmedabuzena ,, za-AKSAT-Pro-LAST- (1).accdb 744 kB · 3 downloads اخي الكريم جزاكم الله خيرا انا نسخت الكود وفعلا لا يتم تكرار السجلات لكن في مشكلتين اولا اذا كان في اقساط تم السداد بالضغط على الزر يرجعها مثل الاول لم يتم السداد ثانيا بالضغط على الزر لا يعمل على كل الفواتير مرة واحدة يعني لو ادرجت 50 فاتورة يجب ان اذهب لكل فاتوره واضغط على الزر انا عايز اضغط على الزر يوزع كل الاقساط لكل الفواتير مرة واحدة وبدون تكرار لو تم الضغط اكثر من مرة الف شكر على اهتمامك ومساعدتى في انتظار الحل وجزاكم الله خيرا
ابو جودي قام بنشر أغسطس 4 قام بنشر أغسطس 4 منذ ساعه, ahmedabuzena said: اخي الكريم جزاكم الله خيرا انا نسخت الكود وفعلا لا يتم تكرار السجلات لكن في مشكلتين اولا اذا كان في اقساط تم السداد بالضغط على الزر يرجعها مثل الاول لم يتم السداد ثانيا بالضغط على الزر لا يعمل على كل الفواتير مرة واحدة يعني لو ادرجت 50 فاتورة يجب ان اذهب لكل فاتوره واضغط على الزر انا عايز اضغط على الزر يوزع كل الاقساط لكل الفواتير مرة واحدة وبدون تكرار لو تم الضغط اكثر من مرة الف شكر على اهتمامك ومساعدتى في انتظار الحل وجزاكم الله خيرا اتفضل Dim sql As DAO.Recordset Dim strAmount As String Dim Amount As Double Dim i As Integer Dim exists As Boolean Dim rsCheck As DAO.Recordset Set sql = CurrentDb.OpenRecordset("G2", dbOpenDynaset) Amount = Round(Forms![f1]![المبلغ] / Forms![f1]![NO], 2) strAmount = NoToTxt(Amount, "دينار", "فلس") ' Check if records already exist for the same invoice number For i = 0 To Forms![f1]![NO] - 1 exists = False Set rsCheck = CurrentDb.OpenRecordset("SELECT * FROM G2 WHERE [رقم] = " & Forms![f1]!X & " AND [التاريخ] = #" & Format(DateAdd("m", i, Forms![f1]![Date]), "yyyy/mm/dd") & "#", dbOpenDynaset) If Not rsCheck.EOF Then exists = True End If rsCheck.Close If Not exists Then With sql .AddNew ![رقم] = Forms![f1]!X ![التاريخ] = DateAdd("m", i, Forms![f1]![Date]) ![المبلغ] = Round(Forms![f1]![المبلغ] / Forms![f1]![NO], 2) ![المبلغ كتابه] = strAmount ![القسط] = "لم يتم الدفع" .Update End With End If Next i sql.Close Forms("f1").Requery
ahmedabuzena قام بنشر أغسطس 5 الكاتب قام بنشر أغسطس 5 10 ساعات مضت, ابو جودي said: اتفضل Dim sql As DAO.Recordset Dim strAmount As String Dim Amount As Double Dim i As Integer Dim exists As Boolean Dim rsCheck As DAO.Recordset Set sql = CurrentDb.OpenRecordset("G2", dbOpenDynaset) Amount = Round(Forms![f1]![المبلغ] / Forms![f1]![NO], 2) strAmount = NoToTxt(Amount, "دينار", "فلس") ' Check if records already exist for the same invoice number For i = 0 To Forms![f1]![NO] - 1 exists = False Set rsCheck = CurrentDb.OpenRecordset("SELECT * FROM G2 WHERE [رقم] = " & Forms![f1]!X & " AND [التاريخ] = #" & Format(DateAdd("m", i, Forms![f1]![Date]), "yyyy/mm/dd") & "#", dbOpenDynaset) If Not rsCheck.EOF Then exists = True End If rsCheck.Close If Not exists Then With sql .AddNew ![رقم] = Forms![f1]!X ![التاريخ] = DateAdd("m", i, Forms![f1]![Date]) ![المبلغ] = Round(Forms![f1]![المبلغ] / Forms![f1]![NO], 2) ![المبلغ كتابه] = strAmount ![القسط] = "لم يتم الدفع" .Update End With End If Next i sql.Close Forms("f1").Requery الف شكر بخصوص عدم التكرار اشتغل تمام بس عايز بالضغط على زر ابدأ اضافة الاقساط ان يتم الاضافة لجميع الفواتير مرة واحدة مش لازم اذهب لكل فاتورة واضغط على الاضافة جزاكم الله خيرا INSTALLMENT APPEND2.rar
ahmedabuzena قام بنشر أغسطس 5 الكاتب قام بنشر أغسطس 5 15 ساعات مضت, ahmedabuzena said: الف شكر بخصوص عدم التكرار اشتغل تمام بس عايز بالضغط على زر ابدأ اضافة الاقساط ان يتم الاضافة لجميع الفواتير مرة واحدة مش لازم اذهب لكل فاتورة واضغط على الاضافة جزاكم الله خيرا INSTALLMENT APPEND2.rar 430.69 kB · 1 download السلام عليكم لو كن غير جائز ما اطلبه ارجو إبلاغي وجزاكم الله خيرا
ابو جودي قام بنشر أغسطس 6 قام بنشر أغسطس 6 منذ ساعه, ahmedabuzena said: السلام عليكم لو كن غير جائز ما اطلبه ارجو إبلاغي وجزاكم الله خيرا وعليكم السلام جرب الكود التالى من فضلك قمت باضافة حلقة تكرارية لعمل لوب على كل السجلات Dim sql As DAO.Recordset Dim rsInvoice As DAO.Recordset Dim strAmount As String Dim Amount As Double Dim i As Integer Dim exists As Boolean Dim rsCheck As DAO.Recordset Dim strSQL As String Dim invoiceNumber As String Dim invoiceDate As Date Dim totalInstallments As Integer Dim currentInstallmentDate As Date ' فتح مجموعة السجلات للتعامل مع جدول الفواتير Set rsInvoice = CurrentDb.OpenRecordset("SELECT * FROM Faturas", dbOpenDynaset) ' فتح مجموعة السجلات للتعامل مع جدول الأقساط Set sql = CurrentDb.OpenRecordset("G2", dbOpenDynaset) ' التكرار على كل سجل فاتورة في جدول الفواتير Do Until rsInvoice.EOF invoiceNumber = rsInvoice![رقم] invoiceDate = rsInvoice![Date] totalInstallments = rsInvoice![NO] ' حساب المبلغ وتنسيقه Amount = Round(rsInvoice![المبلغ] / totalInstallments, 2) strAmount = NoToTxt(Amount, "دينار", "فلس") ' التكرار على كل قسط للفاتورة الحالية For i = 0 To totalInstallments - 1 exists = False currentInstallmentDate = DateAdd("m", i, invoiceDate) ' تحقق مما إذا كان السجل موجودًا بالفعل strSQL = "SELECT * FROM G2 WHERE [رقم] = '" & invoiceNumber & "' AND [التاريخ] = #" & Format(currentInstallmentDate, "yyyy/mm/dd") & "#" Set rsCheck = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) If Not rsCheck.EOF Then exists = True End If rsCheck.Close Set rsCheck = Nothing ' إذا لم يكن السجل موجودًا، قم بإضافة سجل جديد If Not exists Then With sql .AddNew ![رقم] = invoiceNumber ![التاريخ] = currentInstallmentDate ![المبلغ] = Amount ![المبلغ كتابه] = strAmount ![القسط] = "لم يتم الدفع" .Update End With End If Next i rsInvoice.MoveNext Loop ' إغلاق مجموعة السجلات وتحديث النموذج sql.Close Set sql = Nothing rsInvoice.Close Set rsInvoice = Nothing Forms("f1").Requery
ahmedabuzena قام بنشر أغسطس 6 الكاتب قام بنشر أغسطس 6 5 ساعات مضت, ابو جودي said: وعليكم السلام جرب الكود التالى من فضلك قمت باضافة حلقة تكرارية لعمل لوب على كل السجلات Dim sql As DAO.Recordset Dim rsInvoice As DAO.Recordset Dim strAmount As String Dim Amount As Double Dim i As Integer Dim exists As Boolean Dim rsCheck As DAO.Recordset Dim strSQL As String Dim invoiceNumber As String Dim invoiceDate As Date Dim totalInstallments As Integer Dim currentInstallmentDate As Date ' فتح مجموعة السجلات للتعامل مع جدول الفواتير Set rsInvoice = CurrentDb.OpenRecordset("SELECT * FROM Faturas", dbOpenDynaset) ' فتح مجموعة السجلات للتعامل مع جدول الأقساط Set sql = CurrentDb.OpenRecordset("G2", dbOpenDynaset) ' التكرار على كل سجل فاتورة في جدول الفواتير Do Until rsInvoice.EOF invoiceNumber = rsInvoice![رقم] invoiceDate = rsInvoice![Date] totalInstallments = rsInvoice![NO] ' حساب المبلغ وتنسيقه Amount = Round(rsInvoice![المبلغ] / totalInstallments, 2) strAmount = NoToTxt(Amount, "دينار", "فلس") ' التكرار على كل قسط للفاتورة الحالية For i = 0 To totalInstallments - 1 exists = False currentInstallmentDate = DateAdd("m", i, invoiceDate) ' تحقق مما إذا كان السجل موجودًا بالفعل strSQL = "SELECT * FROM G2 WHERE [رقم] = '" & invoiceNumber & "' AND [التاريخ] = #" & Format(currentInstallmentDate, "yyyy/mm/dd") & "#" Set rsCheck = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) If Not rsCheck.EOF Then exists = True End If rsCheck.Close Set rsCheck = Nothing ' إذا لم يكن السجل موجودًا، قم بإضافة سجل جديد If Not exists Then With sql .AddNew ![رقم] = invoiceNumber ![التاريخ] = currentInstallmentDate ![المبلغ] = Amount ![المبلغ كتابه] = strAmount ![القسط] = "لم يتم الدفع" .Update End With End If Next i rsInvoice.MoveNext Loop ' إغلاق مجموعة السجلات وتحديث النموذج sql.Close Set sql = Nothing rsInvoice.Close Set rsInvoice = Nothing Forms("f1").Requery اخى الكريم شكرا على مجهودك بعد التطبيق ظهر هذا الخطأ ما هو الحل INSTALLMENT APPEND4.rar
ahmedabuzena قام بنشر أغسطس 7 الكاتب قام بنشر أغسطس 7 20 ساعات مضت, ahmedabuzena said: اخى الكريم شكرا على مجهودك بعد التطبيق ظهر هذا الخطأ ما هو الحل INSTALLMENT APPEND4.rar 432.41 kB · 0 downloads السلام عليكم تقريبا المشكلة في faturas لو أنا صح غيرتها باسم الجدول لكن بردة نفس الغلط ارجو ايجاد الحل جزاكم الله خيرا
Foksh قام بنشر أغسطس 7 قام بنشر أغسطس 7 6 ساعات مضت, ahmedabuzena said: السلام عليكم تقريبا المشكلة في faturas لو أنا صح غيرتها باسم الجدول لكن بردة نفس الغلط ارجو ايجاد الحل جزاكم الله خيرا كمشاركة جانبية .. لا وجود للجدول او الاستعلام faturas
ahmedabuzena قام بنشر أغسطس 7 الكاتب قام بنشر أغسطس 7 منذ ساعه, Foksh said: كمشاركة جانبية .. لا وجود للجدول او الاستعلام faturas فعلا هو مفيش جدول باسم faturas المفروض G1 بس برده بعد ما غيرت الاسم اعطاني اخطاء صلحت كل واح باسم الحقل المفروض يكون صح وبردة مفيش فايدة يا ريت لو تقدر تلاقي المشكلة فين حابعت لحضرتك الملف بعد تعديل الاسماء الف شكر INSTALLMENT APPEND5.rar
ahmedabuzena قام بنشر أغسطس 7 الكاتب قام بنشر أغسطس 7 10 ساعات مضت, Foksh said: كمشاركة جانبية .. لا وجود للجدول او الاستعلام faturas انا غيرت كل اسماء الحقول في جدول G1 AND G2 علشان اللخبطه وتفادي تشابه الاسماء في الجدولين وحاولت امشي مع الكود لمعرفة السبب وبردة لم يعمل يا ريت لو تقدر تساعدنى في حل المشكلة INSTALLMENT APPEND6.rar
Foksh قام بنشر أغسطس 7 قام بنشر أغسطس 7 17 دقائق مضت, ahmedabuzena said: انا غيرت كل اسماء الحقول في جدول G1 AND G2 علشان اللخبطه وتفادي تشابه الاسماء في الجدولين وحاولت امشي مع الكود لمعرفة السبب وبردة لم يعمل يا ريت لو تقدر تساعدنى في حل المشكلة INSTALLMENT APPEND6.rar 432.64 kB · 0 downloads أعتذر عن التأخر بالرد ، ولكن لم أكن متواجداً عند الكمبيوتر يا صديقي ، إن كان في العمر بقية إن شاء الله حشوف الملف . 🤗 .
ahmedabuzena قام بنشر أغسطس 8 الكاتب قام بنشر أغسطس 8 (معدل) 14 ساعات مضت, Foksh said: أعتذر عن التأخر بالرد ، ولكن لم أكن متواجداً عند الكمبيوتر يا صديقي ، إن كان في العمر بقية إن شاء الله حشوف الملف . 🤗 . Private Sub أمر8_Click() Dim sql As DAO.Recordset Dim rsInvoice As DAO.Recordset Dim strAmount As String Dim Amount As Double Dim i As Integer Dim exists As Boolean Dim rsCheck As DAO.Recordset Dim strSQL As String Dim invoiceNumber As String Dim invoiceDate As Date Dim totalInstallments As Integer Dim currentInstallmentDate As Date ' فتح مجموعة السجلات للتعامل مع جدول الفواتير Set rsInvoice = CurrentDb.OpenRecordset("SELECT * FROM g1", dbOpenDynaset) ' فتح مجموعة السجلات للتعامل مع جدول الأقساط Set sql = CurrentDb.OpenRecordset("G2", dbOpenDynaset) ' التكرار على كل سجل فاتورة في جدول الفواتير Do Until rsInvoice.EOF invoiceNumber = rsInvoice![G1_NO] invoiceDate = rsInvoice![G1_DATE] totalInstallments = rsInvoice![G1_NO_PAYMENTS] ' حساب المبلغ وتنسيقه Amount = Round(rsInvoice![G1_AMOUNT] / totalInstallments, 2) strAmount = NoToTxt(Amount, "فلس", "دينار") 'التكرار على كل قسط للفاتورة الحالية For i = 0 To totalInstallments - 1 exists = False currentInstallmentDate = DateAdd("m", i, invoiceDate) ' تحقق مما إذا كان السجل موجودًا بالفعل strSQL = "SELECT * FROM G2 WHERE [G2_NO] = '" & invoiceNumber & "' AND [G1_DATE] = #" & Format(currentInstallmentDate, "yy/mmmm") & "#" Set rsCheck = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) If Not rsCheck.EOF Then exists = True End If rsCheck.Close Set rsCheck = Nothing ' إذا لم يكن السجل موجودًا، قم بإضافة سجل جديد If Not exists Then With sql .AddNew ![G2_NO] = invoiceNumber ![G2_DATE] = currentInstallmentDate ![G2_INSTALMENT_AMOUNT] = Amount ![G2_AMOUNT_WORDS] = strAmount ![G2_INSTALMENT_STATUS] = "لم يتم الدفع" .Update End With End If Next i rsInvoice.MoveNext Loop ' إغلاق مجموعة السجلات وتحديث النموذج sql.Close Set sql = Nothing rsInvoice.Close Set rsInvoice = Nothing Forms("f1").Requery End Sub السلا عليكم اخي الكريم كان الله في عونكم مرفق الكود المراد التعديل علية بعد تعدلي الاسماء وحابعت لحضرتك الجداول لعلك تقدر تكتشف الخطأ من خلال الموبايل وجزاكم الله خيرا الجدول الاول هو جدول الفواتير اسمه G1 الحقول G1_NO مفتاح اساسي مربوط مع G2_NO علاقة ONE TO MANY G1_NAME G1_DATE G1_AMOUNT G1_NO_PAYMENTS الجدول الثاني هو جدول توزيع الاقساط على عدد الاشهر لكل العملاء اسمه G2 الحقول G2_NO مفتاح اساسي G2_DATE G2_INSTALMENT_AMOUNT G2_AMOUNT_WORDS G2_INSTALMENT_STATUS تم تعديل أغسطس 8 بواسطه ahmedabuzena
أفضل إجابة Foksh قام بنشر أغسطس 8 أفضل إجابة قام بنشر أغسطس 8 (معدل) منذ ساعه, ahmedabuzena said: لسلا عليكم اخي الكريم كان الله في عونكم مرفق الكود المراد التعديل علية بعد تعدلي الاسماء وحابعت لحضرتك الجداول لعلك تقدر تكتشف الخطأ من خلال الموبايل وجزاكم الله خيرا وعليكم السلام ورحمة الله وبركاته ،، جرب هذا التعديل أخي ، وأخبرني بالنتيجة سريعاً .. Private Sub أمر8_Click() Dim sql As DAO.Recordset Dim rsInvoice As DAO.Recordset Dim strAmount As String Dim Amount As Double Dim i As Integer Dim exists As Boolean Dim rsCheck As DAO.Recordset Dim strSQL As String Dim invoiceNumber As Long Dim invoiceDate As Date Dim totalInstallments As Integer Dim currentInstallmentDate As Date Set rsInvoice = CurrentDb.OpenRecordset("SELECT * FROM g1", dbOpenDynaset) Set sql = CurrentDb.OpenRecordset("G2", dbOpenDynaset) Do Until rsInvoice.EOF invoiceNumber = rsInvoice![G1_NO] invoiceDate = rsInvoice![G1_DATE] totalInstallments = rsInvoice![G1_NO_PAYMENTS] Amount = Round(rsInvoice![G1_AMOUNT] / totalInstallments, 2) strAmount = NoToTxt(Amount, "فلس", "دينار") For i = 0 To totalInstallments - 1 exists = False currentInstallmentDate = DateAdd("m", i, invoiceDate) strSQL = "SELECT * FROM G2 WHERE [G2_NO] = " & invoiceNumber & " AND [G2_DATE] = #" & Format(currentInstallmentDate, "yyyy-mm-dd") & "#" Set rsCheck = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) If Not rsCheck.EOF Then exists = True End If rsCheck.close Set rsCheck = Nothing If Not exists Then With sql .AddNew ![G2_NO] = invoiceNumber ![G2_DATE] = currentInstallmentDate ![G2_INSTALMENT_AMOUNT] = Amount ![G2_AMOUNT_WORDS] = strAmount ![G2_INSTALMENT_STATUS] = "لم يتم الدفع" .Update End With End If Next i rsInvoice.MoveNext Loop sql.close Set sql = Nothing rsInvoice.close Set rsInvoice = Nothing End Sub تم تعديل أغسطس 8 بواسطه Foksh تم إزالة الرسالة في نهاية الكود لمنع التهنيج
ahmedabuzena قام بنشر أغسطس 8 الكاتب قام بنشر أغسطس 8 الف شكر اشتغل تمام شكرا لكل اللي ساعدني وبالأخص استاذ ابو جودي واستاذنا الفاضل FOKSH جزاكم الله خيرا 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.