PDA

View Full Version : سوال: مشکل در استفاده از primary key در اکسس



mohammad.tanoomand
یک شنبه 22 اردیبهشت 1387, 20:00 عصر
من برنامه رو نوشتم موقعی که اطلاعات ثبت بشه و فیلد ی که کلید خورده تکراری باشه ویژوال بیسیک با یک خطا بسته می شه من نمی دونم این رو چطوری رد کنم و هشدار مناسب رو به کاربر بدم که این داده شما تکراری است.
پایگاه داده من اکسس+ vb6 و dao می باشد خواهشمندم من رو راهنمایی کنید

ali_habibi1384
یک شنبه 22 اردیبهشت 1387, 22:46 عصر
قبل از ثبت بانکت رو نثبت به عدد داده شده فیلتر کن ببین تکراریه یا نه.

vbhamed
دوشنبه 23 اردیبهشت 1387, 02:42 صبح
سلام

اين دستور رو اول روالتون بزاريد تا اگر خطايي پيش اومد رد بشه و از برنامه خارج نشه

On Error Resume Next

بعد از اجراي دستور چك كنيد ببينيد متغير Err برابر 0 هست يا نه
اگر نباشه يعني خطا رخ داده، اونموقع با توجه به مقداري كه Err داره ميشه فهميد خطا از كجاست
ضمنا Err يك متغير كلاسي هست كه از قبل در وي بي تعريف شده
مي تونيد با Err.Description خود پيام خطا رو هم ببينيد

ali_habibi1384
دوشنبه 23 اردیبهشت 1387, 11:40 صبح
سلام

اين دستور رو اول روالتون بزاريد تا اگر خطايي پيش اومد رد بشه و از برنامه خارج نشه

On Error Resume Next

بعد از اجراي دستور چك كنيد ببينيد متغير Err برابر 0 هست يا نه
اگر نباشه يعني خطا رخ داده، اونموقع با توجه به مقداري كه Err داره ميشه فهميد خطا از كجاست
ضمنا Err يك متغير كلاسي هست كه از قبل در وي بي تعريف شده
مي تونيد با Err.Description خود پيام خطا رو هم ببينيد
روشتون کارا هست اما گویا نیست . بعنوان مثال ممکنه خطا در اثر بروز اشتباه های دیگر رخ بده و ما به اشتباه اونو نشون می دیم . مثلا خطا در نوع داده ها بجای عدد کاراکتر وارد بشه!

vbhamed
دوشنبه 23 اردیبهشت 1387, 14:30 عصر
سلام

اين دستور رو اول روالتون بزاريد تا اگر خطايي پيش اومد رد بشه و از برنامه خارج نشه

On Error Resume Next

بعد از اجراي دستور چك كنيد ببينيد متغير Err برابر 0 هست يا نه
اگر نباشه يعني خطا رخ داده، اونموقع با توجه به مقداري كه Err داره ميشه فهميد خطا از كجاست
ضمنا Err يك متغير كلاسي هست كه از قبل در وي بي تعريف شده
مي تونيد با Err.Description خود پيام خطا رو هم ببينيد


جناب حبيبي عزيز
نقل قول بالا رو ببينيد

mohammad.tanoomand
دوشنبه 23 اردیبهشت 1387, 17:18 عصر
اقا من متوجه نشدم اگه امکان داره واضح تر لطف کنید
اگه بامثال باشه ممنون می شم مرسی

می شه که از شماره errorپیغام مناسب رو بده مثلا error این مشکل شمارش 3022 هست

ali_habibi1384
دوشنبه 23 اردیبهشت 1387, 20:30 عصر
جناب حبيبي عزيز
نقل قول بالا رو ببينيد
مشخصه که شما کلا منظورم رو نگرفتید .
چنانچه مقدار ورودی با نوع تعریف شده یکسان نباشه و یا کلید اصلی تکراری باشه در هر دو حالت یک خطا از پایگاه داده گزارش می شه.
البته در بعضی از حالتها ممکنه اصلا شماره خطایی گزارش داده نشه که ما بخواهیم روی اون مانور انجام بدیم.

ali_habibi1384
دوشنبه 23 اردیبهشت 1387, 20:36 عصر
اقا من متوجه نشدم اگه امکان داره واضح تر لطف کنید
اگه بامثال باشه ممنون می شم مرسی

می شه که از شماره errorپیغام مناسب رو بده مثلا error این مشکل شمارش 3022 هست
منظور دوستمون برای نمونه شما اینه:


on error goto ex_er
.
.
.
ex_er:
if err.number=3022 then
msgbox "kod tekrarist"
err.clear

vbhamed
سه شنبه 24 اردیبهشت 1387, 01:14 صبح
مشخصه که شما کلا منظورم رو نگرفتید .
چنانچه مقدار ورودی با نوع تعریف شده یکسان نباشه و یا کلید اصلی تکراری باشه در هر دو حالت یک خطا از پایگاه داده گزارش می شه.
البته در بعضی از حالتها ممکنه اصلا شماره خطایی گزارش داده نشه که ما بخواهیم روی اون مانور انجام بدیم.



سلام
خب منظور منم همينه كه شماره خطا رو چك كنيد ديگه
ضمنا من نديدم تاحالا خطايي پيش بياد و شماره خطا داده نشه


On Error Resume Next
.
.
.
If Err = 3022 then
...
End If

ali_habibi1384
پنج شنبه 26 اردیبهشت 1387, 17:29 عصر
خطاهای مربوط به رعایت نکردن قوانین پایگاه داده کد خطاهای غیر قابل استفاده تولید می کنن مثلا همچین چیزی:
!Runtime error 223423435

mohammad.tanoomand
جمعه 27 اردیبهشت 1387, 14:21 عصر
آقا مشکل من با همین شماره کد ها حل شد دست گلتون درد نکنه