PDA

View Full Version : سوال: چگونه از بین چند جمله... یک جمله تصادفی را انتخاب و روی فرم اصلی نمایش دهیم ؟



narpco
پنج شنبه 06 شهریور 1399, 11:56 صبح
اساتید محترم سلام روز بخیر
یک جدول داریم حاوی 30 بیت شعر
از روی جدول کوئری گرفتیم
هدف : در فرم اصلی یک تکست باکس داریم که در مرحله onload با دستور dlookup میره داخل کوئری میگرده و ( با توجه به شماره id شعر ) یک بیت شعر رو بصورت تصادفی از بین 30 عدد شعر انتخاب میکنه و نمایش میده
در فایل پیوست همه مراحل رو میتوانید مشاهده بفرمایید

مشکلی که در این باب وجود داره اینه که در هر بار باز کردن فایل اکسس شعر شماره 22 نمایش داده میشه (که خوب این مشکل برنامه هست و کد نویسی)
وقتی داخل محیط اکسس فرم رو میبندیم و بعد دوباره باز می کنیم تازه کد درست کار می کنه و یک شعر تصادفی نشون میده

بسیار ممنون میشم اساتید بفرمایید مشکل کد کجاست ...بسیار سپاس ...

eb_1345
پنج شنبه 06 شهریور 1399, 19:54 عصر
اساتید محترم سلام روز بخیر
یک جدول داریم حاوی 30 بیت شعر
از روی جدول کوئری گرفتیم
هدف : در فرم اصلی یک تکست باکس داریم که در مرحله onload با دستور dlookup میره داخل کوئری میگرده و ( با توجه به شماره id شعر ) یک بیت شعر رو بصورت تصادفی از بین 30 عدد شعر انتخاب میکنه و نمایش میده
در فایل پیوست همه مراحل رو میتوانید مشاهده بفرمایید

مشکلی که در این باب وجود داره اینه که در هر بار باز کردن فایل اکسس شعر شماره 22 نمایش داده میشه (که خوب این مشکل برنامه هست و کد نویسی)
وقتی داخل محیط اکسس فرم رو میبندیم و بعد دوباره باز می کنیم تازه کد درست کار می کنه و یک شعر تصادفی نشون میده

بسیار ممنون میشم اساتید بفرمایید مشکل کد کجاست ...بسیار سپاس ...

سلام
نمونه اصلاح شده خودتو ببین!
عبارت کوئری رو میتونید بدلخواه خودت تغییر بدی .مثلاً بجای منفی مثبت جایگزین کنی و یا در آخر ، عبارت رو با عدد یک جمع و یا تفریق کنی


Rnd((30*[ID])*Time()-1)

Rnd(-(30*[ID])*Time()+1)

Rnd((30*[ID])*Time())

narpco
جمعه 07 شهریور 1399, 11:26 صبح
سلام و بسیار سپاس از محبت شما
اگر درست فهمیده باشم شما انتخاب تصادفی رو به داخل کوئری منتقل کردین و تصادف با ضریب زمان همراه هست
به این معنی که هر بار ورد با توجه به ساعت دقیقه و ثانیه باهم تفاوت دارد
و این تفاوت موجب انتخاب رکوردی بصورت تصادفی میگردد----تا اینجا مشکل حل شده و مورد خاصی نیست ...

سئوالی که به لحاظ یادگیری خود بنده بوجود اومده اینه که اگر ما کوئری رو حذف کنیم و بخوایم مستقیم از داخل جدول رکوردی رو بصورت تصادفی انتخاب کنیم چگونه باید عمل کنیم ....؟
بسیار ممنون میشم هر وقت زمان داشتین این موضوع رو هم به بنده آموزش بدین ...با سپاس فرآوان ...

eb_1345
شنبه 08 شهریور 1399, 00:15 صبح
سلام و بسیار سپاس از محبت شما
اگر درست فهمیده باشم شما انتخاب تصادفی رو به داخل کوئری منتقل کردین و تصادف با ضریب زمان همراه هست
به این معنی که هر بار ورد با توجه به ساعت دقیقه و ثانیه باهم تفاوت دارد
و این تفاوت موجب انتخاب رکوردی بصورت تصادفی میگردد----تا اینجا مشکل حل شده و مورد خاصی نیست ...

سئوالی که به لحاظ یادگیری خود بنده بوجود اومده اینه که اگر ما کوئری رو حذف کنیم و بخوایم مستقیم از داخل جدول رکوردی رو بصورت تصادفی انتخاب کنیم چگونه باید عمل کنیم ....؟
بسیار ممنون میشم هر وقت زمان داشتین این موضوع رو هم به بنده آموزش بدین ...با سپاس فرآوان ...


سلام
نمونه جدید رو ملاحظه بفرما !
فکر کنم با دیدن کدها متوجه موضوع خواهید شد . علی ایحال چنانچه ابهام خاصی وجود داشت بفرما تا خدمتتون توضیح بدهم

narpco
شنبه 08 شهریور 1399, 13:09 عصر
با سپاس ممنون از توضیحات کامل و جامع کدها به اندازه کافی گویا بود ممنونم ....از شما ...:تشویق::تشویق::تشویق::تشویق ::تشویق:

eb_1345
شنبه 08 شهریور 1399, 20:16 عصر
سلام
اگر از فرم در حالت باند (bound) استفاده کنید میتوانید همون کد SELECT TOP 1 tbl_poem.ID, tbl_poem.poem FROM tbl_poem ORDER BY Rnd(-(30*ID)*Time()) را در RecordSource فرم قرار بدهی و ControlSource تکس باکس txt_poem را poem
در اینصورت نیاز با کوئری و کد نوشتن هم نمی باشد
موفق باشی

eb_1345
یک شنبه 09 شهریور 1399, 18:22 عصر
سلام
فکر کنم پست آخر رو ندیده ای :لبخندساده:

narpco
یک شنبه 09 شهریور 1399, 22:57 عصر
سلام
فکر کنم پست آخر رو ندیده ای :لبخندساده:

سلام چرا دیدم ...بسیارهم سپاس از محبت شما گفتم که پست اضافی نذارم که سئوالات سایر دوستان هم دیده بشه و پاسخ داده بشه
ما همیشه سپاسگزار محبت شما هستیم بزرگوار:تشویق::تشویق::تشویق: :تشویق: