جلوگیری از ورود رکورد تکراری در جدول
با سلام
بنده یک فایل اکسس دارم و در جدول invoicetable1 دو فیلد (شماره فاکتور و نام شرکت/موسسه) که موقع ورود رکورد جدید می خوام این دو فیلد بررسی بشود و رکورد تکراری با اطلاعات این دو فیلد وارد نشود البته یک دستور روی افتر اپدیت شماره فاکتور گذاشتم اما درست کار نمیکنه
متاسفانه فایل اپلود نشد
https://drive.google.com/file/d/1ZpP...usp=drive_link لینک دانلود
ممنون میشم کمکم کنید.
سپاس
نقل قول: جلوگیری از ورود رکورد تکراری در جدول
سلام و روز خوش
من فایل شما رو ندیدم،
ولی بهتر هست ساختار جدول و کد رو همینجا بگذارین،
و مشخص کنین فرم شما bound هست یا unbound ؟
شاید اصلا نیازی به پیوست کل برنامه نباشه.
و این که رخداد before update/before insert رو استفاده کنین.
نقل قول: جلوگیری از ورود رکورد تکراری در جدول
سلام
بنده این کد رو در افتر اپدیت فیلد شماره فاکتور گذاشتم
بله فرم باند شده است
Private Sub invoice_no_AfterUpdate()
Dim Newbook, Newf_name As String
Dim myCriteria As Strin
Newf_name = Me.company_name.Value
Newbook = Me.invoice_no.Value
myCriteria = "[ invoice_no] = " & "'" & Newbook & "' and [company_name] = " & "'" & Newf_name & "'"
If Me.invoice_no = DLookup("[invoice_no]", "invoicetable1", myCriteria) Then
MsgBox "اين فاکتور با شماره " & " " & Newbook & " " & "با نام شرکت/موسسه " & Newf_name _
& vbCr & "در حال حاضر در پايگاه داده ثبت شده است " & vbCr & "لطفا دوباره بررسي نماييد.", vbInformation, "اطلاعات تکراري"
Me.Undo
End If
End Sub
نقل قول: جلوگیری از ورود رکورد تکراری در جدول
درخداد before update/before insert باید قرار بدین
If IsNull(Duplicate) Then
Else
MsgBox " اين شماره صورت وضعيت قبلا وارد شده است ."
Cancel = True
End If
نقل قول: جلوگیری از ورود رکورد تکراری در جدول
نقل قول:
نوشته شده توسط
moradi.j
بله فرم باند شده است
Private Sub invoice_no_AfterUpdate()
Dim Newbook, Newf_name As String
Dim myCriteria As Strin
Newf_name = Me.company_name.Value
Newbook = Me.invoice_no.Value
myCriteria = "[ invoice_no] = " & "'" & Newbook & "' and [company_name] = " & "'" & Newf_name & "'"
If Me.invoice_no = DLookup("[invoice_no]", "invoicetable1", myCriteria) Then
MsgBox "اين فاکتور با شماره " & " " & Newbook & " " & "با نام شرکت/موسسه " & Newf_name _
& vbCr & "در حال حاضر در پايگاه داده ثبت شده است " & vbCr & "لطفا دوباره بررسي نماييد.", vbInformation, "اطلاعات تکراري"
Me.Undo
End If
End Sub
سلام دوباره
باید در beforeupdate باشه؛
و بجای undo کردن فرم، cancel رو برابر true بذارین.
روش دیگه تعریف constraint روی فیلدهایی هست که باید یکتا باشن،
و کپچر کردن خطا در فرم.
و همچنین میتونین از datamacro هم استفاده کنین.
این تاپیک رو هم بخونین:
آموزش: جلوگیری از ورود داده تکراری در اکسس + نمایش پیغام خطا (barnamenevis.org)
نقل قول: جلوگیری از ورود رکورد تکراری در جدول
با سلام و تشکر فراوان از اینکه وقتتون رو در اختیار بنده قرار دادید
متاسفانه کد رو جایگذاری کردم اما خروجی نداد
ممنون میشم روی فایل واسم انجام بدید و فایل رو بارگذاری کنید
بازم سپاس فراوان
1 ضمیمه
نقل قول: جلوگیری از ورود رکورد تکراری در جدول
نقل قول: جلوگیری از ورود رکورد تکراری در جدول
نقل قول:
نوشته شده توسط
moradi.j
با سلام و تشکر فراوان از اینکه وقتتون رو در اختیار بنده قرار دادید
متاسفانه کد رو جایگذاری کردم اما خروجی نداد
ممنون میشم روی فایل واسم انجام بدید و فایل رو بارگذاری کنید
بازم سپاس فراوان
سلام
کدهای زیر رو هم امتحان کن !
Private Sub invoice_no_AfterUpdate()
If Not IsNull(invoice_no) And Not IsNull(company_name) Then
If DCount("*", "invoicetable1", "invoice_no='" & invoice_no & "' and company_name=" & Me.company_name.Column(0) & "") > 0 Then
MsgBox "اين فاکتور با شماره " & " " & invoice_no & " " & "با نام شرکت/موسسه " & Me.company_name.Column(1) _
& vbCr & "در حال حاضر در پايگاه داده ثبت شده است " & vbCr & "! لطفا دوباره بررسي نماييد", vbInformation, "اطلاعات تکراري"
Me.Undo
End If
End If
End Sub
ضمناً با توجه به اینکه شرط باید برای هر دو فیلد invoice_no و company_name برقرار باشه این کد ها باید در رویداد AfterUpdate هر دو فیلد باید وارد بشه ( در یکی وارد بشه در دیگری فراخوانی بشه)
نقل قول: جلوگیری از ورود رکورد تکراری در جدول
نقل قول:
نوشته شده توسط
eb_1345
با توجه به اینکه شرط باید برای هر دو فیلد invoice_no و company_name برقرار باشه این کد ها باید در رویداد AfterUpdate هر دو فیلد باید وارد بشه ( در یکی وارد بشه در دیگری فراخوانی بشه)
سلام جناب بهرامی و روز شما خوش
نیازی نیست،
و کلا این چک جاش همون before update بهتره،
و undo فرم هم باید از کاربر پرسیده بشه - گاهی کافی هست یک ویرایش جزئی انجام بده و اینجوری همه رکورد رو باید دوباره تایپ کنه.
نقل قول: جلوگیری از ورود رکورد تکراری در جدول
سلام
متاسفانه اکی نبود و خروجی نداد:ناراحت::ناراحت:
نقل قول: جلوگیری از ورود رکورد تکراری در جدول
نقل قول: جلوگیری از ورود رکورد تکراری در جدول
نقل قول:
نوشته شده توسط
mazoolagh
سلام جناب بهرامی و روز شما خوش
نیازی نیست،
و کلا این چک جاش همون before update بهتره،
و undo فرم هم باید از کاربر پرسیده بشه - گاهی کافی هست یک ویرایش جزئی انجام بده و اینجوری همه رکورد رو باید دوباره تایپ کنه.
عرض سلام متقابل خدمت جناب مازولاق عزیز !
فرمایش شما کاملاً صحیحه ؛ ولی در اینجا با توجه به اینکه استارتر محترم در نمونه ای که ضمیمه کرده ان کدها رو در رویداد AfterUpdate فیلد مربوطه بکار برده ان به همین خاطر خروجی کدها رو در رویداد before update امتحان نکردم