من با on error امتحان کردم پیغام، فارسی میشه اما بعدش دوباره پیغام انگلیسی ظاهر میشه !!!!!!!؟
چیکار باید بکنم؟
من با on error امتحان کردم پیغام، فارسی میشه اما بعدش دوباره پیغام انگلیسی ظاهر میشه !!!!!!!؟
چیکار باید بکنم؟
من کد زیر را برای موارد تکراری استفاده کردم و این اشکال را ندیدم .
لطفا بیشتر توضیح دهیدIf DataErr = 3022 Then
MsgBox "اطلاعات وارده تکراری است";
Response = acDataErrContinue
End If
سلام
همانطور که دوست عزیزم سنبله کار گفته باید از کد بالا استفاده کنی. برای توضیح بیشتر به آدرسهای زیر مراجعه کن.
http://www.barnamenevis.org/viewtopic.php?t=17996
http://try.persianblog.com
:)
من اینکار رو کردم :(البته در قسمت گزارش )http://try.persianblog.com
2- اگر خطا مربوط به کدهایی باشد که خودمان در یک Sub نوشته ایم :
در این روش باید در ابتدای Sub با دستور : <اسم زیر روال کنترل خطا> On Error Goto ، کنترل خطا را به یک روال کنترل خطا ارجاع دهیم.
( تمام کدهایی که ویزارد Command Button بطور خودکار در رویداد OnClick دکمه ها ایجاد می کند نمونه خوبی برای این روش هستند. ضمنا در این روش بکمک Err.Number کد خطا شناسایی می شود )
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
On Error GoTo ERR
ERR:
Dim Str As String
Select Case ERR.Number
Case 94
Str = "هیچ فایلی انتخاب نشده !"
Case 9
Str = "فرمت فایل اتخاب شده قابل قبول نمی باشد ."
Case 53
Str = " در مسیر مشخص شده فایلی به این اسم وجود ندارد"
End Select
MsgBox Str
Response = acDataErrContinue
جای Dataerr از Err.number استفاده کردم چون جواب نمیداد
مشکلی که الان دارم اینه :
1- وقتی خطا اتفاق میفته اول یه پیغام خالی میده بعد پیغام فارسی مربوطه بعد هم پیغام انگلیسی ...!!!!!!!!!!!!!!!!!!
اکنون نیازمند یاری .........
به روشی که شما استفاده میکنید error هندلر گفته میشه پیغام انگلیسی که دوستمون ازش صحبت کردن مربوط به erornumber دیگه ای هستش شما باید اول حتما error number رو بدشت بیارید وسپس پیغام فارسی براش نشون بدین مانند روشی که شاپرک جان عنوان کردن ولی برای نمایش تکراری بودن یک رکورد بهتره تو befor update مربوط به فیلدی که نمی خواهید تکرار بشود از دستور dlookup استفاده کنین که در صورت تکراری بودن responce روکنسل کنین
آخرین ویرایش به وسیله sarami : سه شنبه 01 شهریور 1384 در 21:46 عصر
منی که نام شراب از کتاب می شستم
زمانه کاتب دکان می فروشم کرد.
ولی من هنوز متوجه نشدم که چیکار باید بکنم؟
با یه تیر دو نشون میزنید آقای sarami
پس جواب من چی میشه؟
حل شد :
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
On Error GoTo Err
Err:
Dim Str As String
Select Case ERR.Number
Case 94
Str = "هیچ فایلی انتخاب نشده !"
Exit sub
Case 9
Str = "فرمت فایل اتخاب شده قابل قبول نمی باشد ."
Exit sub
Case 53
Str = " در مسیر مشخص شده فایلی به این اسم وجود ندارد"
Exit sub
End Select
MsgBox Str
آخرین ویرایش به وسیله شاپرک : شنبه 05 شهریور 1384 در 07:24 صبح دلیل: راهنمایی آقای Sarami
شاپرک جان به این تاپیک یه سر بزنین فایل نمونه برای همه دوستانی که این مشکل رو دارن گذاشتم
http://www.barnamenevis.org/sh...d=1#post139996
منی که نام شراب از کتاب می شستم
زمانه کاتب دکان می فروشم کرد.
شاپرک جان دیدم اینجا این همه if استفاده کردی گفتم یه موردی هم عنوان کنم بد نیست بهتره به جای این همه if از دستور select استفاده کنی تا برنامت مفهوم باشه
منی که نام شراب از کتاب می شستم
زمانه کاتب دکان می فروشم کرد.
دوست عزیزم شاپرک جان سلام وخسته نباشید
برای اینکه اکسس هنگام کار بر روی یک فرم وموقع رخ دادن خطا هیچ گونه پیغام خطایی نمایش ندهد
البته فقط پیغام اکسس
شما فقط کافیست در گزینه on error مربوط به فرم کد زیر را بنویسید
Response = 0
برنامه را اجرا نموده و نتیجه را مشاهده نمائید اگر جواب گرفتی لطفاً اطلاع بده دوستدارت lafot
واقعا ممنونم از موقعیکه من این سوال رو پرسیده بودم کسی نتونسته بود جوابی رو که می خواستم بده (این همونیه که می خواستم) از بقیه دوستان هم ممنونم
دیدم این دوستمون هم نوشتهکه چی کار کنید واسه همین الکی یه چیزی سند کردم
دوستان سلام ـ تو اکسس میشه پیغامهائی که بر اثر خطا بوجود می آیند را کنترل کرد و پیغام فارسی معادل رو نوشت و پس از اون با response=0 جلوی پیغام اکسس را نیز گرفت آیا می شه پیامی را که خطا محسوب نمی شود و جهت اطلاع صادر می شود را کنترل کرد . مثلاً پیغامی که اعلام می کند جدولی بااین نام وجود دارد آیا برای جایگزین کردن مطمئن هستید . با تشکر
من برای فارسی کردن پیغام ها فعلان از این روش ایتفاده مکنم و تا حلا جواب داند متونی امتحان کنی متلا برای اینکه بکاربر بگویم اطلاعات موردنظر وجود ندارد بدین صورت
Response = acDataErrContinue
MsgBox ". یوزنیم وارد شده موجود نمیباشد", , "خطا در ورود اطلاعات (مبتکران)"
Me.uoser = ""
البته از چپ به راست جون اینجا فکنم اشتباه کپی شوده باشه
متاسفانه جواب نداد - مجدداً تاکید می کنم این پیغام بر اثر خطا صادر نمی شود بلکه جهت اطلاع می باشد .
نمونه برنامه بزار تا بینیم چکار متونیم برات بکنیم
احتیاج به نمونه برنامه نیست میدونین مثلاً وقتی دارید یک رکورد رو پاک میکنید ازتون میپرسه که مطمئن هستید یا نه این مثلا یه نمونه بود
من کاری که میکنم مثلاً پشت دکمه delete
docmd.SetWarnings false
msgbox"فارسی"
.
.
docmd.SetWarnings true
با سلام و خسته نباشید
هنگامیکه مقدار یک فیلد کلید دو بار تکرار شود سیستم ایراد میگرد که این فیلد کلید است و نمیتواند مقدار تکراری بگیرد .(( index or primary key cannot contain a null value)) چگونه میتوان این پیغام را حذف و بجای آن از یک پیغام فارسی استفاده نمود.
با تشکر از همه دوستان
در رویداد on error فرم باید با کنترل خطا پیغامهای دلخواه رو بنویسید البته در کد زیر با کیسهای مختلف می تونین خطاهای مختلف رو کنترل کنین .
Select Case DataErr
Case 3022
msgbox("رکورد تکراری است")
Cancel = True
Response = 0
End Select
در ضمن اگه در رویدارد on error فرم بنویسید msgbox dataerr می تونین شماره خطاهای مختلف رو پیدا کنین
Private Sub Cmd_Hazf_Click()
On Error GoTo Err_cmd_hazf_Click
DoCmd.SetWarnings False
If MsgBox("آیا مورد انتخابی حذف شود", vbYesNo + vbCritical + vbDefaultButton2, "حذف رکورد") = vbNo Then
Exit Sub
Else
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
End If
Exit_cmd_hazf_Click:
Exit Sub
Err_cmd_hazf_Click:
MsgBox err.Description
Resume Exit_cmd_hazf_Click
End Sub