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

تصحيح كود تحديث


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

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

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

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

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

 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
رابط هذا التعليق
شارك

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

ايش رأيك بأن يكون الفحص قبل انزال الكمية ،

828.Clipboard01.jpg.25937e202fe187f8e2d77e9ae8529fea.jpg

حلو  شوقتني كي اشوف النتيجه

اين بايكون الشرط

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

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