PDA

View Full Version : سوال: ایجاد تغییر بر روی کوئری بدون دسترسی مستقیم



Ali_Fallah
جمعه 27 آذر 1388, 12:07 عصر
با سلام
در کوئری یک فیلد از نوع عددی را ضرب در عددی کردیم
مثال FieldName*2
حالا چون عدد 2 هراز گاهی تغیر پیدا میکنه , میخواهم کاربر نتونه بطور مستقیم این عدد رو تغییر بده
(دسترسی مستقیم به کوئری)
به نظر شما راه اصولی چگونه هست؟

mehdi_fiz
جمعه 27 آذر 1388, 12:14 عصر
سلام دوست عزیز

شما می تونید داخل ماژول یک تابع ایجاد کنید و مقدار عددی 2 رو به آن اختصاص دهید و از این تابع داخل کوئری استفاده کنید

موفق باشید

dadsara
شنبه 28 آذر 1388, 08:27 صبح
سلام
ضمن تشکر از جناب Mehdi_fiz بنظر بنده راحت ترین راه این است که شما یک فیلد در سطح فرم قرار دهید و مقدار مورد نظر را داخل آن قرار دهید و آدرس آنرا در کوئری خود قرار دهید

SELECT Table1.a, Table1.b, [b]*[Forms]![Form6]![Text0] AS Expr1
FROM Table1;

nabeel
شنبه 28 آذر 1388, 09:42 صبح
سلام

با توجه به اينكه شما فرموديد :


میخواهم کاربر نتونه بطور مستقیم این عدد رو تغییر بده (دسترسی مستقیم به کوئری)

حالا با توجه به اين درخواست و دقت در پاسخهاي ارسال شده ، تنها راه حل شما ( در صورت نياز به استفاده از Query ) ، انتساب Record Source به صورت ديناميكي هستش ، اونهم از طريق SQL Statement ( انتساب در حين يك رويداد ، به طور مثال در رويداد On Open يك فرم )

البته استفاده از SQL Statement در ديتابيسهاي بزرگ ، تا حدودي سرعت رو كاهش ميده

دو راه حل ارائه شده از سوي عزيزان ، مشكل اوليه و مورد درخواست شما رو همچنان باز گذاشتن ، گو اينكه پاسخ تاپيك شماره 2 ، سيستمي تر هستش و منطقي تر و در فراخواني ثوابت ، موثرتر

شرايطي رو در داخل برنامه بوجود نياريد ، كه براي يك تغيير جزئي ( تغيير يك ضريب ) حتماً بايد خود برنامه نويس دست به كار بشه .

فقط يك توضيح : اين امكان وجود داره ، كه حتي Record Source يك فرم باز نيز از بيرون برنامه تغيير پيدا كنه ، اگه به دنبال اينگونه مسائلي ، جهت رفع نواقص امنيتي هستيد ، متاسفانه بايد گفت ، به كل موضوع رو فراموش بفرماييد .

يا علي