اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

تغيير شرط الاستعلام حسب النموذج النشط


Abo Salman

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

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

على فرض ان عندنا نموذجين يحتويان على نفس العناصر واسمهما Frm1 و Frm2

فلو عندنا استعلام وفيه شرط اسف الحقل type
اريد ان تكون كالتالى : اذا كان النموذج المفعل ( او المفتوح حاليا ) frm1 يبقى الشرط [type]![frm1]![forms]

واذا كان النموذج المفعل ( المفتوح حاليا ) هو frm2 يصبح الشرط [type]![frm2]![forms]

وشكرا مقدما وكل عام وحضراتكم بخير

رابط هذا التعليق
شارك

1 ساعه مضت, ابوخليل said:

ضع المعيارين تحت بعض 

واحد في سطر : المعايير

والثاني في سطر : أو

او اكتب المعيارين في سطر واحد وافصل بينهما بالدالة OR

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

رابط هذا التعليق
شارك

بالنسبة لي أحب حل مثل هذه الأمور بعمل دالة عامة يتم استدعائها في المعيار ..

وهذه هي الدالة على حسب مثالك 🙂 :

Public Function Frm1_or_Frm2() As String

If CurrentProject.AllForms("frm1").IsLoaded = True Then
    Frm1_or_Frm2 = "[forms]![frm1]![type]"
ElseIf CurrentProject.AllForms("frm2").IsLoaded = True Then
    Frm1_or_Frm2 = "[forms]![frm2]![type]"
Else
    Frm1_or_Frm2 = ""
End If
End Function

بعد أن تضع الدالة في موديول .. تضع اسم الدالة في المعيار هكذا :

= Frm1_or_Frm2()

والدالة هي ستتولى عملية الفحص .. 🙂 

ملاحظة : لو كان النموذجين كلاما مغلق في نفس اللحظة يضع فراغ في المعيار ..

رابط هذا التعليق
شارك

وجرب الدالة بهذا الشكل لوضع المعامل Like إن شئت وإظهار جميع السجلات لو كان النموذجان مغلقان :

Public Function Frm1_or_Frm2() As String

If CurrentProject.AllForms("frm1").IsLoaded = True Then
    Frm1_or_Frm2 = "Like '*' & [forms]![frm1]![type] & '*'"
ElseIf CurrentProject.AllForms("frm2").IsLoaded = True Then
    Frm1_or_Frm2 = "Like '*' & [forms]![frm2]![type] & '*'"
Else
    Frm1_or_Frm2 = "Like '*'"
End If
End Function

وتكتب تحت المعيار  :

Frm1_or_Frm2()

 

  • Like 1
رابط هذا التعليق
شارك

10 ساعات مضت, Moosak said:

بالنسبة لي أحب حل مثل هذه الأمور بعمل دالة عامة يتم استدعائها في المعيار ..

وهذه هي الدالة على حسب مثالك 🙂 :

جزاك الله الف خير لقد اشتغل الكود الحمد لله لكن عملت فيه تعديل يظهر كالتالى لانه لم يعمل بدون التعديل فرجاء توضيح السبب لو تكرمت 🙂 

Public Function Frm1_or_Frm2() As String

If CurrentProject.AllForms("issue").IsLoaded = True Then
    Frm1_or_Frm2 = [Forms]![Issue]![QNo].Value
ElseIf CurrentProject.AllForms("quud").IsLoaded = True Then
    Frm1_or_Frm2 = [Forms]![Quud]![QNo].Value
ElseIf CurrentProject.AllForms("recepit").IsLoaded = True Then
    Frm1_or_Frm2 = [Forms]![Recepit]![QNo].Value

Else
    Frm1_or_Frm2 = ""
End If
End Function

اضفت . value

  • Like 1
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information