View Full Version : سوال درباره کوئری در اکسس
sama84
شنبه 20 خرداد 1391, 11:48 صبح
با سلام و خسته نباشید
کوئری هایی که توی اکسس 2007 نوشتم دارای خروجی عدد است -یک سری عدد single را با هم جمع می کند ولی در خروجی یک عدد با تعداد ارقام اعشاری زیاد می دهد مثلا 2.4 را بصورت 2.39999654 نشان می دهد برای اینکه عدد را نهایتا تا دو رقم اعشار نشان دهد چه باید کرد؟ با تشکر
hf.farhadi
شنبه 20 خرداد 1391, 16:11 عصر
با سلام
شما خروجی این کوئری رو میخواین در کجا مشاهده کنین ؟
اگه توی گزارش و یا فرم میخوای خروجی رو مشاهده کنی در properties در سر برگ Format و در قسمت Format گزینه Standard و در قسمت Dicimal Places تعداد اعدادی که بعد از اعشار میخوای نمایش داده بشه رو انتخاب کن (مثلاً 1 رو انتخاب کن که خروجی همون 2.4 خودت بشه)
sama84
یک شنبه 21 خرداد 1391, 09:56 صبح
با سلام
شما خروجی این کوئری رو میخواین در کجا مشاهده کنین ؟
اگه توی گزارش و یا فرم میخوای خروجی رو مشاهده کنی در properties در سر برگ Format و در قسمت Format گزینه Standard و در قسمت Dicimal Places تعداد اعدادی که بعد از اعشار میخوای نمایش داده بشه رو انتخاب کن (مثلاً 1 رو انتخاب کن که خروجی همون 2.4 خودت بشه)
با سلام
خروجی کوئری در یک لیست باکس (چون نمی شد در تکست باکس مشاهده کرد از لیست استفاده کردم )که در صفحه گزارش قرار دارد مشاهده می شود ولی لیست این گزینه ها رو properties ندارد راه دیگه ای می دونید؟ باتشکر فراوان
sama84
دوشنبه 22 خرداد 1391, 12:08 عصر
با سلام
خواهش می کنم اگه یه کمک کنه؟
hf.farhadi
دوشنبه 22 خرداد 1391, 14:09 عصر
میشه دلیل این موضوع رو واضح تر عنوان کنین :
(چون نمی شد در تکست باکس مشاهده کرد از لیست استفاده کردم )
و در صورت امکان نمونه بزارین
emami.sie
دوشنبه 22 خرداد 1391, 14:26 عصر
سلام
به این تاپیک یه سری بزنید...
کاربر Hedesh به نکات خوبی اشاره کردن...
http://barnamenevis.org/showthread.php?331937-%D8%AD%D8%B0%D9%81-2-%D8%B1%D9%82%D9%85-%D8%A7%D8%B9%D8%B4%D8%A7%D8%B1-%D8%A7%D8%B2-%D9%81%DB%8C%D9%84%D8%AF-%D9%85%D8%A8%D9%84%D8%BA-%D8%8C-%D8%AF%D8%B1-%D9%84%DB%8C%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D9%88-%D8%B1%D8%A7%D8%B3%D8%AA-%DA%86%DB%8C%D9%86-%D8%B4%D8%AF%D9%86-%D8%A2%D9%86
هر فرمتی که مد نظرتونه رو باید در کوئری سورس لیست باکستون اعمالش کنید...
موفق باشید
یا علی
sama84
چهارشنبه 24 خرداد 1391, 09:52 صبح
با سلام
از راهنمایی هاتون ممنونم . نمونه کوئری:SELECT nz(Sum([chaman.masahatchaman]),0) FROM segment INNER JOIN chaman ON segment.no_segment=chaman.[no-segment]
WHERE (((segment.segment_name)=forms!Form2!combo2.value)
And ((segment.no_rigion)=forms!Form2!text0.value
این کوئری اسم ناحیه و منطقه رو از فرم می گیرد و مجموع مساحت چمنکاری موجود در آن ناحیه را نمایش می دهد . در صفحه گزارشم وقتی تکست باکس میذاشتم و کنترل سورس آن رو نتونستم به این کوئری ارتباط بدم برای همین وقتی دیدم با لیست جواب میده از اون استفاده کردم ولی الان اگر نتیج کوئری 120.5 باشد بصورت 120.4999999 نمایش می ده چیکارش کنم.
hf.farhadi
پنج شنبه 25 خرداد 1391, 00:08 صبح
دوست عزیز منظور از نمونه آپلود کردن نمونه ای از برنامتون برای اصلاح است .
در ضمن در لینک قرار داده شده در پست 6
کاربر Hedesh به نکات خوبی اشاره کردن...
http://barnamenevis.org/showthread.p...6-%D8%A2%D9%86 (http://barnamenevis.org/showthread.php?331937-%D8%AD%D8%B0%D9%81-2-%D8%B1%D9%82%D9%85-%D8%A7%D8%B9%D8%B4%D8%A7%D8%B1-%D8%A7%D8%B2-%D9%81%DB%8C%D9%84%D8%AF-%D9%85%D8%A8%D9%84%D8%BA-%D8%8C-%D8%AF%D8%B1-%D9%84%DB%8C%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-%D9%88-%D8%B1%D8%A7%D8%B3%D8%AA-%DA%86%DB%8C%D9%86-%D8%B4%D8%AF%D9%86-%D8%A2%D9%86)
میتونین مشکلتون رو حل کنین .
آنگاه برای یک رقم اعشار 1
Expr1:Format([NumberField];"#.0")
emami.sie
پنج شنبه 25 خرداد 1391, 07:44 صبح
سلام
این هم یک نمونه خیلی ساده...
یا علی
sama84
شنبه 27 خرداد 1391, 09:01 صبح
با سلام از اینکه جواب دادید خیلی ممنونم ببخشید نتونسته بودم نمونه بذارم ، اگه نمونه رو ببینید ممنون می شم
abdoreza57
شنبه 22 مهر 1391, 21:11 عصر
با سلام
با توجه به نمونه های دوستان و روشهای یاد شده تو قسمت فرم اتفاقی که می افته اینه :
اعداد صحیح که فاقد اعشار هستند به صورت 2.00 نمایش داده میشه
کسی راهی سراغ داره که بشه اعداد اعشار را به صورت دو رقم نشون بده و در صورت ورود عدد صحیح این دو تا صفر آخر را نمایش نده ؟
Abbas Amiri
شنبه 22 مهر 1391, 21:44 عصر
سلام
ازتابع Round استفاده کنید:
Round(expression [,numdecimalplaces])
abdoreza57
شنبه 22 مهر 1391, 22:39 عصر
با سلام
متوجه نشدم کد بالا ایرادی نداره ؟ کاش میگفتید کجا و چطور استفاده کنم ؟
Abbas Amiri
شنبه 22 مهر 1391, 23:08 عصر
سلام
Dim k as Single
k=12.5236
k=Round(k,2)
Debug.Print k
k=5
k=Round(k,2)
Debug.Print k
این کدها را درک زیرروال در یک ماژول قراربدید و آنرا صدا بزنید ونتیجه را ببینید
abdoreza57
سه شنبه 25 مهر 1391, 17:43 عصر
ضمن سلام و خسته نباشید خدمت دوستان و استاد امیری گل
یه سوال و اینکه با ایجاد این ماژول اعداد با فرمت سینگل همه روند میشند ؟ اگه این طور باشه خیلی عالیه ! یا من متوجه نشدم
تو نمونه ای که ضمیمه کردم من قبلا اعداد را روند میکردم ولی ایرادی که داشت این بود که با کلیک روی تکست باکس تمام اعشار به نمایش در می آمد یا تو گزارشات دوباره مشکل ساز میشد متاسفانه نتونستم از کد شما استفاده کنم چون با وجود این ماژول هنگام روند کردن خطا میگیره اگه لطف کنی نمونه را اصلاح و جواب سوالاتم را بدید ممنون میشم
یا علی
Abbas Amiri
سه شنبه 25 مهر 1391, 18:55 عصر
سلام
باید یک تابع ویا زیرروال تعریف ودرداخل آن کد نویسی کنید
Sub RoundSample()
Dim k As Single
k = 12.5236
k = Round(k, 2)
Debug.Print k
k = 5
k = Round(k, 2)
Debug.Print k
End Sub
حالا در Immediate Window تایپ کنید : RoundSample
abdoreza57
سه شنبه 25 مهر 1391, 20:11 عصر
سلام
شرمنده متوجه نشدم و گزینه Immediate Window را تو 2003 پیدا نکردم :ناراحت:
Abbas Amiri
سه شنبه 25 مهر 1391, 21:50 عصر
1 - VBE>View>Immediate
2 - Ctrl + G
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.