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

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

قام بنشر

السلام عليكم

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

معيار الاستعلام

هل يمكن تخزينه فى جدول و نستدعيه بدالة dlookup

لا أقصد قيمة المعيار

بل أقصد صيغة المعيار

مثلا:

لو كان المعيار : 

>7

أو

يشتمل على محددات مثل

>  <  or and <>

هل يمكن تخزين صيغة المعيار كاملة فى حقل بجدول و استدعاؤها بدالة البحث

أو حتى تخزينها فى مربع تحرير و سرد

 

أفيدونا فى هذا الموضوع أفادكم الله

 

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

طبعا ده على حسب المثال اللى انا عملته وحضرتك تقدر تغير براحتك يعنى انت ممكن تغير المعيار بتاع دالة  dlookup

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

العفو استاذى العزيز 
بعد رب العزة سبحانه وتعالى لك على الكثير من الفضل فى بداية مشوارى التعليمى 
ولم ولن انسى فضلك انت وكل اساتذتى الكرام 

احبكم فى الله ولله عزوجل :wub::fff::fff:

  • Like 1
قام بنشر
16 minutes ago, ابا جودى said:

والله كنت أجهزة قبل أن تسأل أستاذى العزيز
اتفضل جاااااااهز لعيونك  :fff::fff:

استاذ عبد الفتاح.rar

اللى راح يظهر فى الاستعلام لازم يكون =  true   من الجدول :rol: تمام

Good idea ,wonderful 👍

قام بنشر

الآن استطعنا تخزين نص المعيار فى جدول

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

 

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

فى تصفية بيانات فى استعلامات أخرى

مثلا فى هذا الاستعلام فى المرفق

أردت تصفية البيانات فى حقل الجمع لتكون أكبر من 200

فكيف يمكن استخدام المعيار فى الجدول ليتم الحساب؟

كما بالصورة

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

myparam.PNG.9497d835cd6f3a97bd4da0d75b407a6f.PNG

وشكرا لمساعدتك

المرفق بصيغة 2003 و  2007 لمن يريد المساعدة

مرفق.rar

قام بنشر

هذا سريعا وبعدين نسولف استاذ عبدالفتاح

SELECT t1.exmid, t1.exmtotal
FROM t1
WHERE (((Eval([exmtotal] & DLookUp("[my_parameter]","tbl_parameters","[select_Parameter] =true") & 200))=True));

بالتوفيق

  • Like 2
قام بنشر

الحمد لله

مليون إعجاب أستاذ رمهان 

نجاح مبهر

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

 

فصار

أكبر من 200

أنت أنشأت حقلا يقيم ما إذا كانت القيمة أكبر من 200

هذا الحقل يعطى صواب و خطأ

و جعلت المعيار له صواب

=====

بينما أنا كنت أركز طريقة الحل على وضع المعيار فى الحقل 

[exmtotal]

و مرة أخرى تقدم لنا Eval  خدمة عظيمة

وفقكم الله

الآن نستطيع وضع معاييرنا كلها فى جدول و الإشارة إليها

 

  • Like 1
قام بنشر (معدل)
5 دقائق مضت, عبد الفتاح كيرة said:

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

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

وها انت ماشاء الله وبيقول المثل الحر تكفيه الاشاره 

بالتوفيق

تم تعديل بواسطه رمهان
  • Like 1
قام بنشر
52 دقائق مضت, عبد الفتاح كيرة said:

و هذا يعمل مباشرة تحت حقل الجمع

بدون حاجة لحقل إضافى


Eval([exmtotal] & DLookUp("[my_parameter]";"tbl_parameters";"[select_Parameter] =true"))=صواب

ممتاز جدا هذه النتيجة

 

ممكن مرفق مطبق به

10 دقائق مضت, عبد الفتاح كيرة said:

عند محاولة التعويض عن اسم الحقل ينتج خطأ


Eval(DLookUp("[fieldn]";"tbl_parameters";"[select_Parameter] =true") & DLookUp("[my_parameter]";"tbl_parameters";"[select_Parameter] =true"))

 

ممكن المرفق ؟ 

قام بنشر

عن طريق الكود مشت معانا 

عن طريق تصمبم الاستعلام حشوف كيف

جرب

Sub gg()
xsql = "select * from t1 where " & DLookup("[fieldn] & [my_parameter]", "tbl_parameters", "[select_Parameter] =true")
CurrentDb.QueryDefs("qq1").SQL = xsql
DoCmd.OpenQuery "qq1"
End Sub

تحياتي

28 دقائق مضت, عبد الفتاح كيرة said:

و هذا المطبق به المعيار تحت اسم الحقل مباشرة بدون حقل إضافى

kemas1.rar

متاكد ياباشا ؟؟؟؟

قام بنشر

ممتاز جدا

كونها تعمل فى الكود 

معناه أننا على الطريق الصحيح

لكن

ما السر وراء عدم عمل الجملة مع الاستعلام

جزاك الله خيرا أخ رمهات ووفقك للمزيد

أعتقد أن هذا الموضوع لا شبيه له بالمنتدى

 

قام بنشر
10 دقائق مضت, عبد الفتاح كيرة said:

ما السر وراء عدم عمل الجملة مع الاستعلام

جزاك الله خيرا أخ رمهات ووفقك للمزيد

أعتقد أن هذا الموضوع لا شبيه له بالمنتدى

 

باذن الله اشوف الموضوع واعتقد هو كيفية استخدام ال eval  بشكل اصح

والشكر موصول لك استاذ عبدالفتاح

تحياتي

  • Like 1
قام بنشر

هذه هى الجملة الصحيحة

لاستخدام الشرط تحت الحقل مباشرة

وفيها يذكر اسم الحقل مباشرة

SELECT t1.exmid, t1.exmtotal
FROM t1
WHERE ((Eval([exmtotal] & DLookUp("[my_parameter]","tbl_parameters","[select_Parameter] =true"))=True));

 

  • Like 1
قام بنشر
16 دقائق مضت, عبد الفتاح كيرة said:

هذه هى الجملة الصحيحة

لاستخدام الشرط تحت الحقل مباشرة

وفيها يذكر اسم الحقل مباشرة


SELECT t1.exmid, t1.exmtotal
FROM t1
WHERE ((Eval([exmtotal] & DLookUp("[my_parameter]","tbl_parameters","[select_Parameter] =true"))=True));

 

بالضبط

لان الاستعلام في التصميم بيعمل اعتقد construct  للحقول اولا وقبل كل شي 

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

واعتقد هو هذا كان السؤال وهو جلب المعايير 

وبالتوفيق 

  • Like 1
قام بنشر
4 دقائق مضت, عبد الفتاح كيرة said:

إذن نكتفي بهذا الإنجاز

وهو فى حد ذاته كبير

إما

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

أو نجلب الجميع باستخدام الكود

أيهما ترشح؟

 

لو كانت زابطه اصلا في التصميم فانا حستخدم الكود استاذ عبدالفتاح لانه حتما هناك متغيرات ومعايير اخرى مثل حسب اليوزر

واصدقك القول ان اغلب البرامج التي اعملها تكون الاستعلامات في الكود مايسمى onfly  .

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

تحياتي

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.

×
×
  • اضف...

Important Information