PDA

View Full Version : اضافه کردن یه عدد تصادفی



Mahsa Hatefi
شنبه 16 تیر 1386, 07:37 صبح
سلام بر اساتید محترم

یه تمنا

یه جدول دارم با 10000 رکورد ، حالا می خوام در یه فیلد که اضافه کردم و یا در یه ریپورت توی یه فیلد ، از یه مجموعه عدد 13 تا 19 را بصورت تصادفی به هر رکورد بدهم .

مثلا :

رکورد 1 مینا حسن پور 16
رکورد2 زهرا مقامی فر 13
رکورد3 مهناز گرامی 19
رکورد 4 روناک محبی 15
رکورد 5 آزیتا ستاری 17
.......

ممنون می شوم اگه زود جواب بگیرم

شاپرک
شنبه 16 تیر 1386, 10:40 صبح
Rnd Function
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

Mahsa Hatefi
شنبه 16 تیر 1386, 11:17 صبح
شاپرک جان از اینکه وقت گذاشتید ممنونم

در مورد تابع اول ، یه عدد تصادفی بین صفر و یک را به من داد . در صورتی که من این فیلد را برای رکوردام ندارم و حالا می خواهم به تموم رکوردها توی یه فیلد این مقدار تصادفی بین 13 تا 19 را بدهم . بنابراین نمی خوام از رکوردام بصورت تصادفی انتخاب کنم . بلکه فقط می خوام با یه کوری یا توی یه ریپورت در جلو هر رکورد از جدولم فیلدی بدست بیارم که اعداد تصادفی 13 تا 19 به رکورد ها نسبت داده شده باشد

در مورد دوم هم که لطف فرمودید ، اون هم رکورد تصادفی از جدولم استخراج می کند .

اگه مثلا توی فرمت ریپورت بشه مجموعه ای برای یه متغیر تعریف کرد مثلا با حلقه فور.... نکست 13 تا 19 را معرفی کرد و بعد با یه دستوری بطور تصادفی یکی از این عددها را در یه فیلد برای هر رکورد بدست آورد . مثل پست قبلی که ارسال کردم

ممنون می شم اگه به نتیجه رسیدید خبر دهید

سلامت باشید

شاپرک
شنبه 16 تیر 1386, 11:33 صبح
من پست ام رو ویرایش کرده بودم ... دوباره ببینید .

Mahsa Hatefi
شنبه 16 تیر 1386, 11:59 صبح
دوست با صفا

ممنون الان پستتون رو دیدم من توی فرمت دیتیل یه ریپورت برای یه فیلد این خطوط رو نوشتم اما فقط برای همه عدد 13 رو منظور می کنه اگه لطف کنین عیب کار رو بفرمایید .

Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)

Do While SchlID = 0 Or SchlID = ""

Dim D1(13, 14, 15, 16) As Variant
'Dim D2(10, 20, 30, 40, 50) As Variant

For i = LBound(D1) To UBound(D1)


' I = Rnd(D1)



STm = i



Next i

Loop


End Sub

موردی که شما مرقوم فرمودید رو نیز الان تست می کنم

بازم ممنون

شاپرک
شنبه 16 تیر 1386, 12:04 عصر
خودم تست کردم با این جواب میده :
Fix(Int(19-13+1)*Rnd()+13)

Mahsa Hatefi
شنبه 16 تیر 1386, 12:30 عصر
شاپرک جان

بازم همون عدد سیزده رو برای همه ی رکوردها میده
لطفا یه نگاهی به کدی که من نوشته بودم بیانداز ببین ایرادش چیه در ضمن
این قسمت Fix(Int(19-13+1)*Rnd()+13) رو هم توی اون جایگزین کردم نتیجه فرقی نکرد همه ی رکوردها رو 13 می ده

منتظرم ممنون

Mahsa Hatefi
شنبه 16 تیر 1386, 12:35 عصر
دوست من می خوام به هر رکورد یه عدد تصادفی بده

مثل :
رکورد 1 مینا حسن پور 16
رکورد2 زهرا مقامی فر 13
رکورد3 مهناز گرامی 19
رکورد 4 روناک محبی 15
رکورد 5 آزیتا ستاری 17
.......

شاپرک
شنبه 16 تیر 1386, 12:40 عصر
مقدار Default Value فیلدی از جدول که میخواهید عدد تصادفی تولید کنه مساوی با : Fix(Int(19-13+1)*Rnd()+13) قرار بدید .. یا Control Source فیلدی که در گزارش دارید .

Mahsa Hatefi
یک شنبه 17 تیر 1386, 07:00 صبح
شاپرک جان مثل همیشه کارساز واقعا ممنونم حل شد کارت عالیه

همیشه برکات وجودی شما