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

كيف الدمج بين iif و like في الاستعلام

بدأه ماجدجلال في 12 نوفمبر 2011 · 6 رد · 1,115 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اخواني الاعزاء

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

في الملف المرفق ملف اكسيس مربع التحرير و السرد يحتوي علي الاحرف الابجدية وكلمة " الكل " مصدر مربع التحرير و السرد هو استعلام يفترض بالاستعلام ان يقوم بعرض الاسماء التي تبدا بالحرف الذي تم تحديدة في مربع التحرير و السرد . ولكنة لايعمل , وعند اختيار كلمة الكل من المفترض ان يعرض كل الاسماء ,

المطلوب تصحيح الخطاء الموجود في الاستعلام ؟

ارجو المساعدة ولكم خالص الشكر و التقدير وجزاكم الله كل خير ,,,,

like.rar

#2

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

من الأفضل استخدام جملة الشرط في حدث بعد التحديث لمربع التحرير والسرد, مع عمل استعلام يعيد لك جميع القيم في حالة اختيار "الكل", أو يظهر لك الاستعلام المعياري في حالة اختيار حرف غير "الكل"

فيكون الكود في حدث بعد التحديث لمربع التحرير والسرد المسمى "بوكس" كما يلي:

Private Sub box_AfterUpdate()
If Me.box = "Çáßá" Then
 DoCmd.OpenQuery "Q2"
Else
 DoCmd.OpenQuery "Query1"
End If
End Sub

طبعاً الأحرف الغريبة التي تظهر في الكود عبارة عن كلمة "الكل".

انظر المرفق بعد التعديل

ComboBoxAddAll1.rar

#3

شكرا لك اخي الفاضل

ولكن هل يمكن القول انة من الصعب جعل الاستعلامين استعلام واحد فقط ,,,

و ادخال الدالة iif مع الشرط like

طبعا هذا مجرد سؤال حتي اعرف و اتعلم

واكرر شكرا لك الله يعطيك عافية وبارك فيك ,

#4

اخي الفاضل

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

في مثل هذه الحالات يتم استخدام استعلام توحيد لإظهار كل السجلات عند اختيار ( الكل ) او اظهار سجل واحد في حال اختيار احد الأسماء

اما طريقة استخدام IIF في الإستعلام فلا اعتقد انها مجديه والسبب لو انه يوجد لديك سجلات كثيرة جدا فإن الدالة IIF ستأخذ وقتا طويلا لعرض النتائج بينما لو استخدما فقط معيار مربع التحرير والسرد الموجود في النموذج ووضعناه في الإستعلام للأسم فإن هذا اسرع بكثير في عرض النتائج لأن الدالة IIF قبل ان تعرض النتائج يجب ان تتأكد من كل اسم تقوم بالمرور عليه اما الحالة الثانية فهي تعتبر كعملية فلتره في المعيار فقط ولا تأخذ وقت .

انظر الى ملفك بعد التعديل وقم بالتجربه

za-ComboBoxAddAll.rar

بالتوفيق

#5

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

شكرا لك استاذة زهرة

ولكن قائمة التحرير والسرد تغيرت كليا . حيث اصبحت تحتوي علي نفس الاسماء الموجودة في الجدول بينما المطلوب انها تحتوي فقط علي الاحروف الابجدية و عند اختيار حرف يقوم الاستعلام بالتصفية واظهار فقط الاسماء التي تبدا بذلك الحرف فقط ,

شكرا جزيل لك مرة اخري

سؤال بسيط : كيف يمكنني ان ارشح الاجابة التي ارها تناسبي سؤالي ؟

لانني لم اجد الزر المخصص لذلك ,,,,

#6
ماجدجلال كتب:

شكرا لك اخي الفاضل

ولكن هل يمكن القول انة من الصعب جعل الاستعلامين استعلام واحد فقط ,,,

و ادخال الدالة iif مع الشرط like

طبعا هذا مجرد سؤال حتي اعرف و اتعلم

واكرر شكرا لك الله يعطيك عافية وبارك فيك ,

يمكنك الاستغناء عن الاستعلامات إن أردت ذلك, فقط قم بتغيير الكود السابق إلى الكود التالي:

Private Sub box_AfterUpdate()
Dim strSQL As String
If Me.box = "Çáßá" Then
 strSQL = "SELECT Table1.id, Table1.EName" & _
 " FROM Table1;"
 DoCmd.OpenForm "frm1"
 Forms!frm1.RecordSource = strSQL
Else
 strSQL = "SELECT Table1.id, Table1.EName " & _
 "FROM Table1 " & _
 "WHERE (((Table1.EName) Like  [forms]![form]![box] & ""*"" ));"
 DoCmd.OpenForm "frm1"
 Forms!frm1.RecordSource = strSQL
End If
End Sub

وهذا تعديل للمرفق السابق

ماجدجلال كتب:

سؤال بسيط : كيف يمكنني ان ارشح الاجابة التي ارها تناسبي سؤالي ؟

لانني لم اجد الزر المخصص لذلك ,,,,

بعد إذن أستاذتي زهرة

لا يوجد زر مخصص لترشيح الإجابات, وإنما يتم ترشيح الإجابات بالتصريح عن الإجابة التي تناسبك في ردك على الإجابة أو الإجابات المتعددة. كأن تكتب رداً تقول فيه: "شكراً لكل من ساعدني, وأرشح إجابة الأخ/الأخت فلانـ /ة "

ComboBoxAddAll2.rar

#7

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

شكرا لك استاذ غرام العقول

هذا هو المطلوب

شكرا جزيلا لك

وانا ارشح الرد رقم 6 هو المناسب لي

شكرا جزيلا

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