PDA

View Full Version : سوال: نحوه باند کردن تکست باکس به کوئری



hf.farhadi
پنج شنبه 25 خرداد 1391, 23:56 عصر
با سلام خدمت دوستان گرامی
چند تا سئوال در رابطه با نحوه باند کردن تکست باکس به کوئری :
1- چطوری یه تکس باکس رو باند کنم به یه کوئری و خروجی کوئری رو توی تکست باکس روی فرم ببینم . از Build برای آدرس دهی استفاده کردم ولی ارور میده .

2 - برای مشاهده مثلاً جمع یه کوئری رو توی تکس باکس در فرم از کد زیر استفاده میکنیم .

=Dsum("Field Name","Query Name")
حالا بخوایم یه فیلد رو با همین روش Group By کنیم (یعنی با کد نویسی توی تکس باکس Group By انجام بشه نه توی کوئری )، چه باید کرد.

Abbas Amiri
جمعه 26 خرداد 1391, 12:16 عصر
برای عبارات پیچیده درصورت نیاز میتوانید کدهای واکشی اطلاعات در یک تابع نوشته و کنترل خود را به آن تابع Bind کنید

hf.farhadi
جمعه 26 خرداد 1391, 12:36 عصر
با سلام خدمت آقای امیری عزیز
بابت سئوال اول
من برای نشان دادن خروجی یک کوئری که کلاً یه فیلد داره مجبور شدم از سابفرم استفاده کنم که باعث شده فرم یه خورده دیر باز بشه (چون سابفرمهای دیگه ای هم دارم ). حالا میخوام حدالمقدور این سابفرمها رو کم کنم و خروجی کوئری رو در تکس باکس ببینم.

حقیقتش مننظورتون رو متوجه نشدم.

درصورت نیاز میتوانید کدهای واکشی اطلاعات در یک تابع نوشته و کنترل خود را به آن تابع Bind کنید

Abbas Amiri
جمعه 26 خرداد 1391, 14:10 عصر
فرض کنیم شما تابعی بنام GetField ایجادکرده اید که خروجی آن مقدار موردنیاز جهت کنترل موردنظر است . در Control Source مربوط به تکست باکس تایپ کنید


= GetField()

hf.farhadi
جمعه 26 خرداد 1391, 16:30 عصر
با سلام آقای امیری گرامی و ممنون از پیگیریتون

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

در نمونه ضمیمه خروجی از یک کوئری رو چطوری به تابع تبدیل کنم و خروجی رو در تکست باکس ببینم

Abbas Amiri
شنبه 27 خرداد 1391, 19:15 عصر
اینها تابع احتیاج ندارند واز توابع توکار اکسس میشود استفاده کرد


DSum("Number","Table1")
DCount("*","Table1")

hf.farhadi
شنبه 27 خرداد 1391, 19:29 عصر
جناب امیری عزیز
ممنون از لطف و پیگیریتون
مشکلم کد زیر بود که بجای علامت ستاره من از نام فیلد استفاده میکردم که با لطف شما حل شد

DCount("*","Table1")

Abbas Amiri
شنبه 27 خرداد 1391, 21:24 عصر
اگر هدفتان معدل گیری است از Davg استفاده کنید

hf.farhadi
شنبه 27 خرداد 1391, 21:48 عصر
با سپاس

برای استفاده از First ،Last ،max، min و خود avg با همین شرایط آیا فقط اضافه کردن حرف D به اول این شرطها کافیه .

در ضمن در این شرطها نیز به جای استفاده از نام فیلد باید از علامت ستاره استفاده کرد

ممنون

sama84
یک شنبه 28 خرداد 1391, 09:24 صبح
باسلام
من هم نحوه باند کردن کوئری با تکست باکس مشکل دارم ، این تابع DSUM رو توی CONTROLSOURCE نوشتم ولی NAME# رو توی فرم نشون میده.
یک نمونه از دیتا بیسم رو می ذارم اگه زحمتی نیست یه نگاه بکنید:
توی فرم 1 :نحوه باند کردن تکست باکس رو به کوئری MQCHAMAN رو نشون بدیدید:خجالت:
یه سوال دیگه اینکه مجموع مساحت طی هر سال تغییر می کنه مثلا 90 یه رقم است و 91 یه رقم دیگه اگه بخوام یه کومبو برای تعیین این سال بذارم چطور میشه اینکارو کرد مثل فرم 2

Abbas Amiri
یک شنبه 28 خرداد 1391, 20:12 عصر
برای استفاده از First ،Last ،max، min و خود avg با همین شرایط آیا فقط اضافه کردن حرف D به اول این شرطها کافیه .
بله وغیر ازاینها توابع آماری هم وجوددارد . ولی علامت ستاره فقط برای DCount کاربرد دارد و با استفاده از علامت ستاره تعداد کل رکوردها برمیگردد و درصورت استفاده از نام فیلد فقط تعدادرکوردهایی که مقدار فیلد موردنظر درآنها Null نباشد بر میگردد