نمایش نتایج 1 تا 12 از 12

نام تاپیک: جلوگیری از ورود رکورد تکراری در جدول

  1. #1

    Unhappy جلوگیری از ورود رکورد تکراری در جدول

    با سلام
    بنده یک فایل اکسس دارم و در جدول invoicetable1 دو فیلد (شماره فاکتور و نام شرکت/موسسه) که موقع ورود رکورد جدید می خوام این دو فیلد بررسی بشود و رکورد تکراری با اطلاعات این دو فیلد وارد نشود البته یک دستور روی افتر اپدیت شماره فاکتور گذاشتم اما درست کار نمیکنه

    متاسفانه فایل اپلود نشد

    https://drive.google.com/file/d/1ZpP...usp=drive_link لینک دانلود

    ممنون میشم کمکم کنید.
    سپاس

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: جلوگیری از ورود رکورد تکراری در جدول

    سلام و روز خوش

    من فایل شما رو ندیدم،
    ولی بهتر هست ساختار جدول و کد رو همینجا بگذارین،
    و مشخص کنین فرم شما bound هست یا unbound ؟
    شاید اصلا نیازی به پیوست کل برنامه نباشه.

    و این که رخداد before update/before insert رو استفاده کنین.

  3. #3

    نقل قول: جلوگیری از ورود رکورد تکراری در جدول

    سلام
    بنده این کد رو در افتر اپدیت فیلد شماره فاکتور گذاشتم
    بله فرم باند شده است


    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

  4. #4
    کاربر دائمی
    تاریخ عضویت
    آذر 1384
    محل زندگی
    هر کجا هستم باشم آسمان مال من است پنجره -فکر- هوا- عشق- زمین مال من است.
    پست
    997

    نقل قول: جلوگیری از ورود رکورد تکراری در جدول

    درخداد before update/before insert باید قرار بدین
    If IsNull(Duplicate) Then

    Else

    MsgBox " اين شماره صورت وضعيت قبلا وارد شده است ."

    Cancel = True

    End If

  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: جلوگیری از ورود رکورد تکراری در جدول

    نقل قول نوشته شده توسط 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)

  6. #6

    نقل قول: جلوگیری از ورود رکورد تکراری در جدول

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

    متاسفانه کد رو جایگذاری کردم اما خروجی نداد
    ممنون میشم روی فایل واسم انجام بدید و فایل رو بارگذاری کنید
    بازم سپاس فراوان
    آخرین ویرایش به وسیله moradi.j : سه شنبه 17 مهر 1403 در 12:58 عصر

  7. #7

    نقل قول: جلوگیری از ورود رکورد تکراری در جدول

    سلام
    فایل پروژه
    فایل های ضمیمه فایل های ضمیمه

  8. #8
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    سن
    59
    پست
    1,081

    نقل قول: جلوگیری از ورود رکورد تکراری در جدول

    نقل قول نوشته شده توسط 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 هر دو فیلد باید وارد بشه ( در یکی وارد بشه در دیگری فراخوانی بشه)

  9. #9
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: جلوگیری از ورود رکورد تکراری در جدول

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    با توجه به اینکه شرط باید برای هر دو فیلد invoice_no و company_name برقرار باشه این کد ها باید در رویداد AfterUpdate هر دو فیلد باید وارد بشه ( در یکی وارد بشه در دیگری فراخوانی بشه)
    سلام جناب بهرامی و روز شما خوش

    نیازی نیست،
    و کلا این چک جاش همون before update بهتره،
    و undo فرم هم باید از کاربر پرسیده بشه - گاهی کافی هست یک ویرایش جزئی انجام بده و اینجوری همه رکورد رو باید دوباره تایپ کنه.

  10. #10

    نقل قول: جلوگیری از ورود رکورد تکراری در جدول

    سلام
    متاسفانه اکی نبود و خروجی نداد

  11. #11
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,684

    نقل قول: جلوگیری از ورود رکورد تکراری در جدول

    آخرین ویرایش به وسیله mazoolagh : چهارشنبه 18 مهر 1403 در 19:28 عصر

  12. #12
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    سن
    59
    پست
    1,081

    نقل قول: جلوگیری از ورود رکورد تکراری در جدول

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام جناب بهرامی و روز شما خوش

    نیازی نیست،
    و کلا این چک جاش همون before update بهتره،
    و undo فرم هم باید از کاربر پرسیده بشه - گاهی کافی هست یک ویرایش جزئی انجام بده و اینجوری همه رکورد رو باید دوباره تایپ کنه.
    عرض سلام متقابل خدمت جناب مازولاق عزیز !
    فرمایش شما کاملاً صحیحه ؛ ولی در اینجا با توجه به اینکه استارتر محترم در نمونه ای که ضمیمه کرده ان کدها رو در رویداد AfterUpdate فیلد مربوطه بکار برده ان به همین خاطر خروجی کدها رو در رویداد before update امتحان نکردم

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •