PDA

View Full Version : سوال: چگونه پیغام you can't go to specified record را فارسی کنیم؟



bemilove
شنبه 11 تیر 1390, 11:42 صبح
you can't go to specified record یک ران تایم ارور 2105 می باشد اگر اشتباه نکنم..با مثال ها وتاپیک های موجود در سایت هم جواب نگرفتم؟.....ممنون می شوم راهنمایی بفرمایید چگونه این پیغام را فارسی نماییم.

mazoolagh
یک شنبه 12 تیر 1390, 22:45 عصر
در رخداد form_error :

IF DATAERR=2105 THEN
MSGBOX ("......")
RESPONSE=ACDATAERRCONTINUE
ENDIF

bemilove
یک شنبه 12 تیر 1390, 23:47 عصر
در رخداد form_error :

IF DATAERR=2105 THEN
MSGBOX ("......")
RESPONSE=ACDATAERRCONTINUE
ENDIF

متاسفانه جواب نداد

mma_ok
دوشنبه 13 تیر 1390, 09:57 صبح
اگر برای کلید های ایجاد شده در یک فرم بخواهید انجام دهید از روش زیر استفاده کنید
Private Sub Command4_Click()
On Error GoTo Err_Command4_Click


DoCmd.GoToRecord , , acNext

Exit_Command4_Click:
Exit Sub

Err_Command4_Click:
MsgBox Err.Description
Resume Exit_Command4_Click

End Sub
خط مشخص کننده واکنش err را به این صورت تغییر دهید
Private Sub Command4_Click()
On Error GoTo Err_Command4_Click


DoCmd.GoToRecord , , acNext

Exit_Command4_Click:
Exit Sub

Err_Command4_Click:
"متن مورد نظر برای پیغام " MsgBox
Resume Exit_Command4_Click

End Sub

ARData
دوشنبه 13 تیر 1390, 10:35 صبح
Private Sub CmdGoNext_Click()
On Error GoTo CmdGoNext_Click_Err
DoCmd.GoToRecord , "", acNext
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
End If


CmdGoNext_Click_Exit:
Exit Sub

CmdGoNext_Click_Err:
MsgBox ". رکورد بعدي براي رفتن وجود ندارد"

Resume CmdGoNext_Click_Exit

End Sub

Zero Defect
دوشنبه 13 تیر 1390, 18:54 عصر
سلام bemilove

ببخشید دوست من شما به جواب سئوالتون رسیدید ؟!

عین همین سئوال رو از دوستانمون mma_ok و ARData هم بپرسم :

شما فکر میکنید پاسخ هاتون صحیح هستش و در داخل اون یک خطای فاحش وجود نداره ؟

متاسفانه دست به دست هم دارید میدید که متوجه اشتباهات نشید !!!

دوست من ARData تشکر bemilove از شما ( با توجه به اینکه فقط از شما تشکر کردند ) منجر نشه که تصور کنید پاسخ شما درسته , دوست ندارم دچار خطاهای مشابه در آینده و توی کارهای خودتون بشید که دردسر ساز بشه براتون و متوجه هم نشید که مشکل کجاست ( چه قدر خوب میشه اگر اصلاحیه پاسختون رو خودتون بتوید بزنید با یه مقدار فکر و تحلیل بیشتر این امر به راحتی امکان پذیره , کد شما دچار خطای منطقی هستش )

موفق باشید

bemilove
دوشنبه 13 تیر 1390, 21:10 عصر
Private Sub CmdGoNext_Click()
On Error GoTo CmdGoNext_Click_Err
DoCmd.GoToRecord , "", acNext
If (MacroError <> 0) Then
Beep
MsgBox MacroError.Description, vbOKOnly, ""
End If


CmdGoNext_Click_Exit:
Exit Sub

CmdGoNext_Click_Err:
MsgBox ". رکورد بعدي براي رفتن وجود ندارد"

Resume CmdGoNext_Click_Exit

End Sub

من کد شما را روی دکمه next گذاشتم ..خطای خط 4 می دهد....و جواب نداد

bemilove
دوشنبه 13 تیر 1390, 21:14 عصر
سلام bemilove

ببخشید دوست من شما به جواب سئوالتون رسیدید ؟!

عین همین سئوال رو از دوستانمون mma_ok و ARData هم بپرسم :

شما فکر میکنید پاسخ هاتون صحیح هستش و در داخل اون یک خطای فاحش وجود نداره ؟

متاسفانه دست به دست هم دارید میدید که متوجه اشتباهات نشید !!!

دوست من ARData تشکر bemilove از شما ( با توجه به اینکه فقط از شما تشکر کردند ) منجر نشه که تصور کنید پاسخ شما درسته , دوست ندارم دچار خطاهای مشابه در آینده و توی کارهای خودتون بشید که دردسر ساز بشه براتون و متوجه هم نشید که مشکل کجاست ( چه قدر خوب میشه اگر اصلاحیه پاسختون رو خودتون بتوید بزنید با یه مقدار فکر و تحلیل بیشتر این امر به راحتی امکان پذیره , کد شما دچار خطای منطقی هستش )

موفق باشید

zero defect عزیز:اولا هنوز من به جوابم نرسیدم.بنده تا آنجا که علمم (سوات) می کشه و بتونم جوابی به یک سوال بدم خواهم داد.انسان هم جایز الخطاست (ما بیشتر)...خوشحال می شوم اشتباهات من را به من گوشزد نمایید...بازم از شما متشکرم.من هیچکدام از دوستان این فروم را نمی شناسم.

mazoolagh
دوشنبه 13 تیر 1390, 21:40 عصر
شما روی خط شماره یک (IF) یک breakpoint بگذارین و برنامه رو دیباگ کنین ببینین اصلا form error دارین یا نه؟
اگر بود که شماره خطا رو چک کنین شاید 2105 نیست.
اگر هم form error ندارین کدی رو که باعث خطا میشه اینجا بگذارین ...

Zero Defect
دوشنبه 13 تیر 1390, 22:54 عصر
سلام bemolive

جواب سئوالتون اینه

Private Sub cmdPrevious_Click()
On Error GoTo Err_cmdPrevious_Click


DoCmd.GoToRecord , , acPrevious


Exit_cmdPrevious_Click:
On Error Resume Next
Exit Sub

Err_cmdPrevious_Click:
Select Case Err.Number
Case 0
Resume Exit_cmdPrevious_Click:
Case 2105
MsgBox "Persian Message Here"
Resume Exit_cmdPrevious_Click:
Case Else
MsgBox Err.Number & " " & Err.Description, vbExclamation, "Error ..."
Resume Exit_cmdPrevious_Click:
End Select
End Sub

ضمن اینکه اگر فرضا اسم دکمه شما چیزی به غیر از cmdPrevious هستش ( موجود در داخل مثال حال حاضر ) یا باید اسم دکمه خودتون رو عوض کنید و یا نام اون رو در داخل کد به نام دکمه خودتون تغییر بدید

..............

تجربه چیز خوبیه که در خصوص شما اون رو کسب کردم , زیاد هم جالب نبود و مطمئنا تکرار هم نمیشه

ببخشید اگر به گونه ای رفتار کردم که شما تفسیرتون مقایسه سواد افراد با هم بوده , به هر حال شما تفسیر خودتون رو داشتید و بنده نیت خودم رو , قصد تغییر نظرتون رو هم ندارم

در مجموع موفق باشید

یا حق

.................................................. .......................

ARData و mma_ok عزیز , هیچ فکر نکرده بودید که اون پیغام به ازای تمامی خطاهای احتمالی , به نمایش در میاد و کلا کاری با خطای 2105 نداشت ( الان باز هم دوستی فکر میکنه صحبت سواد و ... هستش , نمیدونه من میخوام توجه شما رو به یک اشتباه منطقی/Logical جلب کنم که معمولا از عدم توجه ناشی میشه و نه از بیسوادی ! به هر حال ایشون تفسیرشون بدین گونه هستش )

mazoolagh دوست من , رویه شما بدین شیوه که درج فرمودید جوابگو نیست , چرا که صدور رویداد خطاهایی اینچنینی در On Errro فرم نیست برای همین هم راه حل شما پاسخگو نبود پس به دنبال حلقه مفقوده در این بخش نباشید

خطای 2105 مربوط به مواقعی هست که شما در داخل فرم با حرکت در بین رکوردها , به جایی برسید که رکوردقبلی/بعدی وجود نداشته باشه

موفق باشید

bemilove
دوشنبه 13 تیر 1390, 23:49 عصر
عالي بود zero defect....جواب داد .ممنون.....(با اجازه تون نمونه گذاشتم )

ARData
سه شنبه 14 تیر 1390, 09:07 صبح
من کد شما را روی دکمه next گذاشتم ..خطای خط 4 می دهد....و جواب نداد
شما منو به شک انداختين من کد رو باز نگري کردم دوست عزيز هيچ خطايي وجود نداره برنامه اکسسي که شما نصب کردين قلابيه !!!!

ARData
سه شنبه 14 تیر 1390, 09:27 صبح
Private Sub Command13_Click()
On Error Resume Next
DoCmd.GoToRecord , "", acNext
If Err.Number = 2105 Then
MsgBox "رکورد بعدي جهت پيمايش موجود نيست "
End If
End Sub

bemilove
سه شنبه 14 تیر 1390, 20:37 عصر
جناب اقای ARDATA بنده قصد جسارت به شما را ندارم..کد اخری شما در سیستم ما جواب داد.....لطف عالی زیاد (نمی خواهم موضوع کش دار شود والا تصویر خطاي كد قبلي شما را می گذاشتم).شايد هم اكسس ما مشكل داره!
************************************************** ***********************
نمونه کد اقای ARDATA ضمیمه می باشد.

Zero Defect
چهارشنبه 15 تیر 1390, 19:36 عصر
اين کد تست شده مي باشد لطفا روش اسم نگذاريد .

Private Sub Command13_Click()
On Error Resume Next
DoCmd.GoToRecord , "", acNext
If Err.Number = 2105 Then
MsgBox "رکورد بعدي جهت پيمايش موجود نيست "
End If
End Sub

سلام bemolive

کدشون مشکل داره , از این کد استفاده نکنید
bemolive , شما به دنبال مشکل این کد نباشید , شما کد کامل رو در اختیار دارید
کدی که اگر یک خط بهش اضافه بشه و کلا از کار بیفته که دیگه ...
متاسفانه ظاهرا ضعف عمومی خاصی در خصوص رویدادهای کنترل خطا وجود داره , مطلب کاملی در این خصوص درج خواهم کرد
یک جمله از پیتر نورتن بگم ( این جمله در مبحثی مرتبط با همین رویدادهای کنترل خطا بیان شده ) :
کاربران بسیار نادان تر از آنند که شما تصور میکنید

داره بدین نکته اشاره میکنه که خیلی از کاربرها در بسیاری مواقع نمیدونن دارن چه کار میکنن و همین امر منجر به بروز خطا در برنامه میشه و بر همین اساس برنامه نویس موظفه روالی مدون در خصوص کنترل خطاهای بالفعل و بالقوه , طراحی و اجرا کنه و ....

رویدادهای کنترل خطا پیچیده تر از اونی هستند که برنامه نویسی با سطح توان متوسط به پایین و بدون تحلیل فنی قادر به اجرای اون به صورتی اصولی باشه ( نمونه اون همین مشکل پیش اومده فعلی , این یک نمونه بدون تحلیل و صرفا یک کدنویسی بدون پشتوانه هستش )

اگر فاقد توان تحلیل و یا توان برنامه نویسی باشید در نهایت مشکل پیدا میکنید , شما به هر دوی اینها به صورت همزمان نیاز دارید

تا درج زمان اون مقاله ( البته در فروم شخصی ) بدرود

موفق باشید

ARData
پنج شنبه 16 تیر 1390, 08:03 صبح
اگه شما جواب صحيح رو بلديد بفرماييد

Zero Defect
پنج شنبه 16 تیر 1390, 15:02 عصر
سلام
جواب صحیح در پست شماره ده نوشته شده بود ولی شما از کنار اون گذشتید
نقص کدتون رو به قصد راهنمایی براتون شرح میدم , امیدوارم همه مشکلات شما حل بشه


Private Sub Command13_Click()
On Error Resume Next
DoCmd.GoToRecord , "", acNext
If Err.Number = 2105 Then
MsgBox "رکورد بعدي جهت پيمايش موجود نيست "
End If
End Sub

کد در حال حاضر هیچ خطایی رو به ظاهر از خودش نشون نمیده و نشون هم نخواهد داد , ولی تبصره ها رو میزنیم :

اگر خطایی به غیر از 2105 رخ بده کد شما قادر به کنترل رویداد خطا نیست چرا که شما تنها کد 2105 رو تحت کنترل گرفتید

حال اجازه بدید مشکل رو ایجاد کنیم

به قطع برنامه های شما که تک خطی نیستند , پس یک خط به برنامه شما اضافه میکنم و در داخل اون منجر به وقوع یک خطا هم میشیم ( تقسیم بر صفر )



Private Sub Command13_Click()
On Error Resume Next
DoCmd.GoToRecord , "", acNext
x = 5 / 0
If Err.Number = 2105 Then
MsgBox "رکورد بعدي جهت پيمايش موجود نيست "
End If
End Sub

کد رو اجرا کنید , دیگه هیچ خطایی به نمایش در نمیاد ( حتی خطای تقسیم بر صفر )