ورود

View Full Version : جستجو در بانک با حذف پیشوند



unforgiven
یک شنبه 30 بهمن 1390, 16:29 عصر
سلام به همگی
من داخل جدولم فیلدی دارم که دیتا تایپ اون string هست و در اون کد شناسایی دانش آموزی رو با پیشوندی مانند زیر ذخیره می کنم:
M0001
M0002
و
....
می خوام اپراتور برای کار با شماره دانش آموزی کارش ساده باشه و با نوشتن فقط 0001 بدون درج M اولیه بتونه اطلاعات مربوط به دانش آموز رو ببینه .
من از کد زیر استفاده می کنم ولی جواب نمیده در واقع من اون M رو به صورت توکار استفاده می کنم و ضمیمه دستور Find می کنم .


rslog.Open "SELECT * FROM student ", db, adOpenDynamic, adLockOptimistic
rslog.MoveFirst
rslog.Find "std_id='" &"M" & txtfind.Text & "'"

Do While Not rslog.EOF
If txtfind.Text = rslog.Fields("std_id") Then
txtname.Text = rslog.Fields("f_name")
txtlname.Text = rslog.Fields("l_name")
Exit Do
Else
rslog.MoveNext
End If
Loop

نکته همون استفاده از Find هست و گرنه با یک سلکت و استفاده از پارامتر Like % میشه این کار رو انجام داد .
راه حل این مشکل به نظر شما چی هست ؟
ممنون میشم راهنمایی بفرمایید .

unforgiven
یک شنبه 30 بهمن 1390, 22:30 عصر
اساتید سایت
لطفا راهنمایی بفرمایید . یعنی سوال من اینقدر سخته ؟

ASedJavad
دوشنبه 01 اسفند 1390, 08:07 صبح
اگه برات ممکنه پروژت رو به همراه یه تیکه از دیتابیست بذار ببینیم چه میشه کرد!

unforgiven
دوشنبه 01 اسفند 1390, 11:46 صبح
سلام
پروژه اصلی رو که به دلایلی نمی تونم اینجا بزارم ولی یه نمونه ضمیمه کردم . لطفا یه نگاه بهش بندازید و در صورت امکان تصحیش کنید .
متشکرم

ASedJavad
دوشنبه 01 اسفند 1390, 13:10 عصر
یه اشتباه خیلی کوچولو:
اون خطی رو که تو نمونه کدت، غیر فعال کردی به خط زیر تغییر بده:
If "M" & txtfind.Text = rslog.Fields("std_id") Then

حالا یه سوال:
بهتر نیست شما از متد find خود شیئت استفاده کنی؟

unforgiven
دوشنبه 01 اسفند 1390, 15:19 عصر
سلام آ سد جواد
ممنون از اینکه کد رو اصلاح کردید ولی من در ضمیمه قبلی فراموش کرده بودم متد فایند رو هم داخل کد اضافه کنم . با افزودن متد فایند به کد باز نتیجه حاصل نشد .
اینم ضمیمه جدید
اگه زحمتی نیست این رو هم اصلاح کنید .

ASedJavad
دوشنبه 01 اسفند 1390, 19:31 عصر
سلام
خب اینم همونه دیگه:
rslog.Find "std_id='" & "M" & Trim(txtfind.Text) & "'"
بعدش هم دیگه نیازی به حلقه do و شرط if نیست
فقط یه on error resume next هم بذارید که ارور رو بگیره

unforgiven
دوشنبه 01 اسفند 1390, 23:43 عصر
سلام
این کد که شما پیشنهاد دادید رو تو پست اولم استفاده کرده بودم ولی ارور میداد که با پیشنهاد شما و نوشتن On error مشکل بر طرف میشه . بجای گذاشتن On error راه منطقی تری وجود داره ؟
در مورد حلقه هم باید بگم چون تو این قسمت قراره کارهای دیگری هم انجام بشه از اون استفاده می کنم, تو کد اصلی برنامم موجود بود و یادم رفته بود ریمارکش کنم .
ممنون از توجه شما