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

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

قام بنشر

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

ماذا ينقص هذا الكود

اريد تصحيحه او ما يماثله

ولكم جزيل الشكر

 DoCmd.RunSQL ("UPDATE [Hrakatsanf] SET [Hrakatsanf].[Alkmiah]=[Alkmiah]-[forms]![frm_Recall_sales]![SubSales]![Alkmiah].[value]" _
& " WHERE ((([Hrakatsanf].Rajmsanf)=[forms]![frm_Recall_sales]![SubSales]![Rajmsanf]));" _
& " WHERE ((([Hrakatsanf].Rjmfatwra)=[forms]![frm_Recall_sales]![frm_mr]![Rjmfatwra]));")

قام بنشر

حاولت بهذا ولم افلح

 DoCmd.RunSQL "UPDATE [Hrakatsanf] SET [Hrakatsanf].[Alkmiah]=[Alkmiah]-[forms]![frm_Recall_sales]![SubSales]![Alkmiah].[value]" _
& " WHERE ((([Hrakatsanf].Rjmfatwra)=[forms]![frm_Recall_sales]![frm_mr]![Rjmfatwra]));" _
 

قام بنشر

وعليكم السلام اخوي ابو ياسين:smile:

 

لا تعمل جملة SQL في الكود ، اعمل العكس ،

اعمل الاستعلام اللي تريده ، ثم حوله الى SQL ، ثم اخذه الى الكود واعمل التعديل.

 

ادخل الكود عن طريق Ctrl + G (ولا تدخله بطريقة اخرى) ، والذي سيعطيك شاشة الكود ، بالاضافة الى شاشة صغيرة في الاسفل ، والتي سنأخذ منها SQL لتجربيته في الاستعلام.

ولما تأخذ SQL الاستعلام الى الكود ، فككه الى اسطر ، واربط كل سطر مع اللي قبله (لاحظ الكود التالي) ،

واهم شيء تعمله هو ان تكتب جملة debug.print mySQL بعد نهاية عمل جملة الـ SQL وقبل ان تنفذ الامر docmd.runsql ،

هذا الامر سوف يعطيك في اسفل شاشة الكود ، سيعطيك جملة الـ SQL بعد اضافة القيم فيها ،

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

واذا اعطاك خطأ ، فإصلح الاستعلام ، ثم اخذ SQL الى الكود للمقارنه ، وهكذا ....

 

هذه طريقة كتابة الكود (مثلا) :


mySQL = "UPDATE [Hrakatsanf]"
mySQL = mySQL & " SET [Alkmiah]=[Alkmiah]-" & [Forms]![frm_Recall_sales]![SubSales]![Alkmiah]
mySQL = mySQL & " WHERE Rajmsanf='" & [Forms]![frm_Recall_sales]![SubSales]![Rajmsanf] & "'"
mySQL = mySQL & " And Rjmfatwra='" & [Forms]![frm_Recall_sales]![frm_mr]![Rjmfatwra] & "'"
Debug.Print mySQL

DoCmd.RunSQL mySQL

.

جعفر

  • Like 2
قام بنشر
الان, jjafferr said:

وعليكم السلام اخوي ابو ياسين:smile:

 

لا تعمل جملة SQL في الكود ، اعمل العكس ،

اعمل الاستعلام اللي تريده ، ثم حوله الى SQL ، ثم اخذه الى الكود واعمل التعديل.

 

ادخل الكود عن طريق Ctrl + G (ولا تدخله بطريقة اخرى) ، والذي سيعطيك شاشة الكود ، بالاضافة الى شاشة صغيرة في الاسفل ، والتي سنأخذ منها SQL لتجربيته في الاستعلام.

ولما تأخذ SQL الاستعلام الى الكود ، فككه الى اسطر ، واربط كل سطر مع اللي قبله (لاحظ الكود التالي) ،

واهم شيء تعمله هو ان تكتب جملة debug.print mySQL بعد نهاية عمل جملة الـ SQL وقبل ان تنفذ الامر docmd.runsql ،

هذا الامر سوف يعطيك في اسفل شاشة الكود ، سيعطيك جملة الـ SQL بعد اضافة القيم فيها ،

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

واذا اعطاك خطأ ، فإصلح الاستعلام ، ثم اخذ SQL الى الكود للمقارنه ، وهكذا ....

 

هذه طريقة كتابة الكود (مثلا) :



mySQL = "UPDATE [Hrakatsanf]"
mySQL = mySQL & " SET [Alkmiah]=[Alkmiah]-" & [Forms]![frm_Recall_sales]![SubSales]![Alkmiah]
mySQL = mySQL & " WHERE Rajmsanf='" & [Forms]![frm_Recall_sales]![SubSales]![Rajmsanf] & "'"
mySQL = mySQL & " And Rjmfatwra='" & [Forms]![frm_Recall_sales]![frm_mr]![Rjmfatwra] & "'"
Debug.Print mySQL

DoCmd.RunSQL mySQL

.

جعفر

اخي جعفر انا عملت الاستعلام وهذا هو

UPDATE Hrakatsanf SET Hrakatsanf.Alkmiah = Nz(DLookUp("Alkmiah","Hrakatsanf","[Rjmfatwra]='" & [Rjmfatwra] & "'" & "and" & "[Rajmsanf]=" & "'" & [Rajmsanf] & "'"),0)-[forms]![frm_Recall_sales]![SubSales].[form]![Alkmiah]
WHERE (((Hrakatsanf.Rjmfatwra)=[forms]![frm_Recall_sales]![frm_mr].[form]![Rjmfatwra]) AND ((Hrakatsanf.Rajmsanf)=[forms]![frm_Recall_sales]![SubSales].[form]![Rajmsanf]));
 

مشكلتي الان شرط if

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

  • Like 1
قام بنشر
الان, jjafferr said:

في الاستعلام لا تستطيع استعمال if وانما تستطيع استعمال iff 

ادخل في تصميم الاستعلام ، ثم اضفها

ليس في الاستعلام اخي جعفر

هذا هو الكود

If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub
If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rajmsanf] & "'") Then
DoCmd.Beep
        MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & "  ", , "تـنـبـيـه"

Me.Undo
Exit Sub
End If
هو الان ينطبق بالشرط على رقم الصنف

انا اريده يطبق الشرط برقم الصنف ورقم الفاتورة

  • Like 1
قام بنشر

 

يجب عليك كسر الكود الى متغيرات اصغر ، حتى تستطيع فهم الكود لما تضعه مع بعض ، هكذا مثلا (معلومات المتغير B انا كتبتها من رأسي ، فيحتاج لها تعديل ، وتعديلها في if كذلك) :


A = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rajmsanf] & "'")
B = DLookup("[Rjmfatwra]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rjmfatwra] & "'")

If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub

    If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > A _
        And [Forms]![frm_Recall_sales]![SubSales].[Form]![Rjmfatwra] > B Then

        DoCmd.Beep
        MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & "  ", , "تـنـبـيـه"

        Me.Undo

        Exit Sub
    End If

 

 

  • Like 1
قام بنشر
37 دقائق مضت, jjafferr said:

 

يجب عليك كسر الكود الى متغيرات اصغر ، حتى تستطيع فهم الكود لما تضعه مع بعض ، هكذا مثلا (معلومات المتغير B انا كتبتها من رأسي ، فيحتاج لها تعديل ، وتعديلها في if كذلك) :



A = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rajmsanf] & "'")
B = DLookup("[Rjmfatwra]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rjmfatwra] & "'")

If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub

    If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > A _
        And [Forms]![frm_Recall_sales]![SubSales].[Form]![Rjmfatwra] > B Then

        DoCmd.Beep
        MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & "  ", , "تـنـبـيـه"

        Me.Undo

        Exit Sub
    End If

 

 

بارك الله فيك اخي جعفر

لم يضبط معي بحال معه

اذا لم يضبط

بكلمك

اكرر شكري لك

قام بنشر (معدل)

اخي الغالي جعفر

لم تضبط معي

هذا هو بعد التعديل

 

A = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rajmsanf] & "'")
B = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rjmfatwra]='" & [Forms]![frm_Recall_sales]![frm_mr].[Form]![Rjmfatwra] & "'")

If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub

    If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > A _
        And [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > B Then

        DoCmd.Beep
        MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & "  ", , "تـنـبـيـه"

        Me.Undo

        Exit Sub
    End If


 

تم تعديل بواسطه ابو ياسين المشولي
  • Like 1
قام بنشر (معدل)

الاخ jjafferr

اخي جعفر

بصراحه حاولت بكل الطرق

ما عرفت كيف اسوي

هل لديك طريقه تنصحني بها وجزاك الله خير

هذا المرفق لو تكرمت شوفه

احتساب الكميه 2.rar

تم تعديل بواسطه ابو ياسين المشولي
قام بنشر

النموذج اسمه

frm_Recall_sales

ومكان الحدث هو

Private Sub أمر16_Exit(Cancel As Integer)

عند الخروج من الحفظ

ربي يوفقك

الان, jjafferr said:

طيب في نموذج ، واسماء الحقول ، وكيف اصل الى المكان/الحدث؟

لنموذج اسمه

frm_Recall_sales

ومكان الحدث هو

Private Sub أمر16_Exit(Cancel As Integer)

عند الخروج من الحفظ

ربي يوفقك

قام بنشر

الاخ جعفر jjafferr

هذا نفس الكود اللذي عدلت عليه

ويعطي نفس النتيجه

شوف المرفق

 

A = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rajmsanf] & "'") B = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rjmfatwra]='" & [Forms]![frm_Recall_sales]![frm_mr].[Form]![Rjmfatwra] & "'") If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > A _ And [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > B Then DoCmd.Beep MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & " ", , "تـنـبـيـه" Me.Undo Exit Sub End If

احتساب-الكميه-2.rar

قام بنشر
5 ساعات مضت, ابو ياسين المشولي said:

الاخ جعفر jjafferr

هذا نفس الكود اللذي عدلت عليه

ويعطي نفس النتيجه

شوف المرفق

 

A = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![Rajmsanf] & "'") B = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rjmfatwra]='" & [Forms]![frm_Recall_sales]![frm_mr].[Form]![Rjmfatwra] & "'") If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > A _ And [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > B Then DoCmd.Beep MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & " ", , "تـنـبـيـه" Me.Undo Exit Sub End If

احتساب-الكميه-2.rar

بشر اخي جعفر

هل بيضبط والا اشوف طريقه اخرى

قام بنشر

ابو ياسين

 

انت تريد الكمية Alkmiah من الجدول Hrakatsanf بشرط رقم الفاتورة Rjmfatwra و رقم الصنف ID_Sanf يكونان الموجودان في النموذج الفرعي SubSales وهذا السجل هو السجل الموجود عليه التركيز

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

  • Like 1
قام بنشر
17 دقائق مضت, jjafferr said:

ابو ياسين

 

انت تريد الكمية Alkmiah من الجدول Hrakatsanf بشرط رقم الفاتورة Rjmfatwra و رقم الصنف ID_Sanf يكونان الموجودان في النموذج الفرعي SubSales وهذا السجل هو السجل الموجود عليه التركيز

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

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

  • Like 1
قام بنشر

جرب هذا


A = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![ID_Sanf] & "' And [Rjmfatwra]='" & [Forms]![frm_Recall_sales]![frm_mr].[Form]![Rjmfatwra] & "'")


If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub

    If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > A Then

        DoCmd.Beep
        MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & "  ", , "تـنـبـيـه"

        Me.Undo

        Exit Sub
    End If

 

قام بنشر
7 دقائق مضت, jjafferr said:

جرب هذا



A = DLookup("[Alkmiah]", "[Hrakatsanf]", "[Rajmsanf]='" & [Forms]![frm_Recall_sales]![SubSales].[Form]![ID_Sanf] & "' And [Rjmfatwra]='" & [Forms]![frm_Recall_sales]![frm_mr].[Form]![Rjmfatwra] & "'")


If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah].Value = 0 Then Exit Sub

    If [Forms]![frm_Recall_sales]![SubSales].[Form]![Alkmiah] > A Then

        DoCmd.Beep
        MsgBox " كـمـيـة الـمـرتـجـع اكـبـر مــن كـمـيـةالـبـيـع" & "  ", , "تـنـبـيـه"

        Me.Undo

        Exit Sub
    End If

 

للاسف هذا لا يقوم بالشرط

الشرط هو انه يكون مطابق لرقم الفاتورة

هذا ياخذ اول فاتوره فقط

 

  • Like 1
قام بنشر
في ٢٦‏/١٢‏/٢٠١٧ at 22:56, jjafferr said:

وعليكم السلام اخوي ابو ياسين:smile:

 

لا تعمل جملة SQL في الكود ، اعمل العكس ،

اعمل الاستعلام اللي تريده ، ثم حوله الى SQL ، ثم اخذه الى الكود واعمل التعديل.

 

ادخل الكود عن طريق Ctrl + G (ولا تدخله بطريقة اخرى) ، والذي سيعطيك شاشة الكود ، بالاضافة الى شاشة صغيرة في الاسفل ، والتي سنأخذ منها SQL لتجربيته في الاستعلام.

ولما تأخذ SQL الاستعلام الى الكود ، فككه الى اسطر ، واربط كل سطر مع اللي قبله (لاحظ الكود التالي) ،

واهم شيء تعمله هو ان تكتب جملة debug.print mySQL بعد نهاية عمل جملة الـ SQL وقبل ان تنفذ الامر docmd.runsql ،

هذا الامر سوف يعطيك في اسفل شاشة الكود ، سيعطيك جملة الـ SQL بعد اضافة القيم فيها ،

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

واذا اعطاك خطأ ، فإصلح الاستعلام ، ثم اخذ SQL الى الكود للمقارنه ، وهكذا ....

 

هذه طريقة كتابة الكود (مثلا) :



mySQL = "UPDATE [Hrakatsanf]"
mySQL = mySQL & " SET [Alkmiah]=[Alkmiah]-" & [Forms]![frm_Recall_sales]![SubSales]![Alkmiah]
mySQL = mySQL & " WHERE Rajmsanf='" & [Forms]![frm_Recall_sales]![SubSales]![Rajmsanf] & "'"
mySQL = mySQL & " And Rjmfatwra='" & [Forms]![frm_Recall_sales]![frm_mr]![Rjmfatwra] & "'"
Debug.Print mySQL

DoCmd.RunSQL mySQL

.

جعفر

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

استاذ جعفر ممكن تعمل موضوع لهذه الجزئيه وتشرحها بالصور أن أمكن حاولت اطبقها وما ضبطت 

عندما اعمل استعلامات وارغب في تحويل جملة Sql الى كود ادوخ السبع دوخات ولعل طريقتك هذه تسهل علي الموضوع 

  • Like 1
قام بنشر
2 دقائق مضت, kaser906 said:

استاذ جعفر ممكن تعمل موضوع لهذه الجزئيه وتشرحها بالصور أن أمكن حاولت اطبقها وما ضبطت 

عندما اعمل استعلامات وارغب في تحويل جملة Sql الى كود ادوخ السبع دوخات ولعل طريقتك هذه تسهل علي الموضوع 

ان شاء الله:smile:

  • Like 2
  • Thanks 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