محمد طاهر عرفه قام بنشر يونيو 11, 2003 قام بنشر يونيو 11, 2003 كثير ما نحتاج لكتابة جمل 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 عن طريق منطق البرمجة 1 1
حارث قام بنشر يونيو 12, 2003 قام بنشر يونيو 12, 2003 إضافة بسيطة للتنبيه على خطأ شائع: عند قسمة عبارة 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;" 4
الردود الموصى بها