PDA

View Full Version : اجرای کدهای sql در vba با runsql



ali190
شنبه 19 دی 1388, 16:16 عصر
با سلام خدمت دوستان گرامی
یه سئوال :
من چطور میتونم از کدهای sql کوئری ها که از طریق sql view که در حال design کوئری ها بدست میاد در محیط vba استفاده کنم .البته مشکل من با کدهای چند خطی هستش .کدهای تک خطی رو از روش زیر اجرایی میکنم:



Dim SQL As String
"عبارت تک خطی sql"=sql

DoCmd.RunSQL SQl
ولی برای یک عبارت چند خطی مثل عبارت پایین دچار مشکل میشم.در واقع دیگه نمویتونم از این عبارت در داخل دو کوتیشن استفاده کنم و جملات به رنگ قرمز درمیاد که نشاندهنده خطاست:
SELECT Table1.df, Table1.dsf, Table1.sfd, Table1.fds
FROM Table1
WHERE (((Table1.df)="a") AND ((Table1.sfd)="b"));
اگر میشه این توضیح رو در قالب یک مثال ارائه کنید که شامل اجرای یک دستور چند سطری sql از طریق vba هست.
ممنون و متشکرم از لطف شما دوستان گرامی و دلسوز.

dadsara
یک شنبه 20 دی 1388, 09:04 صبح
سلام
دوست عزیز کافی بود عبارت طولانی بودن کد VBA را جستجو می کردید
http://barnamenevis.org/forum/showthread.php?t=119812

ali190
یک شنبه 20 دی 1388, 17:53 عصر
باسلام
مثلا این نمونه بنده رو نگاه کنید.ببنید که کدش اجراء نمیشه.آخه برای اجرای کدهای چند خطی sql با ید چکار کنم که اجراء بشه؟

مهدی قربانی
یک شنبه 20 دی 1388, 18:20 عصر
سلام
كد ها رو به اين شكل اصلاح كنيد . ضمن اينكه خطاي شما به دليل مشكلات syntax در دستور مربوطه بود كه با اصلاح اون مشكل خطا حل ميشه.


Private Sub Command0_Click()
Dim sql As String
sql = "UPDATE Table1 SET Table1.df = UCase([df])" _
& " WHERE (((Table1.df)='f'" & " ));"
DoCmd.RunSQL sql
End Sub

ali190
یک شنبه 20 دی 1388, 21:05 عصر
ممنون و متشکر از لطف بی دریغ شما جناب قربانی عزیز
فقط یه خواش
خواهش:
در واقع برای عدم رخ دادن خطا در اینگونه جملات چه باید کرد .مثلاً در عبارت sql بالا شما تغیراتی رو داده بودید .آیا این تغییرات متد و الگوریتم خاصی را دارد؟
ممنون

karmand
دوشنبه 21 دی 1388, 10:54 صبح
اگر فيلدي كه بايد مساوي با متغيري شود از نوع رشته يا string بود بايد متغير را در يك كوتيشن بگذاري و اگر فيلد از نوع عددي بود بعد از مساوي متغير را بگذار