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

فتح تقرير بشرط وجود بيانات او عدم وجودها


alloui79
إذهب إلى أفضل إجابة Solved by ابوبسمله,

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

4 ساعات مضت, حسام نصير said:

للتواصل واتس 

01121119958

هذا مخالف 

 

يمكن ان تستخدم داله if 

مثل

   If IsNull(المعيار) Then
   الحالة الاولى
   Else
   الحالة الثانيه
   End If

 

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

هل من حل 

عندما لا يكون فيه ايه بيانات يفتح التقرير (1) فارغ 
 وإذا كانت هناك بيانات فيتم نقلي الى التقرير رقم ( 2 )

الملف مرفق 

Database10.accdb

تم تعديل بواسطه alloui79
رابط هذا التعليق
شارك

  • أفضل إجابة

ظننت انه تم الاجابه فعليا فدخلت لاطلع على الاجابه لاستزيد من العلم

فوجدت بان السائل قد اختار افضل اجابه ع السؤال نفسه

فنوضح له بارك الله فيه بان افضل اجابه توضع لمن اجابك او لنفسك اذا كنت وصلت للاجابه بنفسك ووضعتها لاخوانك لتعم الفائده

وعلى العموم تفضل هذه محاولتى لفهم المطلوب

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

If Nz(DLookup("mtRole", "listecont", "code='" & Forms!Chrche_Filter!code & "'"), 0) <> 0 Then

    DoCmd.OpenReport "data", acViewPreview, , x
Else
    DoCmd.OpenReport "nodata", acViewPreview, , x
End If

 

بالتوفيق

Database10_1.accdb

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

3 ساعات مضت, احمد الفلاحجي said:

ظننت انه تم الاجابه فعليا فدخلت لاطلع على الاجابه لاستزيد من العلم

فوجدت بان السائل قد اختار افضل اجابه ع السؤال نفسه

فنوضح له بارك الله فيه بان افضل اجابه توضع لمن اجابك او لنفسك اذا كنت وصلت للاجابه بنفسك ووضعتها لاخوانك لتعم الفائده

وعلى العموم تفضل هذه محاولتى لفهم المطلوب

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

If Nz(DLookup("mtRole", "listecont", "code='" & Forms!Chrche_Filter!code & "'"), 0) <> 0 Then

    DoCmd.OpenReport "data", acViewPreview, , x
Else
    DoCmd.OpenReport "nodata", acViewPreview, , x
End If

 

بالتوفيق

Database10_1.accdb 492 kB · 1 download

لنفترض انه فيه ثلاثة شروط

اذا لم يكن هناك بيانات يفتح التقرير 1 واذا كان فيه بيانات و اقل من 17 بيان ينتقل الى التقرير 2 واذا كان اكثر من 17 بيان ينتقل الى التقرير 3

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

3 ساعات مضت, alloui79 said:

لنفترض انه فيه ثلاثة شروط

اذا لم يكن هناك بيانات يفتح التقرير 1 واذا كان فيه بيانات و اقل من 17 بيان ينتقل الى التقرير 2 واذا كان اكثر من 17 بيان ينتقل الى التقرير 3

ممكن تجرب هذا 

Private Sub Commande24_Click()
Dim varcode As String
Dim vars As String
Dim ContRec As Integer
ContRec = DCount("code", "listecont", "[code]='" & Me.code & "'")
Debug.Print "ContRec >> " & ContRec


If Me.code.Value <> "" Then
varcode = "'" & Me.code.Value & "'"


If x <> "" Then
x = x & " and "
End If

x = x & "code = " & varcode & " "
End If

'If Nz(DLookup("mtRole", "listecont", "code='" & Forms!Chrche_Filter!code & "'"), 0) <> 0 Then
'
'    DoCmd.OpenReport "data", acViewPreview, , x
'Else
'    DoCmd.OpenReport "nodata", acViewPreview, , x
'End If

If ContRec <= 0 Then
 DoCmd.OpenReport "nodata", acViewPreview, , x
ElseIf ContRec >= 1 And ContRec <= 17 Then
 DoCmd.OpenReport "data", acViewPreview, , x
ElseIf ContRec >= 18 And ContRec <= 999999999 Then
 DoCmd.OpenReport "data", acViewPreview, , x
End If

End Sub

 

طبعا لا تنسي ان تعدل فى اسماء التقارير 

حسب ما تريد 

 

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

مشكور استاذ عمر وضاحي نجحت الفكر تسلم اخي

للاسف بعد ماتاكدة جيدا اتضح بعد التجربة ان لم ينجع مع التقرير 1 الفارغ ولم يظهر ارجو التحقق من الكود 

  15 ساعات مضت, alloui79 said:

لنفترض انه فيه ثلاثة شروط

اذا لم يكن هناك بيانات يفتح التقرير 1 واذا كان فيه بيانات و اقل من 17 بيان ينتقل الى التقرير 2 واذا كان اكثر من 17 بيان ينتقل الى التقرير 3

ممكن تجرب هذا 

Private Sub Commande24_Click()
Dim varcode As String
Dim vars As String
Dim ContRec As Integer
ContRec = DCount("code", "listecont", "[code]='" & Me.code & "'")
Debug.Print "ContRec >> " & ContRec


If Me.code.Value <> "" Then
varcode = "'" & Me.code.Value & "'"


If x <> "" Then
x = x & " and "
End If

x = x & "code = " & varcode & " "
End If

'If Nz(DLookup("mtRole", "listecont", "code='" & Forms!Chrche_Filter!code & "'"), 0) <> 0 Then
'
'    DoCmd.OpenReport "data", acViewPreview, , x
'Else
'    DoCmd.OpenReport "nodata", acViewPreview, , x
'End If

If ContRec <= 0 Then
 DoCmd.OpenReport "nodata", acViewPreview, , x
ElseIf ContRec >= 1 And ContRec <= 17 Then
 DoCmd.OpenReport "data", acViewPreview, , x
ElseIf ContRec >= 18 And ContRec <= 999999999 Then
 DoCmd.OpenReport "data", acViewPreview, , x
End If

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

26 دقائق مضت, alloui79 said:

مشكور استاذ عمر وضاحي نجحت الفكر تسلم اخي

للاسف بعد ماتاكدة جيدا اتضح بعد التجربة ان لم ينجع مع التقرير 1 الفارغ ولم يظهر ارجو التحقق من الكود 

  15 ساعات مضت, alloui79 said:

لنفترض انه فيه ثلاثة شروط

اذا لم يكن هناك بيانات يفتح التقرير 1 واذا كان فيه بيانات و اقل من 17 بيان ينتقل الى التقرير 2 واذا كان اكثر من 17 بيان ينتقل الى التقرير 3

ممكن تجرب هذا 

Private Sub Commande24_Click()
Dim varcode As String
Dim vars As String
Dim ContRec As Integer
ContRec = DCount("code", "listecont", "[code]='" & Me.code & "'")
Debug.Print "ContRec >> " & ContRec


If Me.code.Value <> "" Then
varcode = "'" & Me.code.Value & "'"


If x <> "" Then
x = x & " and "
End If

x = x & "code = " & varcode & " "
End If

'If Nz(DLookup("mtRole", "listecont", "code='" & Forms!Chrche_Filter!code & "'"), 0) <> 0 Then
'
'    DoCmd.OpenReport "data", acViewPreview, , x
'Else
'    DoCmd.OpenReport "nodata", acViewPreview, , x
'End If

If ContRec <= 0 Then
 DoCmd.OpenReport "nodata", acViewPreview, , x
ElseIf ContRec >= 1 And ContRec <= 17 Then
 DoCmd.OpenReport "data", acViewPreview, , x
ElseIf ContRec >= 18 And ContRec <= 999999999 Then
 DoCmd.OpenReport "data", acViewPreview, , x
End If

End Sub

ايه المعيار ال حضرتك تريده 

هل هو عدد السجلات 

ام اجمالى الدين للعميل ؟

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

اتفضل هذا التعديل

Private Sub Commande24_Click()
Dim varcode As String
Dim vars As String
Dim ContRec As Integer
Dim DlookupRec As String
DlookupRec = Nz(DLookup("mtRole", "listecont", "code='" & Forms!Chrche_Filter!code & "'"), 0)
ContRec = DCount("code", "listecont", "[code]='" & Me.code & "'")
Debug.Print "ContRec >> " & ContRec
Debug.Print "DlookupRec >> " & DlookupRec

If Me.code.Value <> "" Then
varcode = "'" & Me.code.Value & "'"


If x <> "" Then
x = x & " and "
End If

x = x & "code = " & varcode & " "
End If

'If Nz(DLookup("mtRole", "listecont", "code='" & Forms!Chrche_Filter!code & "'"), 0) <> 0 Then
'
'    DoCmd.OpenReport "data", acViewPreview, , x
'Else
'    DoCmd.OpenReport "nodata", acViewPreview, , x
'End If

If (ContRec <> 0) And (DlookupRec = 0) Then
 DoCmd.OpenReport "nodata", acViewPreview, , x
ElseIf (ContRec >= 1 And ContRec <= 3) And (DlookupRec <> 0) Then
 DoCmd.OpenReport "data_01_3", acViewPreview, , x
ElseIf (ContRec >= 4 And ContRec <= 9999) And (DlookupRec <> 0) Then
 DoCmd.OpenReport "data_4_9999", acViewPreview, , x
End If

End Sub

 

ايضا المرفق

 

Database10_1.rar

تم وضع معيارين معا 

واتمنى ان اكون قد وضحت الفكره لك 

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

واذا كان هناك شئ غير مفهوم تفضل وسوف اشرحه لك او يشرحه لك اى شخص هنا 

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

للاسف بعد ماتاكدة جيدا اتضح بعد التجربة ان لم ينجع مع التقرير 1 الفارغ ولم يظهر ارجو التحقق من الكود 

  15 ساعات مضت, alloui79 said:

لنفترض انه فيه ثلاثة شروط

اذا لم يكن هناك بيانات يفتح التقرير 1 واذا كان فيه بيانات و اقل من 17 بيان ينتقل الى التقرير 2 واذا كان اكثر من 17 بيان ينتقل الى التقرير 3

ممكن تجرب هذا 

Private Sub Commande24_Click()
Dim varcode As String
Dim vars As String
Dim ContRec As Integer
ContRec = DCount("code", "listecont", "[code]='" & Me.code & "'")
Debug.Print "ContRec >> " & ContRec


If Me.code.Value <> "" Then
varcode = "'" & Me.code.Value & "'"


If x <> "" Then
x = x & " and "
End If

x = x & "code = " & varcode & " "
End If

'If Nz(DLookup("mtRole", "listecont", "code='" & Forms!Chrche_Filter!code & "'"), 0) <> 0 Then
'
'    DoCmd.OpenReport "data", acViewPreview, , x
'Else
'    DoCmd.OpenReport "nodata", acViewPreview, , x
'End If

If ContRec <= 0 Then
 DoCmd.OpenReport "nodata", acViewPreview, , x
ElseIf ContRec >= 1 And ContRec <= 17 Then
 DoCmd.OpenReport "data", acViewPreview, , x
ElseIf ContRec >= 18 And ContRec <= 999999999 Then
 DoCmd.OpenReport "data", acViewPreview, , x
End If

End Sub

شكرا لك اخ عمر ضاحي فلا هذه المرة اشتغل معايا 

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

 

7 ساعات مضت, alloui79 said:

للاسف بعد ماتاكدة جيدا اتضح بعد التجربة ان لم ينجع مع التقرير 1 الفارغ ولم يظهر ارجو التحقق من الكود 

  15 ساعات مضت, alloui79 said:

لنفترض انه فيه ثلاثة شروط

اذا لم يكن هناك بيانات يفتح التقرير 1 واذا كان فيه بيانات و اقل من 17 بيان ينتقل الى التقرير 2 واذا كان اكثر من 17 بيان ينتقل الى التقرير 3

ممكن تجرب هذا 

Private Sub Commande24_Click()
Dim varcode As String
Dim vars As String
Dim ContRec As Integer
ContRec = DCount("code", "listecont", "[code]='" & Me.code & "'")
Debug.Print "ContRec >> " & ContRec


If Me.code.Value <> "" Then
varcode = "'" & Me.code.Value & "'"


If x <> "" Then
x = x & " and "
End If

x = x & "code = " & varcode & " "
End If

'If Nz(DLookup("mtRole", "listecont", "code='" & Forms!Chrche_Filter!code & "'"), 0) <> 0 Then
'
'    DoCmd.OpenReport "data", acViewPreview, , x
'Else
'    DoCmd.OpenReport "nodata", acViewPreview, , x
'End If

If ContRec <= 0 Then
 DoCmd.OpenReport "nodata", acViewPreview, , x
ElseIf ContRec >= 1 And ContRec <= 17 Then
 DoCmd.OpenReport "data", acViewPreview, , x
ElseIf ContRec >= 18 And ContRec <= 999999999 Then
 DoCmd.OpenReport "data", acViewPreview, , x
End If

End Sub

شكرا لك اخ عمر ضاحي فلا هذه المرة اشتغل معايا 

هل جربت هذا الحل ؟

11 ساعات مضت, عمر ضاحى said:

اتفضل هذا التعديل

Private Sub Commande24_Click()
Dim varcode As String
Dim vars As String
Dim ContRec As Integer
Dim DlookupRec As String
DlookupRec = Nz(DLookup("mtRole", "listecont", "code='" & Forms!Chrche_Filter!code & "'"), 0)
ContRec = DCount("code", "listecont", "[code]='" & Me.code & "'")
Debug.Print "ContRec >> " & ContRec
Debug.Print "DlookupRec >> " & DlookupRec

If Me.code.Value <> "" Then
varcode = "'" & Me.code.Value & "'"


If x <> "" Then
x = x & " and "
End If

x = x & "code = " & varcode & " "
End If

'If Nz(DLookup("mtRole", "listecont", "code='" & Forms!Chrche_Filter!code & "'"), 0) <> 0 Then
'
'    DoCmd.OpenReport "data", acViewPreview, , x
'Else
'    DoCmd.OpenReport "nodata", acViewPreview, , x
'End If

If (ContRec <> 0) And (DlookupRec = 0) Then
 DoCmd.OpenReport "nodata", acViewPreview, , x
ElseIf (ContRec >= 1 And ContRec <= 3) And (DlookupRec <> 0) Then
 DoCmd.OpenReport "data_01_3", acViewPreview, , x
ElseIf (ContRec >= 4 And ContRec <= 9999) And (DlookupRec <> 0) Then
 DoCmd.OpenReport "data_4_9999", acViewPreview, , x
End If

End Sub

 

ايضا المرفق

 

Database10_1.rar 45.84 kB · 1 download

تم وضع معيارين معا 

واتمنى ان اكون قد وضحت الفكره لك 

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

واذا كان هناك شئ غير مفهوم تفضل وسوف اشرحه لك او يشرحه لك اى شخص هنا 

 

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

2 ساعات مضت, احمد الفلاحجي said:

احسنت اخى @عمر ضاحى وجزاك الله خيرا عالمتابعه 🌹

بالتوفيق

 

 

بارك الله فيك استاذي

هذا كله بفضل تعليم اساتذتى فى المنتدي 

بارك الله فيهم وحفظهم من كل سوء 

وما ارانا الله فيهم شر وبارك الله لهم فى عافيتهم ومالهم وعلمهم 

 

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

وفيك بارك الله وانا اخوك ولست باستاذ

جزاهم الله عنا كل خير

والسؤال للاخ السائل كيفيه معرفه من ليس له ديون حتى يتم تنفيذ الشرط الاساسى لك والباقى فقد قدمه لك اخى @عمر ضاحى

في 23‏/4‏/2022 at 23:42, alloui79 said:

التقرير الفارغ يعني ان ليس له ديون ةيظهر فيه عبارة لا شيئ

لان فى حلى الاول فهو ليس بحل ولكن وضعته كمحاوله للوصول للمطلوب

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

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

بالتوفيق

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

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.

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

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

Important Information