PDA

View Full Version : جستجو در دیتابیس با Adodc



demon_da
شنبه 10 آذر 1386, 16:38 عصر
سلام خدمت اساتید محترم
یه برنامه دفترچه آدرس کوچیک نوشتم که از بانک Access و کامپوننت Adodc استفاده می کنه از این کار.
مشکل من در قسمت جستجوی این برنامه هست! میدونم که تا حالا 1000 بار این موضوع مطرح شده ولی من هرچی سوال و جواب های قبلی رو گشتم نتونستم مشکلم رو حل کنم. مشکل اینجاست که میخوام بر اساس نام تو بانک جستجو کنم و بعد از پیدا کردن سطر اون رکورد بیام و بقیه اطلاعات اون سطر رو توی تکست باکس های (grid نمی خوام باشه) فرمم بریزم ولی هرچی از دستورات خود Adodc یا SQL استفاده می کنم یا خطا می گیرم و یا هیچ برنمیگردون برنامه! تکست باکس ها هم درست Bind شدن، تنظیمات Adodc هم درسته.
پروژه رو ضمیمه کردم (VB6 SP6).
هرکاری کردم نفهمیدم مشکلم از کجاست. میشه یه نگاهی به پروژم بندازید و بگید با توجه به نیاز من کجای کارم اشتباه بوده؟
این دستورات منه:

'db = ("SELECT * FROM Addrs WHERE Name='" & Text1.Text & "'")
'Recordset.Open db, Adodc1

یا

Adodc1.Recordset.Find "Name='" + Text1 + "'"

خیلی ممتون، منتظر جواب شما بزرگان هستم.

demon_da
شنبه 10 آذر 1386, 19:30 عصر
کسی از دوستان نظر خاصی نداره؟

مبین رنجبر
شنبه 10 آذر 1386, 20:25 عصر
اگر میخوای با دستور Find در Adodc کار کنی کارت سخت میشه ... ولی من یه روش عالی برای این کاری که میخوای انجام بدی بلدم .. اگر میخوای سورسشو بزارم واست

demon_da
شنبه 10 آذر 1386, 20:35 عصر
قربونت عزیز معلومه که می خوام! شدیدا" ممنونت میشم!
فقط یه روشم هست که تازی دیدمش ولی مشکلم اینه که همش به من True برمی گردونه، اگه تو پروژه بالایی بزاریش خودشو نشون می ده. این روش مال شخصی بنام X-ICE یا danbo هست اگه اشتباه نکرده باشم.
یه مشکل دیگه ای که دارم اینه که تو هر تکست باکسی که به یه ستون دیتابیس بایند شده چیزی می نویسم میره و تون خونه تو دیتابیس رو با متن جدید آپدیت می کنه! بدون اینکه چیزی بهش گفته باشم و سرخود! این رو چجوری حلش کنم؟!
وقتی هم که بخوام از روی ناچاری دیتابیس رو مجوزش رو read کنم گیر می ده می گه باید Updatable باشم!!! (پررو!)

searcx = text1.Text
book = Adodc1.Recordset.Bookmark

Adodc1.Recordset.MoveFirst

Do Until Adodc1.Recordset.EOF Or Found
If Adodc1.Recordset.Fields("Name") Like searcx Then
Found = True
Else
Adodc1.Recordset.MoveNext
End If
Loop

If Found = False Then
MsgBox "Record not found", vbInformation, "Database Function"
Adodc1.Recordset.Bookmark = book
End If

این رو هم که اگه زحمتی نیست یه تحلیلی بکنش مبین جان.

بازم شدیدا" ممنونم!

مبین رنجبر
یک شنبه 11 آذر 1386, 09:49 صبح
دوست عزیز demon_da جان ... من مشکله سورستو فهمیدم دیگه نیازی به سورس گذاشتن نیست ... میدونی مشکلت کجاست ؟ .... همه چیه پروژت درسته فقط یه جای کار عیب داره .... شما توی PropertyPages ماله Adodc ( که همون با مشخصه CUSTOM در Properties باز می شه ) در برگه RecordSource نباید Command Type رو به 2 - adCmdTable تغییر میدادی ... اگر اینو به adCmdTable تغییر بدی دیگه هیچ دستور SQL ای توی پروژت عمل نمیکنه و اررور می ده ..... اگر Command Type رو به 1 - adCMDText تغییر بدی کارت حل میشه .............

در جواب تحلیل کدی که گذاشتی باید بگم .. این کد اصلا کاره شما رو انجام نمیده .. چون در صورن پیدا کردن فقط میشه پیدا شد و دیگه اون رکوردی که پیدا کردو نشون نمیده ....

اگر بازم با این پروژهت مشکل داشتی بگو تا واست همون سورسی رو که گفتمو بزارم ....

sokote_bi_payan
یک شنبه 11 آذر 1386, 17:25 عصر
کارای خیلی زیاد و موثری می تونی انجام بدی برای این کار

demon_da
یک شنبه 11 آذر 1386, 21:20 عصر
ممنونم واقعا". اگه کد خودت رو هم زحمت بکشی بذاری خیلی ممنون میشم.

سکوت جان میتونی چند نمونه از این روش ها رو که دقیق و مطمئن هستن رو بهم یاد بدی؟

ممنونم.

demon_da
دوشنبه 12 آذر 1386, 14:50 عصر
مبین جان همچنان منتظر سورست هستم. خیلی ممنون.
سکوت جان شما هم راههایی که به نظرت می رسه رو اگه زحمتی نیست بهم نشون بده. ممنونم.

منتظرم، موفق باشید.

M8SPY_OK
دوشنبه 12 آذر 1386, 14:58 عصر
آقا یکی به تاپیک من جواب بده

demon_da
دوشنبه 12 آذر 1386, 16:46 عصر
چه ربطی داشت دوست عزیز، اینجا یک تاپیک دیگه هست. لطفا" حداقل بحث مارو خراب نکنید.
ممنون.

مبین رنجبر
دوشنبه 12 آذر 1386, 18:43 عصر
در اصرع وقت سورسی که خواسته بودی رو واست میزارم

مبین رنجبر
دوشنبه 12 آذر 1386, 19:43 عصر
بیا اینم از سورسی که گفته بودم ... این 1 نمونه از روش جستجو با SQL هستش ...

چون حجمش یکم زیاد بود روی هاست خودم آپلود کردم ( البته این یه برنامه دیکشنری هم هست بخاطر همین حجمش بالا شد )

لینک دانلود : http://lordvb.persiangig.com/Dic.rar

demon_da
دوشنبه 12 آذر 1386, 20:32 عصر
دستت درد نکنه، ممنون بخاط زحماتی که کشیدی دوست عزیز ایشالا بتونم جبران کنم.
می رم ببینیم چیکارش می شه کرد!
اگه وقت کردی یه سری به http://barnamenevis.org/forum/showthread.php?t=36548 هم بزن!
آخه هیچکی جوابم رو اونجا نمیده!
این آپدیت شدن های خود به خودی دیتابیس حالم رو گرفته! نمی خوام تا دستور Update رو بدم چیزی زخیره بشه!

دستت دررررد نکنه. موفق باشی.

mojgan.net
سه شنبه 13 آذر 1386, 08:02 صبح
سلام آقا یا خانم demo
من در حال حاضر با بانک Access و دستور adodcدارم عمل جسیجو رو به روش فیلتر کردن اطلاعان انجام می دم گفتم شاید این روش به درد شما هم بخوره .سورس اون رو براتون می زارم .روش کار این طوریه که وقتی اول حرف رو در داخل text وارد می کنید تما اطلاعاتی که در داخل اون جدول هست رو برای شما نمایش می ده البته این نمایش این اطلاعات داخل datagarid هستش که شما می تونید به جای اون از لیست استفاده کنید اگر ای
ن سورس خوب نبود به تاپیک بزنید تا باز من چند سورس دیگه واسه جستجو بهتون بدم

(& "%'" Adodc1.Recordset.Filter = ("titile like '" & Text3.Text

mojgan.net
سه شنبه 13 آذر 1386, 08:09 صبح
سلام آقا یا خانم demo
من در حال حاضر با بانک Access و دستور adodcدارم عمل جسیجو رو به روش فیلتر کردن اطلاعان انجام می دم گفتم شاید این روش به درد شما هم بخوره .سورس اون رو براتون می زارم .روش کار این طوریه که وقتی اول حرف رو در داخل text وارد می کنید تما اطلاعاتی که در داخل اون جدول هست رو برای شما نمایش می ده البته این نمایش این اطلاعات داخل datagarid هستش که شما می تونید به جای اون از لیست استفاده کنید اگر ای
ن سورس خوب نبود به تاپیک بزنید تا باز من چند سورس دیگه واسه جستجو بهتون بدم

(& "%'" Adodc1.Recordset.Filter = ("titile like '" & Text3.Text

مبین رنجبر
سه شنبه 13 آذر 1386, 08:49 صبح
demon_da جان توی اون تاپیک من یه روشی دادم .. بهتره یه سری بزنی ..

ولی من هرچی گشتم سوالی رو که شما مطرح کرده باشی پیدا نکردم ( شاید یه یوزر دیگه داشته باشی )

demon_da
سه شنبه 13 آذر 1386, 12:13 عصر
سلام
ممنون مژگان جان الان می رم روش شما رو تست کنم، گزارشش رو می دم حتما". یه دنیا ممنون.
مبین جان ظاهرا" پست های سوال رو مدیر ها پاک کردن چون تاپیک چند صفحه ایشون شد 1 صفحه! ظاهرا" بهترین روش همین روش شماست. الحق استادی!
از همه دوستان که تا الان من رو از کمک های بی منت شون بی بهره نذاشتن سپاس بسیار دارم، انشالله یه روز بتونم جبران کنم.

قربان شما، آرش

مبین رنجبر
سه شنبه 13 آذر 1386, 17:44 عصر
خواهش میکنم demon_da جان ...