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

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

قام بنشر

المطلوب عمل تصفية للفورم بإختيار العميل من الكومبو أو نوع البون أو تاريخ البون بين تاريخين وتصدير التصفية إلى تقرير بنفس المعايير

المطلوب تصفية بالكود وليس requery  للنموذج فى مصدر البيانات

جزاكم الله خيرا

10.accdb

قام بنشر

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

أخي الكريم ، قم بتعديل استعلام النموذج الى الاستعلام التالي :-

PARAMETERS [Forms]![Frm_Bons]![cmpagen] Long, [Forms]![Frm_Bons]![cmpkind] Text ( 255 ), [Forms]![Frm_Bons]![fromdate] DateTime, [Forms]![Frm_Bons]![todate] DateTime;
SELECT tbl_Bons.Bon_nu, tbl_Bons.BonDate, tbl_Bons.Bon_kind, tbl_Bons.agent_id, tbl_Bons.carNo, tbl_Bons.driver_nm, tbl_Bons.Prod_no, tbl_Bons.Qty, tbl_Bons.sale_price, tbl_Bons.Remark, [sale_price] * [Qty] AS txtall
FROM tbl_Bons
WHERE (tbl_Bons.agent_id=Forms!frm_Bons!cmpagen Or Forms!Frm_Bons!cmpagen Is Null) And (tbl_Bons.Bon_kind Like "*" & Forms!Frm_Bons!cmpkind & "*" Or Forms!Frm_Bons!cmpkind Is Null) And ((tbl_Bons.BonDate>=Forms!Frm_Bons!fromdate Or Forms!Frm_Bons!fromdate Is Null) And (tbl_Bons.BonDate<=Forms!Frm_Bons!todate Or Forms!Frm_Bons!todate Is Null));

 

وفي مربعات النص الخاصة بالتواريخ ( من - إلى ) و مربعي التحرير والسرد ( cmpagen و cmpkind ) اجعل لهم الحدث بعد التحديث = 

Me.Requery

 

أما بخصوص الزر CmdRemoveFilter لأزالة الفلترة ، فقد تم تعديله كالتالي :-

Private Sub CmdRemoveFilter_Click()
Me.FilterOn = False
    Me.cmpagen = Null
    Me.cmpkind = Null
    Me.fromdate = Null
    Me.todate = Null
    Me.Requery
End Sub

 

ملفك بعد التعديل :-

10.accdb

  • Like 1
  • Thanks 1
قام بنشر

شكرا جزيلا أخى الكريم 

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

ونزيد فى المعايير كود المنتج أيضا سواء بالاستعلام أو كود التصفية

جزاكم الله خيرا

10.accdb

قام بنشر
6 دقائق مضت, khyrabak said:

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

 

تريد الأسهل أم الأصعب لك ولعملك ؟؟

 

6 دقائق مضت, khyrabak said:

ونزيد فى المعايير كود المنتج أيضا سواء بالاستعلام أو كود التصفية

 

ممكن توضح أكثر ؟

  • تمت الإجابة
قام بنشر

استبدل الإستعلام السابق ، بالاستعلام التالي :-

PARAMETERS [Forms]![Frm_Bons]![cmpagen] Long, [Forms]![Frm_Bons]![cmpkind] Text ( 255 ), [Forms]![Frm_Bons]![fromdate] DateTime, [Forms]![Frm_Bons]![todate] DateTime, [Forms]![Frm_Bons]![cmb_prod] Text ( 255 );
SELECT tbl_Bons.Bon_nu, tbl_Bons.BonDate, tbl_Bons.Bon_kind, tbl_Bons.agent_id, tbl_Bons.carNo, tbl_Bons.driver_nm, tbl_Bons.Prod_no, tbl_Bons.Qty, tbl_Bons.sale_price, tbl_Bons.Remark, [sale_price] * [Qty] AS txtall
FROM tbl_Bons
WHERE (tbl_Bons.agent_id=Forms!frm_Bons!cmpagen Or Forms!Frm_Bons!cmpagen Is Null) And (tbl_Bons.Bon_kind Like "*" & Forms!Frm_Bons!cmpkind & "*" Or Forms!Frm_Bons!cmpkind Is Null) And ((tbl_Bons.BonDate>=Forms!Frm_Bons!fromdate Or Forms!Frm_Bons!fromdate Is Null) And (tbl_Bons.BonDate<=Forms!Frm_Bons!todate Or Forms!Frm_Bons!todate Is Null)) And (tbl_Bons.Prod_no Like "*" & Forms!Frm_Bons!cmb_prod & "*" Or Forms!Frm_Bons!cmb_prod Is Null);

تطبيق الفلترة على 4 مراحل كما تريد ، ومن رأيي الإستعلام أفضل لك للتعامل مع الفلترة المتعددة :rol: 

  • Like 1
قام بنشر
16 دقائق مضت, Foksh said:

تريد الأسهل أم الأصعب لك ولعملك ؟؟

أخى الكريم أريد التعلم الطريقتين طريقة الاستعلام وكود الفلترة 

طريقة الاستعلام ممتازة ولو تكرمت تشرحها لى هل حضرتك كتبتها كود SQl على طول أم تأخذ كل شرط بإحتماله مع الشروط الأخرى . أنا مش عارف سألت السؤال كدة صح ولا ايه

بمعنى لو تشرح لى كود sql الجزء بتاع PARAMETERS  

21 دقائق مضت, Foksh said:

ممكن توضح أكثر ؟

فى الملف المرفق وضعت كومبو أخر وهو المنتج يكون من ضمن شروط التصفية

جزاكم الله خيرااااا

  • Thanks 1
قام بنشر
5 دقائق مضت, khyrabak said:

أريد التعلم الطريقتين طريقة الاستعلام وكود الفلترة

انصحك بالبدء بفهم طبيعة تركيب وانشاء استعلام ، ثم توسع للذهاب الى الفلترة من خلال الـ VBA 😉 

 

5 دقائق مضت, khyrabak said:

هل حضرتك كتبتها كود SQl على طول أم تأخذ كل شرط بإحتماله مع الشروط الأخرى

قمت بانشاء الاستعلام في وضع التصميم أولاً وتعريف المعاملات من خلال الزر image.png.14163c41fd0c3f282934ccbdd40790bf.png ، ثم تضمن الشروط .

حيث قمت بإضافة الشروط كما في الصورة التالية مراعياً اظهار السجلات كاملة عند فتح النموذج :-

image.png.be69fe14ccb4da40ea1596f1edd49016.png

 

أما فيما يخص جزء PARAMETERS ( أو ما يعرف بالمعاملات ) وشرحها ، فهي كالآتي بشرح مختصر بسيط :-

يتم توجيه الحديث مباشرة أنه يا آكسيس هناك بعض القيم سيتم إدخالها من النموذج ( Frm_Bons ) ، فقم بحفظها مؤقتاً لاستخدامها في الفلترة التي سيتم تطبيقها .

وتم تطبيق جزء الشروط ( WHERE ) ، كما رأيت سابقاً مع استخدام الدالة Like لعدم التقيد بقيمة محددة كاملة ، بل يمكنك كتابة جزء من القيمة النصية المطلوب البحث عنها والفلترة ، بمعنى أصح وإن جاز التعبير هو نظام يشبه محركات البحث المعتادة مثل جوجل .

 

يعني باختصار ، الاستعلام يعمل عمل فلتر الماء على مراحل

يمرر البيانات عبر مرشح العميل أولاً ، ثم مرشح نوع البون ، ثم مرشح التاريخ ، ثم مرشح المنتج .

 

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

 

هذا والله أعلم طبعاً 😇 

قام بنشر

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

 

انصحك بقراءة هذه المواضيع:

.

.

.

.

 

اما بالنسبة الى برنامجك ، فتفضل التصفية بالاستعلام (اما التصفية في النموذج ، فرجاء قراءة اول موضوع اعطيتك رابطه اعلاه).
1630.jpg.a9c818562569865ab68285d0e7ae35ec.jpg

1630.10.accdb

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