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

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

قام بنشر

أرجوا من أخواني الافاضل المساعدة في التالي:

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

الصور للتوضيح

 

03.png.8d80363b26bd34795e70963ec632937b.png

 

وهذه صورة الكود تحت زر الحذف X

05.png.bc1fa1232c1333b9f0e61e92ba2eb233.png

 

والمطلوب: أجبار الحذف بعد تنفيذ الاستعلام

مرفق الملف:

InvoiceSale_8.rar

 

قام بنشر

شكرا أخي @kanory على سرعة ردك ومرورك الكريم

 

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

كما أن الطريقة ليسة صحية في ترتيب اجرآءات الكود

 

فأرجوا منك أخي الكريم كما تطرقت بالطلب سابقاً التالي:

44 دقائق مضت, qathi said:

والمطلوب: أجبار الحذف بعد تنفيذ الاستعلام

وليس قبل تنفيذ الاستعلام

قام بنشر (معدل)
DoCmd.RunSQL "DELETE data.*, InvoiceTT.InvoiceNum, InvoiceTT.ItemId, InvoiceTT.Movement " & vbCrLf & _
"FROM InvoiceTT " & vbCrLf & _
"WHERE (((InvoiceTT.InvoiceNum)=[forms]![InvoiceHT_F]![InvoiceHT_SubF].[Form]![InvoiceNum]) AND ((InvoiceTT.ItemId)=[forms]![InvoiceHT_F]![InvoiceHT_SubF].[Form]![ItemId]) AND ((InvoiceTT.Movement)=[forms]![InvoiceHT_F]![InvoiceHT_SubF].[Form]![Movement]));"
DoCmd.Requery

جرب هذا

 

 

InvoiceSale_8.accdb

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

أخي @kanory شكرا لك على محاولتك ..

لكن هذه الطريقة تسبب بطء وظهور واختفاء بشكل وميض للسجل قبل حذفة .. في الملف الاصلي

فهل يتم تجنب ركوري 

وعمل كود أفضل يتم الحذف بشكل سريع

قام بنشر
3 ساعات مضت, qathi said:

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

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

فقد جعلت مصدر السجلات 3 جداول وعند تنفيذ أمر الحذف لن يتعرف الكود على السجل المراد وحذفة ومن أي جدول

image.png.5cdb67e8c75255402405c48dfe2af72f.png

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

image.png.250e168ad8a630488d29854723febe27.png

ولجلب البيانات المتعلقة بالصنف استخدم الطريقة التالية أو استخدم دالة Dlookup

image.png.384494892381a46f8b87d81f03b961a0.png

وستلاحظ ان كود الحذف يعمل بدون أي تعديلات

أما إذا كنت تريد نفس طريقتك في مصدر السجلات للنموذج

فالحل الذي وضعه لك الاستاذ @kanory باستخدم دالة Requery أو الكود الذي وضعه لك الاستاذ @ابو ياسين المشولي

حسب تصوري هو الحل المتاح

::بالتوفيق::

InvoiceSale_906.rar

  • Like 1
قام بنشر

أشكركم أخواني @ابو ياسين المشولي و @kaser906  و@ابو عارف .. على مروركم الطيب وعلى بذلك الجهد لحل الاشكال

بالنسبة لاخي كاسر المشكلة ليس في

15 ساعات مضت, kaser906 said:

فقد جعلت مصدر السجلات 3 جداول وعند تنفيذ أمر الحذف لن يتعرف الكود على السجل المراد وحذفة ومن أي جدول

 

والديل انضر للموضوع السابق هنا

وهذا الملف

InvoiceSale_2 (2).rar

==========================

 

قام بنشر
37 دقائق مضت, qathi said:

والديل انضر للموضوع السابق

جميل أذا اخبرنا الان لمى توقف الكود بعد وضعك للاستعلام  ؟

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

اخي kaser906

اظن والله اعلم اني بعرف ماهو قصد الاخ qathi

هو اصلا عامل استعلام التحديث واما بالنسبه بالكود فهو لازم يكون الحذف قبل التحديث

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

المفروض يعمل +

لكنه لم ينتبه لها

القاضي2.jpg

القاضي3.jpg

InvoiceSale_9.accdb

تم تعديل بواسطه ابو ياسين المشولي
قام بنشر
2 دقائق مضت, ابو ياسين المشولي said:

وهذا خطا منه في الاستعلام لاحظ الصور

كنت اريد ان نصل خطوه خطوه الى هذا الأمر

فلو بحث في المنتدى وأغلب المنتديات لوجد ان برامج المخازن والبيع والشراء لا تقوم بتخزين الكمية المتاحة والمنصرفة في الجداول

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

وهنا سيستغني عن استعلام التحديث للكمية المتاحة  الذي وضعه بعد كل عملية في النموذج

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

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

فهذه الطريقة تستخدم لعرض السجلات دون التعامل معها

::بالتوفيق::

 

  • Like 1
قام بنشر

اخي الكريم بعد الاطلاع البرنامج المرفق

لاحظت وجود اخطاء برجمية كثيرة أي ان البناء غير صحيح

 

دعنا نبدء بتنظيم البرنامج حتى يعمل بالصورة البرمجية الصحيحة 

 

كما انه توجد عناصر تحكم انت لست بحاجة اليها كما هو موضح في الصورة كذلك العمليات الحسابية التي ضمن الكود تستطيع الاستغناء غنها 

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

عنصر3.jpg

اخي الكريم يجب دمع الجدولين InvoiceHT و InvoiceTT

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

  • Like 1
قام بنشر
2 ساعات مضت, kaser906 said:

جميل أذا اخبرنا الان لمى توقف الكود بعد وضعك للاستعلام  ؟

:biggrin: :rol:

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

واذا كان نوع مبيع لا يتم

فما الحل ؟؟

==============================

بالنسبة أخواني  @kaser906 و @د.كاف يار

أذا كان البناء الجداول والعمليات التي تتم .. غير صحيح ..

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

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

قام بنشر

اخي الكريم 

مع الابقاء على نفس الجداول ينبغي عليك توريد كميات الاصناف في جددول InvoiceTT تحت بند "شراء" تم اضافتها

مع كل عملية اضافة / حذف للاصناف سيتم تحديث المخزون تلقائيا

مرفق التعديل

InvoiceSale_8.accdb

  • Like 1
قام بنشر (معدل)
في ١٩‏/٨‏/٢٠١٩ at 23:34, qathi said:

أرجوا من أخواني الافاضل المساعدة في التالي:

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

الصور للتوضيح

 

03.png.8d80363b26bd34795e70963ec632937b.png

 

وهذه صورة الكود تحت زر الحذف X

05.png.bc1fa1232c1333b9f0e61e92ba2eb233.png

 

 

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

والسبب هو كود تجاوز الاخطاء وهو On Error Resume Next

وهذا خطاء من اخونا القاضي ونحن لم نتبه له

''On Error Resume Next
On Error GoTo Err_Delete_Click
If IsNull([ItemID]) Then
MsgBox "لا يـوجـد صـنـف لـحـذفـة", vbInformation, "تنبيـــــة تحقق "
ElseIf IsNull([QuantityS]) Or [QuantityS] = Null Or [QuantityS] = "" Or [QuantityS] = 0 Then
DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings True
Else
If Not IsNull([ItemID]) Then
If MsgBox("      هـــل تـــريـــد حـذف الصـنـف ( " & ([ItemName]) & " ) ؟ " & vbCrLf & "       " & vbCrLf & "                               انت على وشك الحذف " & vbCrLf & "                       لا يمكنك التراجع اذا ضغطت نعم ", vbYesNo, "تأكــــــــــــيـد الحذف") = vbYes Then
Me.balance2 = Nz(Me.QuantityA) + Nz(Me.QuantityS)
Me.qd = Nz(Me.ItemID)
DoCmd.SetWarnings False
DoCmd.OpenQuery "BackItemsSale_Q"
Dim objAcc As Access.Application
Set objAcc = GetObject(CurrentDb().Name)
objAcc.DoCmd.OpenTable "InvoiceTT", acViewNormal
objAcc.DoCmd.GoToRecord acDataTable, "InvoiceTT", acGoTo, 1
objAcc.DoCmd.RunCommand acCmdSelectRecord
objAcc.DoCmd.RunCommand acCmdDeleteRecord ' هنا المشكلة الكود لا يقوم بحذف السجل
DoCmd.Close acTable, "InvoiceTT", acSaveYes
Set objAcc = Nothing
DoCmd.Requery
Exit_Delete_Click:
Exit Sub
Err_Delete_Click:
MsgBox Err.Description
Resume Exit_Delete_Click
DoCmd.SetWarnings True
    End If
    End If
    End If
    Me.Refresh
    SysCmd acSysCmdClearStatus

 

InvoiceSale_82.accdb

تم تعديل بواسطه ابو ياسين المشولي
قام بنشر

أشكركم أخواني اعجز عن الشكر لكم  @ابو ياسين المشولي و @kaser906  و@ابو عارف  و @د.كاف يار ..  لما تبذلوه من جهد في حل الاشكال..

وسبب عدم ردي أخواني الافاضل هو عدم الوصول للنتيجة المطلوبة ..

 

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