شایان اذر
11 ماه پیش
پاسخ
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 "ÇØáÇÚÇÊ ÈÇ ãæÝÞíÊ ËÈÊ ÔÏ"
ویرایش شده توسط علی محمد یاوری (ادمین) در 11 ماه پیش
گزارش تخلف
سؤالات مربوط به اکسس
برو به
به پشتیبانی نیاز داری؟
در صورتی که
- در کار با بتازون مشکلی دارید
- در مورد خدمات بتازون سؤالی دارید
- نظراتی را برای ارتقا و بهبود خدمات دارید
خوشحال میشیم که حتماً با ما در میان بزارید
شایان اذر
11 ماه پیش
دوستان هرکسی میتونه یه نگاه به کد نویسی یفرم ورود بندازه ببینه میشه چند ارور رو همزمان هندل کرد با شماره ارور مربوطه
فایل به پیوست ارسال شد
خیلی کاربردیه این بحث error handeling
سپاس از اساتید
فایلها
ویرایش شده توسط شایان اذر در 11 ماه پیش
گزارش تخلف
وحید حسین پور
11 ماه پیش
با درود
برای همزمان فارسی سازی خطاها در کد 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، به ادامه اجرای کد خود باز میگردیم.
امیدوارم که مفید واقع بشه
گزارش تخلف