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

اصلاح الخطاء بالكود


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

وعليكم السلام 🙂

 

الافضل تقسيم جملة SQL الى اكثر من سطر:

 

هكذا :

بدل هذين السطرين
DoCmd.RunSQL "INSERT INTO invoice ( sp_ID, catcod, fatora_no, mvdate, Qtyin, price, Total, storid, mvTyp, mosadd, baqy) " & vbCrLf & _
"SELECT forms!invoicebuy!supp_ID AS Expr1, forms!invoicebuy!catcod AS Expr2, forms!invoicebuy!f_no AS Expr3, forms!invoicebuy!movedate AS Expr4, forms!invoicebuy!Qtyin AS Expr5, forms!invoicebuy!pricebuy AS Expr6, forms!invoicebuy!Total AS Expr7, forms!invoicebuy!storid AS Expr8, forms!invoicebuy!mvTyp AS Expr9, forms!invoicebuy!mosadd AS Expr10, forms!invoicebuy!baqy AS Expr11"


استعمل
    
    Dim mySQL As String
    
    mySQL = "INSERT INTO invoice ( sp_ID, catcod, fatora_no, mvdate, Qtyin, price, Total, storid, mvTyp, mosadd, baqy) "
    mySQL = mySQL & Chr(32) & "SELECT " & Forms!invoicebuy!supp_ID & ", " & Forms!invoicebuy!catcod & ", " & Forms!invoicebuy!f_no & ", "
    mySQL = mySQL & Chr(32) & Forms!invoicebuy!movedate & ", " & Forms!invoicebuy!Qtyin & ", " & Forms!invoicebuy!pricebuy & ", "
    mySQL = mySQL & Chr(32) & Forms!invoicebuy!Total & ", " & Forms!invoicebuy!storid & ", " & Forms!invoicebuy!mvTyp & ", "
    mySQL = mySQL & Chr(32) & Forms!invoicebuy!mosadd & ", " & Forms!invoicebuy!baqy
    DoCmd.RunSQL mySQL
    

 

 

جعفر

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

وتعلمت اليوم شيء جديد ، شكرا لك اخي محمد 🙂

 

لم انتبه ان هناك حقل نص وحقل تاريخ في الكود ، لذلك حصلت على هذه الرسالة والرسالة التي تليها 😞

 

تفضل التعديل

المبيعات

    Dim mySQL As String

    mySQL = "INSERT INTO invoice ( sit_ID, catcod, fatora_no, mvdate, Qtyout, price, Total, storid, mvTyp, mosadd, baqy) "
    mySQL = mySQL & Chr(32) & "SELECT " & Forms!invoicesale!sit_ID & ", " & Forms!invoicesale!catcod & ", '" & Forms!invoicesale!f_no & "', "
    mySQL = mySQL & Chr(32) & "#" & Forms!invoicesale!movedate & "#, " & Forms!invoicesale!Qtyout & ", " & Forms!invoicesale!PRICESALE & ", "
    mySQL = mySQL & Chr(32) & Forms!invoicesale!Total & ", " & Forms!invoicesale!storid & ", " & Forms!invoicesale!mvTyp & ", "
    mySQL = mySQL & Chr(32) & Forms!invoicesale!mosadd & ", " & Forms!invoicesale!baqy
'او
'    mySQL = "INSERT INTO invoice ( sit_ID, catcod, fatora_no, mvdate, Qtyout, price, Total, storid, mvTyp, mosadd, baqy) "
'    mySQL = mySQL & Chr(32) & "SELECT Forms!invoicesale!sit_ID , Forms!invoicesale!catcod , Forms!invoicesale!f_no , "
'    mySQL = mySQL & Chr(32) & "Forms!invoicesale!movedate , Forms!invoicesale!Qtyout , Forms!invoicesale!PRICESALE , "
'    mySQL = mySQL & Chr(32) & "Forms!invoicesale!Total , Forms!invoicesale!storid , Forms!invoicesale!mvTyp , "
'    mySQL = mySQL & Chr(32) & "Forms!invoicesale!mosadd , Forms!invoicesale!baqy"
    
    DoCmd.RunSQL mySQL

.

الشراء

    Dim mySQL As String
    
    mySQL = "INSERT INTO invoice ( sp_ID, catcod, fatora_no, mvdate, Qtyin, price, Total, storid, mvTyp, mosadd, baqy) "
    mySQL = mySQL & Chr(32) & "SELECT " & Forms!invoicebuy!supp_ID & ", " & Forms!invoicebuy!catcod & ", '" & Forms!invoicebuy!f_no & "', "
    mySQL = mySQL & Chr(32) & "#" & Forms!invoicebuy!movedate & "#, " & Forms!invoicebuy!Qtyin & ", " & Forms!invoicebuy!pricebuy & ", "
    mySQL = mySQL & Chr(32) & Forms!invoicebuy!Total & ", " & Forms!invoicebuy!storid & ", " & Forms!invoicebuy!mvTyp & ", "
    mySQL = mySQL & Chr(32) & Forms!invoicebuy!mosadd & ", " & Forms!invoicebuy!baqy
'او
'    mySQL = "INSERT INTO invoice ( sp_ID, catcod, fatora_no, mvdate, Qtyin, price, Total, storid, mvTyp, mosadd, baqy) "
'    mySQL = mySQL & Chr(32) & "SELECT Forms!invoicebuy!supp_ID , Forms!invoicebuy!catcod , Forms!invoicebuy!f_no , "
'    mySQL = mySQL & Chr(32) & "Forms!invoicebuy!movedate , Forms!invoicebuy!Qtyin , Forms!invoicebuy!pricebuy , "
'    mySQL = mySQL & Chr(32) & "Forms!invoicebuy!Total , Forms!invoicebuy!storid , Forms!invoicebuy!mvTyp , "
'    mySQL = mySQL & Chr(32) & "Forms!invoicebuy!mosadd , Forms!invoicebuy!baqy"

    
    DoCmd.RunSQL mySQL

.

جعفر

1003.zip

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

بارك الله فيك معلمى الفاضل

لا اشكك ابدا فى عملك استاذى ومعلمى الكبير

واستميحك عذرا  فأنا جاهل امام علمك الكبير

بالفعل تعمل ولكن عند وضع رقم الاذن بعد تعبئة الفاتورة لا يعمل

قد يكون المشكله فى نسخة الاوفيس لدى 

والله اعلى واعلم

واعلى الله مراتبك فى الحياة الدنيا وفى الاخرة

يبدوا ان المشكله لدى فى جهازي

والله اعلم

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

11 ساعات مضت, محمد قاسم 12 said:

بالفعل تعمل ولكن عند وضع رقم الاذن بعد تعبئة الفاتورة لا يعمل

وين حقل "رقم الاذن" ، انا ما شايفه في النموذج!!

ولو سمحت تعطينا الخطوات اللي تتبعها للوصول للخطأ 🙂

 

جعفر

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

 

1003_01.JPG.a80e279af30249915ed66d22f4d6a12c.JPG

الخطأ هذا لا علاقة له بتعديل كود SQL 🙂

 

النموذج الرئيسي له مصدر بيانات ، يعني النموذج مضمن

1003.Clipboard01.jpg.b74313dce5e2f347c504c98a3248b994.jpg

.

مصدر بيانات النموذج هو استعلام للجدول invoice ،

ولاحظ انك استخدمت النجمة * ، معناها انك تريد جميع حقول الجدول

1003.Clipboard02.jpg.3156d47d66e5c1aa19613ffa27b33e71.jpg

.

وبالفعل ، تم عرض جميع حقول الجدول

1003.Clipboard03.jpg.302b9c587df29bf0828903e317d0f711.jpg

.

ولما نأتي الى الحقل اللي يظهر لنا في رسالة الخطأ fatora_no ، نشوف انك قائل انه لا يمكن حفظ السجل بدون ان تكون هناك معلومة فيه ، نعم مطلوب

1003.Clipboard04.jpg.c897e802955f3f571f6df6c513144b23.jpg

.

ولكن ، لما ننقر على زر الحفظ في النموذج ، نصل الى هذا السطر من الكود Me.Refresh ، والذي معناه ان يحفظ بيانات النموذج الرئيسي

1003.Clipboard05.jpg.352abfe4f191c06504fd99a30b6d06b8.jpg

.

ولكن جميع حقول النموذج غير مضمنه ، اي لا تُحفظ في الجدول ، إلا الحقل nn يجب حفظه (لأنه حقل مضمن) !!

ولا يستطيع البرنامج حفظ هذا الحقل بدون قيمة لحقل fatora_no (لأنه غير مضمن) ، لذا ، فقيمة الحقل nn لن تُحفظ في الجدول !!

1003.Clipboard06.jpg.4adf5477efde8991f7d2e747d008a0c6.jpg

.

وبالنظر الى الجدول ، نرى انه بالفعل ، لا توجد فيه ولا نتيجة واحدة

1003.Clipboard07.jpg.d1778f672fd548aee580987c30165d78.jpg

.

 

والطريقة الصحيحة هي:

يجب ان يكون النموذج الرئيسي غير مضمن ، ويكون حقل nn غير مضمن (مثل بقية الحقول) ،

ثم تأتي الي الكود ادناه ، وتضيف حقل "رقم الايصال" nn ، وتجعل الكود يضيفه الى جدول invoice ، مثل ما يضيف بقية الحقول.

1003.Clipboard08.jpg.3d632fa14e73a9155beb86ec36bc3718.jpg

.

جعفر

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

جزاكم الله خيرا استاذى الفاضل

للاسف اصل البرنامج من مشاركه للمعلم الكبير  ابو خليل  

 

بارك الله فيه وفيك ولو فهم الاكواد جيدا 

ولك خالص شكرى وتقديرى 

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

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

والطريقة الصحيحة هي:

يجب ان يكون النموذج الرئيسي غير مضمن ، ويكون حقل nn غير مضمن (مثل بقية الحقول) ،

ثم تأتي الي الكود ادناه ، وتضيف حقل "رقم الايصال" nn ، وتجعل الكود يضيفه الى جدول invoice ، مثل ما يضيف بقية الحقول.

 

انا اعطيتك الجواب 🙂

 

جعفر

  • 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