شایان  اذر
شایان اذر

7 ماه پیش

پاسخ

error handeling

باسلام من یک فرم ورودی رو دارم که با کد vba به دو جدول اصلی و فرعی مربوطه وصل میباشد .در صورت ورود اطلاعات تکرای و همچنین پر نکردن جدول یک پیغام debug رو برای هر خطا با شماره خطای مربوطه ب من میدهد .چطور میتوانم با استفاده از دستور on error goto myeer یا به تله انداختن خطاها همه ی خطا هایی که در فرم هست رو همزمان فارسی سازی کنم(همزمان) مثلا بگم ارور شماره 3124 مربوط به خطای تکرار ورود داده است و خطای مثلا 3021 مربوط به عدم ورود داده میباشد بصورت همزمان در کد خودم چجوری میشه بهینه سازیش کنم _

Private Sub Command28_Click()
Dim tav As Recordset
Set tav = CurrentDb.OpenRecordset("tbl_asli_bazdid_mashin")
tav.AddNew
tav!nameid = txt_nameid
tav!sherkat = txt_sherkat
tav!date = txt_date
tav!shomareh_bazdid = txt_shomareh_bazdid
tav.Update
tav.MoveLast

''کد مربوط به فیلد های اصلی که در اینجا خطای داده تکراری میده

Dim ft As Recordset
Set ft = CurrentDb.OpenRecordset("templ_tbl_bazdid_child_mashin")
Dim st As Recordset
Set st = CurrentDb.OpenRecordset("tbl_bazdid_child_mashin")
Do While ft.EOF = False
st.AddNew
st!date = ft!date
st!shomare_bazdid = ft!shomare_bazdid
st!personelid = ft!personelid
st!tasme = ft!tasme
st!pich_motor = ft!pich_motor
st!kopling = ft!kopling
st!girboks = ft!girboks
st!ballscrool = ft!ballscrool
st!pich = ft!pich
st!enkoder = ft!enkoder
st!pich_khatkesh = ft!pich_khatkesh
st!kabl_enkoder = ft!kabl_enkoder
st!roghankari_bastar = ft!roghankari_bastar
st!kabl_terminal = ft!kabl_terminal
st!cooler = ft!cooler
st!tamizkari_bargh = ft!tamizkari_bargh
st!sathe_roghan = ft!sathe_roghan
st!pomp_roghan = ft!pomp_roghan
st!alarm_roghan = ft!alarm_roghan
st!system_ab_sabon = ft!system_ab_sabon
st!zaman_bazdid = ft!zaman_bazdid
st!sharh_eghdamat = ft!sharh_eghdamat
st!sharh_bazdid = ft!sharh_bazdid
st!ghete_masrafi = ft!ghete_masrafi
st!vaziat = ft!vaziat
st!aslimid = tav!ID
st.Update
ft.MoveNext
Loop
ft.MoveFirst

''در اینجا اگه جدول فرعیمون رو پر نکرده باشیم خطای عدم ورود داده میده

Do While ft.EOF = False
ft.Delete
ft.MoveNext
Loop
DoCmd.Requery "templ_tbl_bazdid_child_mashin_subform"
txt_nameid = ""
txt_sherkat = ""
txt_date = ""
txt_shomareh_bazdid = ""
MsgBox "ÇØáÇÚÇÊ ÈÇ ãæÝÞíÊ ËÈÊ ÔÏ"

ویرایش شده توسط علی محمد یاوری (ادمین) در 7 ماه پیش

گزارش تخلف

سؤالات مربوط به اکسس

برو به

به پشتیبانی نیاز داری؟

در صورتی که

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

خوشحال میشیم که حتماً با ما در میان بزارید

شایان  اذر
شایان اذر

7 ماه پیش

دوستان هرکسی میتونه یه نگاه به کد نویسی یفرم ورود بندازه ببینه میشه چند ارور رو همزمان هندل کرد با شماره ارور مربوطه

فایل به پیوست ارسال شد

خیلی کاربردیه این بحث error handeling

سپاس از اساتید

فایل‌ها
فایل‌ها توسط کاربران بارگذاری شده و بتازون هیچ بررسی و مسئولیتی بر روی فایل‌ها ندارد.

ویرایش شده توسط شایان اذر در 7 ماه پیش

گزارش تخلف

وحید حسین پور
وحید حسین پور

7 ماه پیش

با درود

برای همزمان فارسی سازی خطاها در کد VBA اکسس، می‌توانید از دستور On Error استفاده کنید. با استفاده از این دستور، می‌توانید خطاهای مختلف را به صورت همزمان در یک پیغام نمایش دهید. برای این کار، می‌توانید کد زیر را به کد خود اضافه کنید:

On Error GoTo ErrorHandler

' کد خود را در اینجا قرار دهید

Exit Sub
ErrorHandler:
    Dim ErrNum As Long
    ErrNum = Err.Number
    Dim ErrDesc As String
    Select Case ErrNum
        Case 3124
            ErrDesc = "خطای تکرار ورود داده است"
        Case 3021
            ErrDesc = "خطای عدم ورود داده میباشد"
        ' دیگر خطاها را به همین صورت اضافه کنید
        Case Else
            ErrDesc = "خطای نامشخص"
    End Select
    MsgBox "Error " & ErrNum & ": " & ErrDesc, vbCritical, "خطا"
    Resume Next

در این کد، با استفاده از دستور On Error GoTo، به بخش ErrorHandler هدایت می‌شویم. در این بخش، با استفاده از دستور Err.Number، شماره خطای رخ داده را دریافت می‌کنیم و با استفاده از دستور Select Case، خطای مربوطه را شناسایی و پیغام مناسب را نمایش می‌دهیم. سپس با استفاده از دستور Resume Next، به ادامه اجرای کد خود باز می‌گردیم.

امیدوارم که مفید واقع بشه

گزارش تخلف

برو به

درباره ما

بتازون یک سایت نیست، یک خانواده است. یک محل برای همه ما، محلی که به هم کمک کنیم و با هم پیشرفت کنیم. این که الآن اینجایی اتفاقی نیست، خوشحالیم که بهمون ملحق شدی...