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

أقصر الطرق لكتابة جمل SQL داخل الكود


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

كثير ما نحتاج لكتابة جمل SQL داخل كود فيجوال بيزيك التطبيقات

و ذلك اما لتنفيذ استعلامات مركبة أو لبناء منطق معين داخل جملة الاستعلام نفسه

و لكن هل تحتاج لكتابة جملة السي كيو ال مباشرة ؟؟

الاجابة لا

كل ما عليك هو تنفيذ استعلام يناظر أو يشابه شكلا ما تريد ، ثم عرض الاستعلام فى واجهة ال سي كيو ال

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

مثال

للتوضيح أكثر

اذا أردت تنفيذ استعلام إضافة يضيف القيم الموجودة فى حقلين فى جدول رقم 2 الي جدول رقم واحد

يمكن اعداد الاستعلام بالطريقة العادية

و اذا نظرنا الي عرض ال SQL له يكون كالتالي

INSERT INTO Table1 ( Field1, Field2 )

SELECT Table2.Field1, Table2.Field2

FROM Table2;
اما اذا أردنا تنفيذه بجملة SQL بال vba فكل ما علينا هو توحيد جملة ال SQL فى سطر واحد ووضعها بين "" علامتي تنصيص و أن نسبقها ب Docmd.RunSQL فتصير كالتالي :
 DoCmd.RunSQL "INSERT INTO Table1 ( Field1, Field2 )SELECT Table2.Field1, Table2.Field2 FROM Table2;"
او لفصلها الي سطرين
Private Sub Command0_Click()

 DoCmd.RunSQL "INSERT INTO Table1 ( Field1, Field2 )SELECT " & _

 "Table2.Field1, Table2.Field2 FROM Table2;"

End Sub

و النتيجة واحدة

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

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

إضافة بسيطة للتنبيه على خطأ شائع:

عند قسمة عبارة SQL على سطرين ينبغي مراعاة هل يوجد مسافة فاصلة بين الكلمتين : الأخيرة من السطر الأول ، والأولى من السطر الثاني .

مثال :

DoCmd.RunSQL "INSERT INTO Table1 ( Field1, Field2 )SELECT Table2.Field1, Table2.Field2 FROM Table2;"
إذا قسمته إلى سطرين السطر الأول ينتهي بكلمة SELECT والسطر الثاني يبدأ بكلمة Table2 عليك أن تلاحظ أن بينهما مسافة ، ولذا يجب أن تضع هذه المسافة بعد الكلمة الأخيرة من السطر الأول أو قبل الكلمة الأولى من السطر الثاني يعني إما :
DoCmd.RunSQL "INSERT INTO Table1 ( Field1, Field2 )SELECT " & _

"Table2.Field1, Table2.Field2 FROM Table2;"
أو
DoCmd.RunSQL "INSERT INTO Table1 ( Field1, Field2 )SELECT" & _

" Table2.Field1, Table2.Field2 FROM Table2;"

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

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

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

Important Information