PDA

View Full Version : سوال: محدوديت در تعداد ثبت ركورد



saeed razaee
چهارشنبه 31 تیر 1394, 14:48 عصر
سلام من مي خواهم كاربر در يك فرم بيشتر از مثلاً 10 ركورد نتواند ثبت كند قبلاً كدش را داشتم و توي تالار هم خيلي جستجو كردم پيدا نكردم لطفا راهنمايي كنيد.

saeed1234n
چهارشنبه 31 تیر 1394, 17:11 عصر
با سلام

دوست عزير در رويداد on current‌فرم بنويسيد




If Me.NewRecord = True And Me.RecordsetClone.RecordCount = 10 Then
MsgBox "مجاز به افزودن ركورد جديد نيستيد", vbCritical, "اخطار"
Me.Form.AllowAdditions = False
Else
Me.Form.AllowAdditions = True
End If




يا مي توانيد از كد زير استفاده كنيد :





Dim intMaxNumRecs as Integer

intMaxNumRecs = 10 'Max Number of Records to Allow

If Me.NewRecord Then
With Me.RecordsetClone
If .RecordCount > 0 Then
.MoveLast: .MoveFirst
If .RecordCount >= intMaxNumRecs Then
MsgBox "مجاز به افزودن ركورد جديد نيستيد "
.MoveLast
Me.Bookmark = .Bookmark
End If
End If
End With
End If




البته راه هاي ديگري نيز وجود دارد .

saeed razaee
سه شنبه 19 آبان 1394, 09:59 صبح
با سلام دوستان عزيز من از كدهاي فوق استفاده كردم اما جواب نمي دهد لطفا راهنمايي نماييد.براي اينكه كاربر را در ثبت ركوردها محدود كنم چه كدي بنويسم . با تشكر

Rasool-GH
سه شنبه 19 آبان 1394, 12:15 عصر
کدها درست هستند . تنظیمات مربوط به اجرا شدن ماکرو ها و کدها رو فعال کنید

najafi87
پنج شنبه 21 آبان 1394, 07:29 صبح
Dim reccount AS Integer
Me.AllowAdditions = False
reccount = Me.CurrentRecord
If reccount > 6 Then
msg = DLookup("msgdes", "MSGFR", "msgid = '4'")
Result = MsgBox(msg, vbQuestion + vbYesNo + vbMsgBoxRight, "ÊæÌå")

If Result = vbYes Then
Me.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec
else
endif
در کد بالا اگه تعداد بیش از 6 ایتم باشد پیغام خواد داد و اگه کاربر تایید کند رکورد جدید اضافه خواهد شد.
شما میتونید این کد رو در اخرین فیلدی که بعد از اپدیت شدن ان رکورد جدید را ایجاد میکند بنویسید.
ضمن اینکه باید جلو ایجاد خودکار رکورد جدید رو بگیری