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

عد سجلات في جدول بناء على شرط بجدول أخر


kaser906

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

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

بالمرفق اريد كود  عند النقر على زر الأمر في النموذج  frm_3 يعد السجلات بالجدول  Tbl_Month والتي يكون فيها حقل exchange اكبر من صفر

وحقل Monthly = حقل Monthly في النموذج frm_3

وحقل Yaree= حقل Yaree في النموذج frm_3

والشرط من الجدول Tbl_Month_exchange

أن لايحتوي على نفس قيمة Monthly وحقل Yaree في النموذج frm_3

,والنتيجة اذا كان عدد السجلات اكبر من 0

تظهر رسالة

اكمل السجلات في جدول Tbl_Month_exchange

 

 

 

countmy.rar

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

31 دقائق مضت, jjafferr said:

وعليكم السلام:smile:

 

هاي الله يسلمك ، حزوره :smile:

 

اعطنا مثال او اثنين من برنامجك بالبيانات ، وان شاء الله المسألة تصير اسهل لنا:smile:

 

جعفر

ان شاء الله تكون الصورة هذي توضح المطلوب

Tl4.png

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

تفضل:smile:

 

في هذا الاستعلام  ، اذا الحقلين Monthly و Yaree كانوا متساوين في الجدولين ، سنحصل على سجلات ، واذا لا ، فلن نحصل على سجلات ،

592.Clipboard01.jpg.f8dc4644a17b984f4f04c10ea4b11e6f.jpg

 

وبالزر اليمين في الاستعلام ، طلبنا رؤية الاستعلام بطريقة SQL ،

فعملت نسخه منه ووضعته في الكود:

Private Sub أمر2_Click()
On Error GoTo err_Report
'If DCount("[coodkind]", "Tbl_Month", "[exchange]>0  And [Yaree] = Forms![frm_3]![Yaree] and Monthly = Forms![frm_3]![Monthly]") > 0 Then
'msg " اكمل السجلات بالجدول "


    Dim rst As DAO.Recordset
    
    mySQL = "SELECT Tbl_Month.exchange, Tbl_Month.Monthly, Tbl_Month.Yaree"
    mySQL = mySQL & " FROM Tbl_Month_exchange INNER JOIN Tbl_Month ON (Tbl_Month_exchange.Yaree = Tbl_Month.Yaree) AND (Tbl_Month_exchange.Monthly = Tbl_Month.Monthly)"
    mySQL = mySQL & " WHERE (((Tbl_Month.Monthly)=" & Forms!frm_3!Monthly & ") And ((Tbl_Month.Yaree)=" & Forms!frm_3!Yaree & "))"
    
    Set rst = CurrentDb.OpenRecordset(mySQL)
    rst.MoveLast: rst.MoveFirst
    RC = rst.RecordCount
    MsgBox "Exchange field value is " & rst!Exchange
    
Exit_Report:
    
    rst.Close: Set rst = Nothing
    
Exit Sub
err_Report:

    If Err.Number = 3021 Then
        MsgBox "لا يوجد تشابه بين الجدولين"
        Resume Exit_Report
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If
    
End Sub

 

جعفر

592.countmy.accdb.zip

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

منذ ساعه, jjafferr said:

في هذا الاستعلام  ، اذا الحقلين Monthly و Yaree كانوا متساوين في الجدولين ، سنحصل على سجلات ، واذا لا ، فلن نحصل على سجلات ،

الله يعطيك العافية استاذي

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

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

19 دقائق مضت, jjafferr said:

بدل هذا السطر
MsgBox "Exchange field value is " & rst!Exchange

استعمل
if rst!Exchange >0 then
	MsgBox "Exchange field value is Greater than Zero"
else
	msgbox "Not Greater than Zero"
endif

 

عندما وضعت الكود في برنامجي ظهر عندي هذا الخطأ عندما وجد شرط ينطبق

اي هناك سجل في في الجدول   Tbl_month وكان قيمة القل exchange اكبر من صفر ولم يجد سجل في الجدول  Tbl_Month_exchange

Tl8.png

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

كل اللي اقدر اقوله: الله يسامحك ، نسخت جزء من الكود ، وجزء تركته:blink:

 

شوف رقم الخطأ اللي ظهر لك: 3021 ، وشوف الكود حقي كيف يصطاد هذا الرقم

    If Err.Number = 3021 Then
        MsgBox "لا يوجد تشابه بين الجدولين"
        Resume Exit_Report
    Else

 

جعفر

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

استاذي الصورة اللي وضعتها فقط للخطأ 

هذا هو الكود اللي وضعته بالكامل ويطلع الخطأ

 

    Dim rst As DAO.Recordset
    
    mySQL = "SELECT Tbl_Month.exchange, Tbl_Month.Monthly, Tbl_Month.Yaree"
    mySQL = mySQL & " FROM Tbl_Month_exchange INNER JOIN Tbl_Month ON (Tbl_Month_exchange.Yaree = Tbl_Month.Yaree) AND (Tbl_Month_exchange.Monthly = Tbl_Month.Monthly)"
    mySQL = mySQL & " WHERE (((Tbl_Month.Monthly)=" & Forms!frm_3!Monthly & ") And ((Tbl_Month.Yaree)=" & Forms!frm_3!Yaree & "))"
    
    Set rst = CurrentDb.OpenRecordset(mySQL)
    rst.MoveLast: rst.MoveFirst
    RC = rst.RecordCount
If rst!exchange > 0 Then
    MsgBox "Exchange field value is Greater than Zero"
Else
    MsgBox "Not Greater than Zero"
End If
Exit_Report:
    
    rst.Close: Set rst = Nothing
    
Exit Sub
err_Report:

    If Err.Number = 3021 Then
        MsgBox "لا يوجد تشابه بين الجدولين"
        Resume Exit_Report
    Else
        MsgBox Err.Number & vbCrLf & Err.Description
    End If

 

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

7 دقائق مضت, jjafferr said:

On Error GoTo err_Report

   هذا الكود لم يكن موجود :wallbash:

بعد اضافته اصبح الامر تمام:wavetowel::dance1:

شكرا لك اخوي ابو موسى

ربي يبلغك في موسى وحسين

بس لا تنسى تعزمني

  • 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