PDA

View Full Version : تبدیل SQL Statement به VBA Code



صبا9841
یک شنبه 29 بهمن 1385, 11:27 صبح
سلام
برای تبدیل یک عبارت اس کیو ال به کد vba که از یک union query است چطور باید نوشته شود؟ متشکرم


SELECT Rooz,Name,kind,amount from tblNew
UNION select Rooz,Name,kind,amount
FROM tblOld;

MM_Mofidi
یک شنبه 29 بهمن 1385, 14:47 عصر
خوب مقادیر فوق را در قالب اتصال برای اجرا بروی سرور پاس کن و جواب را در یک رکوردست دریافت کن. مشکل چیه؟

صبا9841
یک شنبه 29 بهمن 1385, 15:50 عصر
خوب مقادیر فوق را در قالب اتصال برای اجرا بروی سرور پاس کن و جواب را در یک رکوردست دریافت کن. مشکل چیه؟

از توجه تان متشکرم.
مشکل همان نحوه نوشتنی هست که نفرمودید.:چشمک:
روی کوئری های از نوع select , append,del انجام شده ولی برای ساخت کد union query مشکل هست:ناراحت:

mazoolagh
یک شنبه 29 بهمن 1385, 22:05 عصر
شما کدی رو که استفاده کردین اینجا بگذارین تا اشکالش معلوم بشه - اصولا"تبدیل کد sql به vba مفهومی نداره!

صبا9841
دوشنبه 30 بهمن 1385, 15:38 عصر
شما کدی رو که استفاده کردین اینجا بگذارین تا اشکالش معلوم بشه -
دوستان سلام
از این کد برای ایجاد query Union با استفاده از VBA Code استفاده کردم که اشکال برطرف شد. اگر مورد نیاز بود ملاحظه فرمائید:

Dim dbs As DAO.database
Dim qdf As DAO.QueryDef
Dim qobj As AccessObject
Set dbs = CurrentDb
Set qbf = dbs.CreateQueryDef("qryKol-1", "SELECT Rooz,Name,kind,amount From tblNew UNION select Rooz,Name,kind,amount From tblOld;")

Set qdf = dbs.CreateQueryDef("qryKol-1", strSQL)
Set qobj = Nothing
Set qdf = Nothing
Set dbs = Nothing


اصولا"تبدیل کد sql به vba مفهومی نداره!

شاید حق باشما باشد! هدف من ایجاد یک Union query از طریق کد VBA بود با این حال اشتباه نام گذاری بنده را به بزرگواری خودتان ببخشید:تشویق:

MM_Mofidi
سه شنبه 01 اسفند 1385, 10:07 صبح
این کد مشکلی نداره به راحتی یک query میسازه فقط اشکالش اینه که با CreateQueryDefشما دوبار query میسازید و هردو هم همنام هستند. من مشکلی نمیبینم به راحتی اجرا میشه.
شما میتونید از متد های Execute و یا RunSQL از Docmd هم استفاده کنید

صبا9841
سه شنبه 01 اسفند 1385, 10:51 صبح
شما میتونید از متد های Execute و یا RunSQL از Docmd هم استفاده کنید

درسته. همان RunSQL را بکاربردم.