PDA

View Full Version : سوال: نداشتن مقدار تکراری در چند textbox



baran_m
دوشنبه 13 تیر 1390, 13:41 عصر
سلام دوستان
من یک فرم دارم که در این فرم تعداد 15 سطر وجود داره که در هر سطر یک فیلد شماره سند وجود داره و من میخوام شماره سند تکراری توسط کاربر وارد نشه اما نمیدونم چطور باید اینکارو انجام بدم لطفا درصورت امکان راهنمایی بفرمایید با تشکر
(عکس فرم رو برای بهتر درک کردن موضوع گذاشتم)
71858

انگوران
دوشنبه 13 تیر 1390, 13:54 عصر
سلام، نمونه تو سايت زياده براي مثال با استفاده از تابع Dlookup ميشه اين كار رو انجام داد.

baran_m
سه شنبه 14 تیر 1390, 08:37 صبح
اما من هرچی سرچ کردم به نتیجه ای که بشه این مورد رو حل کرد نرسیدم ممکنه بگید از این تابع چطور میشه برای این مورد استفاده کرد. ممنون میشم

ARData
سه شنبه 14 تیر 1390, 09:34 صبح
در اين نوع برنامه ها نبايد به کاربر اجازه ايجاد رديف داد بلکه رديف بايد به طور اتومات ايجاد شود اگر نمونه فايلتونو بذارين براتون با مثال توضيح ميدم .

baran_m
سه شنبه 14 تیر 1390, 09:55 صبح
در اين نوع برنامه ها نبايد به کاربر اجازه ايجاد رديف داد بلکه رديف بايد به طور اتومات ايجاد شود اگر نمونه فايلتونو بذارين براتون با مثال توضيح ميدم .

اینم نمونه

dadsara
چهارشنبه 15 تیر 1390, 08:44 صبح
سلام
ظاهرا فایلتون رمز داره

baran_m
چهارشنبه 15 تیر 1390, 09:41 صبح
سلام
ظاهرا فایلتون رمز داره
شرمنده اصلا حواسم نبود رمزش 0887

baran_m
پنج شنبه 16 تیر 1390, 08:29 صبح
یعنی کسی نیست که بتونه کمک کنه؟:ناراحت:

انگوران
پنج شنبه 16 تیر 1390, 08:39 صبح
سلام، راستش اين مدلي كه فرم و جداولتون رو طراحي كردين يه مقدار گيج شدم. اگه قصدتون تغيير طراحي نيست براي اين حالت يه راهي رو پيدا كنم.

baran_m
پنج شنبه 16 تیر 1390, 08:44 صبح
سلام، راستش اين مدلي كه فرم و جداولتون رو طراحي كردين يه مقدار گيج شدم. اگه قصدتون تغيير طراحي نيست براي اين حالت يه راهي رو پيدا كنم.

خیلی ممنون میشم اگه این محبت رو در حقم بکنید

انگوران
پنج شنبه 16 تیر 1390, 10:00 صبح
مي توني در رويداد on exit همه فيلدهاي شماره (num) كدي به شكل زير بنويسي:


If DLookup("num1", "sanad", "num1=" & Me.id) Then
MsgBox "شماره تكراري است"
Cancel = True
End If

baran_m
پنج شنبه 16 تیر 1390, 10:39 صبح
متشکرم از راهنماییتون اما یه سوال:
فکر میکنم این کدی شما نوشتید هر سلول رو فقط با خودش چک میکنه اما من میخوام کل شماره سندهایی که نوشته میشه تکراری نباشه مثلا اگر num1=101 چک کنه که تا حالا 101 رو در هیچ سلولی از شماره سندها نزده باشه مثلا در num2 تا num15 هم چک بشه که این مقدار نباشه

ARData
پنج شنبه 16 تیر 1390, 10:57 صبح
دوست عزيز فايل شما کلا اصلاح شد ولي سعي کنيد از سابفرم ها هم استفاده نماييد . اينطوري که شما فرم رو ايجاد کرده ايد ظاهرش زيباست ولي گزارش گيري و ارتباطات جداول همه دچار مشکل ميشن .... هر سوالي هم در اين فايل داشتين دريغ نکنيد .
http://ardata.persiangig.com/123%20Revision.rar

baran_m
پنج شنبه 16 تیر 1390, 11:21 صبح
دوست عزيز فايل شما کلا اصلاح شد ولي سعي کنيد از سابفرم ها هم استفاده نماييد . اينطوري که شما فرم رو ايجاد کرده ايد ظاهرش زيباست ولي گزارش گيري و ارتباطات جداول همه دچار مشکل ميشن .... هر سوالي هم در اين فايل داشتين دريغ نکنيد .
http://ardata.persiangig.com/123%20Revision.rar

متشکرم اما این فایلی که تغییر دادید با فایل من فرق داره مثلا اون شماره سند ها باید توسط کاربر نوشته بشه که شما بالای فرم یک شماره سند گذاشتید و برای همه همون سند نوشته شده
فرم باید طوری باشه که برای هر هزینه یک شماره سند درج بشه و تمام سطرها شماره سندهای متفاوت دارند
ممنون که روی فایلم وقت گذاشتید

انگوران
پنج شنبه 16 تیر 1390, 11:54 صبح
مي تونيد كد رو به شكل زير تغيير بدين .

For I = 1 To 15
If DLookup("num" & I, "sanad", "num" & I & "='" & Me.num1.Value & "'") Then
MsgBox "شماره تكراري است"
Cancel = True
End If
Next
البته فايل يه كم دستكاري شد مثلاً همه num ها از نوع text بود جز اولي كه اونم text شد و روي فرم هم نام كنترل كد از num1 تا num15 تغيير يافت.

baran_m
پنج شنبه 16 تیر 1390, 12:51 عصر
مي تونيد كد رو به شكل زير تغيير بدين .

For I = 1 To 15
If DLookup("num" & I, "sanad", "num" & I & "='" & Me.num1.Value & "'") Then
MsgBox "شماره تكراري است"
Cancel = True
End If
Next
البته فايل يه كم دستكاري شد مثلاً همه num ها از نوع text بود جز اولي كه اونم text شد و روي فرم هم نام كنترل كد از num1 تا num15 تغيير يافت.

متشکرم دوست عزیز اما شما عدم تکراری بودن رو روی فیلد اول یعنی کد هزینه اعمال کردید در صورتی که باید روی فیلد سوم یهنی شماره سند اعمال بشه
میشه لطف کنید دستور Dlookup رو یک توضیح مختصر بدید تا تغییرات رو اعمال کنم؟

baran_m
پنج شنبه 16 تیر 1390, 13:23 عصر
دوست عزیز یک مشکل دیگه هم پیش میاد
زمانی که به رکوردهای قبلی برمیگردیم برای موارد قبلی هم این مورد رو چک میکنه و میگه تکراریه مثلا اگه رکورد اول 101 ثبت شده دوم 102 ، زمانی که به کورد اول برمیگردیم برای شماره 101 پیغام تکراری میده