PDA

View Full Version : qureyاکسس در وی بی



ario
شنبه 26 مهر 1382, 05:55 صبح
سلام
من یه سری qurey تو اکسس دارم که پارامتر میگیرن درست هم جواب میدن اگه بخوام از همونها تو datareport استفاده کنم یعنی بجای نوشتن عبارت sqlدر command مستقیما از view
استفاده کنم و اون رو بهqureyمورد نظر لینک کنم باید چطوری پارامتر رو بهش پاس بدم چون روی عبارت " (DataEnvironment1.Command11 (a" خطا میگیره یعنی با پارامترش مشکل داره
اگه ممکنه راهنمایی کنید ممنون

الهام تفریشی
شنبه 26 مهر 1382, 10:04 صبح
علت اینکه نمیخوای عبارت Sql رو بنویسی چیه ؟
البته من دنبالش هستم که برات مشکل رو حل کنم ولی دوست دارم بدونم
واسه چی از اون روش نمیخوای استفاده کنی ؟

ایران ویج
شنبه 26 مهر 1382, 13:19 عصر
دلیل اینکه نمیشه دستور اکسس رو توی وی بی آورد اینه که شما وقتی با اکسس کار میکنی داری با یه مفسر کار میکنی وقتی میخواد این مفسر درستوری رو اجرا کنه اول اونو تفسیر میکنه و اگر مثلا پارامتر بخواد - آونو از شما میگیره بعد که تفسیر درست بود اونو اجرا میکنه
اما وی بی همون اول میاد همه خط ها رو ترجمه میکنه پس نمیتونه بفهمیه پارامتر چیه ؟ (یعنی دستور اسکیول را پارامتری قبول نداره ) حالا هم فقط تنها کارش اینه که دسترورات رو بصورت استرینگ کنی و استفاده کنی همین.

ario
یک شنبه 27 مهر 1382, 04:37 صبح
از توجهتون ممنونم انقدر سوالام بیجواب مونده بود که فکر نمیکردم کسی جواب بده بازم ممنون
الهام جان دلیلش اینه که من 4 تا qurey در اکسس دارم که هر کدام تعداد برگشتیهای واحد در یک سال را تولید میکنه و من میخوام همه اونها رو تو یه ریپورت نشون بدم که هر ستون برگشتیهای یک سال رو نشون بده تو اکسس یه qurey نوشتم که هر ستونش رو به qurey مربوطش وصل کردم جواب داد ولی تو وی بی که آوردمش جواب نداد برای همین خواستم مستقیما از qurey اکسس استفاده کنم حالا اگه راه دیگه ای به نظرت میرسه لطفا بگو

الهام تفریشی
یک شنبه 27 مهر 1382, 09:24 صبح
ببین من خودم راستش همیشه query رو تو خود command مینویسم
بعد هر چی هم الان تست کردم به اون صورتی که تو میگی نشد
حالا من امروز میخوام برم پیشه یکی از دوستام احتمال میدم که اون بلد باشه
به هر حال بهت جواب میدم که چی شد

حالا تست کن ببین اصلا با query تو خود command جواب میده یا نه ؟

sh
یک شنبه 27 مهر 1382, 15:49 عصر
سلام

ببین دوست عزیز چرا وقتی می تونی با دستورات SQL توی VB هر کاری بکنی دنبال کوئری اکسس هستی

تو میگی جستجوی پارامتری این نوع فقط در VB.NET وجود داره در وی بی باید خودت پارامتر رو درست کنی بصورت زیر :

مثلا میخوای گزارشی بگیری که بگه تمام فیلدهائی رو بیار که کاربر اسم رو توی Textbox می نویسه یعنی گزارش در زمان اجرا

البته قبل از این کدها ارتباط Datareport با Dataenvironment یادت نره و باید بعد از ساختن کانکشن یک Command برای هر جستجو از جدول می نویسی که دستور اس کیو ال مربوطه به آن کامند را در زمان اجرا بصورت زیر عوض میکنی
Dim s as String
s= Trim(text1.text
DataEnvironment1.rsCommand1.Open "SELECT * FROM table2 WHERE account='" & s
DataReport1.Show


توی رویداد بسته شدن دیتا رپروت هم می نویسی :
DataEnvironment1.rsCommand1.Close
و به همین صورت می تونی جستجو بین دو تاریخ یا چندین شرط رو که مقدارش در هنگان اجرا از کاربر دریافت میشه انجام بدی


با تشکر
شهریار


راستی یادم رفت تو مثلا می خوای هر ستون دیتا رپروت جمعی از چهار جدول مجزا رو تشکیل بده خوب برای این کار می تونی چهار کامند بوجود بیاری که جمع رو بصورت پارمتری بهت بدن
و الته میشه این کار رو توی کنترهای دیگه هم مثل تکست درست کرد

اگه نتونستی اون یه قسمت از برنامه با بانک رو بفرست برات درست کنم

ario
دوشنبه 28 مهر 1382, 05:00 صبح
بازم ممنونم
shعزیز کاری رو که میخوام انجام بدم تو پاسخهای قبلی توضیح دادم کاری رو که شما میگی رو هم در مورد پارامتر انجام دادم مشکلی نداره ولی یه وقت مثل این مورد

SELECT mainf.fdate, mainf.unit, Count(mainf.fno) AS CountOffno, Count(mainf.nadaptc) AS CountOfnadaptc, mainf.nadaptc, mainf.enddate, mainf.unitc, mainf.percent, mainf.actor, mainf.percent, mainf.acttype, mainf.eslah
FROM mainf
GROUP BY mainf.fdate, mainf.unit, mainf.nadaptc, mainf.enddate, mainf.unitc, mainf.percent, mainf.actor, mainf.percent, mainf.acttype, mainf.eslah
HAVING (((mainf.fdate)>[?] And (mainf.fdate)<[??]) AND ((mainf.unit)=[???]) AND ((m ((Count(mainf.fno))>1) AND ((Count(mainf.nadaptc))>1));

اگه بخوام یه فیلد جدید به همین اضافه کنم خطا میگیره و تمام پارامترهام عوض میشه
نمیدونم مشکل از کجاست که با اضافه شدن یه فیلد دستور به هم میریزه (اصلا هیچ فیلدی تو Command دیده نمیشه(+پشت Command از بین میره) :(
راجع به مشکل اول هم اگه میشه روش ترکیب چند تا Command رو بگو
یه تعداد برگشتی دارم که میخوام تو فیلدهر سال مجموع همون سالو بده مثلا فیلد 80 مجموع(sum) برگشتیهای 80(date>80/ 1/1 and date <81/1/1)و برای سالهای دیگه هم به همین صورت
ممنون میشم اگه جواب بدی

ario
چهارشنبه 30 مهر 1382, 03:52 صبح
ای بابا مثل اینکه چشمتون زدم تورو خدا جواب بدین دیگه