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

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

قام بنشر

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

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

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

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

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

قام بنشر

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

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

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

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

قام بنشر
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