الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تغيير ال Where Clause بناء على قيم موجودة في ال Text Boxes

بدأه sni في 21 ديسمبر 2009 · 2 رد · 396 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

احتاج لفكرة لطباعة تقرير مبني على query تعتمد على قيم مأخوذة من ال form

لم ابدأ بعد لأني اعتقد ان الطريقة التي ساتبعها غير جيدة و متعبة.

المشكلة:

- قاعدة البيانات عبارة عن جدول مشتركين مكون من 4 اعمدة [name,join_date,address,age]

- هناك نموذج للبحث عن طريق اي من الاعمدة

select * from accounts
where name like '*name*'

or

select * from accounts
where name like '*name*' 
and location = 'location'

or

select * from accounts
where name like '*name*' 
and location = 'location'
and age = 20

or

select * from accounts
where location = 'location

''

وهكذا. أي انها شبيهة بال combination

ما فكرت بعمله هو عمل query لكل حالة وهذا سيتطلب عمل report لكل query ، ثم بناء على ما تم ادخاله في ال form استدعي ال report المناسب.

لكن هذه الطريقة مكلفة فأحتاج ل 12 query و report لتمثيل كل نوع بحث :ohmy:

السؤال:

كيف يمكن ان استخدم query واحدة فقد واغير ال Where Clause الخاص بها وبذلك اقلص الاستعلامات الى واحدة فقط.

او ان عرضت نتيجة البحث في datasheet هل يمكن استخدام ال datasheet ك record source في ال report?

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

وشكرا

#2

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

توجد يا أخي أكثر من طريقة لتحقيق المطلوب، لكن أكثرها مباشرة واختصاراً وبساطة هي استخدام معاملات الطريقة OpenReport في الكائن DoCmd...

post-70171-12613606943559_thumb.jpg

لاحظ انك ستستخدم استعلاماً واحداً فقط كمصدر للتقرير، ثم ستختلف شروط الاستعلام حسبما تمرره في المعامل الموضح أعلاه عند فتح التقرير. مثال:

DoCmd.OpenReport "repAccounts", acViewPreview, , "name like '*" & Me.strName & "*' and location = '" & Me.location & "' and age = " & Me.age

حيث strName, location, age هي أسماء عناصر في النموذج...

والله أعلم

#3
أحمد مبارك الحيقي كتب:

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

توجد يا أخي أكثر من طريقة لتحقيق المطلوب، لكن أكثرها مباشرة واختصاراً وبساطة هي استخدام معاملات الطريقة OpenReport في الكائن DoCmd...

post-70171-12613606943559_thumb.jpg

لاحظ انك ستستخدم استعلاماً واحداً فقط كمصدر للتقرير، ثم ستختلف شروط الاستعلام حسبما تمرره في المعامل الموضح أعلاه عند فتح التقرير. مثال:

DoCmd.OpenReport "repAccounts", acViewPreview, , "name like '*" & Me.strName & "*' and location = '" & Me.location & "' and age = " & Me.age

حيث strName, location, age هي أسماء عناصر في النموذج...

والله أعلم

شكرا جزيلا اخي احمد هذا ما احتاجه.

سطر واحد يغني عن مئة سطر :)

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

وشكرا مرة اخرى

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…