PDA

View Full Version : مشكل در جستجو كردن



mobina.amiry
شنبه 10 بهمن 1388, 13:01 عصر
سلام
من با استفاده از اين كد براي جستجو استفاده ميكنم ولي بايد در قسمت نام كتاب حتما بايد نام كتاب را كامل بنويسيم تا آن كتاب را پيدا كند و نمايش دهد ولي من ميخواهم كه اگر ما 4كتاب با نام ويژوال بيسك داريم كه اگر نام يكي 1-آموزش ويژوال بيسيك،2-آموزش ويژوال بيسيك با بانك اطلاعاتي ،آموزش گام به گام ويژوال بيسيك و... كاربر با وارد كردن فقط نام ويژوال بيسك وسپس جستجو كردن نام اين 4 كتاب را نمايش دهد.
ولي الان من زماني كه نام كتاب را كامل بلد نيستم هيچ كتابي را نمايش نميدهد در صورتي كه من ميخواهم با وارد كردن ويژوال بيسيك نام هر چند تا كتابي كه در آن ويژوال بيسيك است را نمايش دهد.اگر كسي ميتواند راهنمايي كند

If Text2.Text <> "" Then
Ado.RecordSource = "Select *from book where namebook='" & Text2.Text & "'"
Ado.Refresh
Text2.Text = ""
Exit Sub
End If

xxxxx_xxxxx
شنبه 10 بهمن 1388, 15:03 عصر
Ado.RecordSource = "Select *from book where namebook='" & Text2.Text & "'"
دستور بالا رو به این شکل بنویسید:


Ado.RecordSource = "Select *from book where namebook LIKE '%" & Text2.Text & "%'"
توضیحات و حالت های مختلف در این تاپیک:
http://barnamenevis.org/forum/showthread.php?p=883344

mobina.amiry
جمعه 16 بهمن 1388, 17:31 عصر
سلام
يه سوال ديگه حالا اگه بخوام ببينم كه مثلا از تاريخ 10/11/88تا 15/11/88چند تا كتاب را ثبت كرديم از چه دستور جستجويي بايد استفاده بكنم.(ميخوام مشخصات اونا بعد از جستجو كردن نشون بده)الان خودم تاريخ 10/11/88را وقتي جستجو ميكنم هر چند تا كتاب كه ثبت شده را نشون ميده ولي من ميخوام اين جستجو كنه كه توي اين بازه زماني چند تا كتاب شده؟؟كد جستجوبراي تاريخ هم مثل همون كدي كه توي پست
اول گذاشتم استفاده كردم.

xxxxx_xxxxx
جمعه 16 بهمن 1388, 18:39 عصر
سلام،


Select * from book where fieldName Between '" & Date1 & "' and '" & Date2 & "'"
لطفاً جستجو کنید، این موضوعات بارها مطرح شده.

mobina.amiry
جمعه 16 بهمن 1388, 20:28 عصر
سلام
ممنو ن از راهنمايي مفيدتون
من يه جدول ديگه دارم با نام جدول بازگشت كتاب كه توي اون همه ي كتابهايي را كه به امانت رفته و هر چي عضو كه كتاب به امانت بردن را نشون ميده كه من با استفاده از كد عضويت يا كد كتاب ميتوانم جستجو كنم كه چه عضوي چه تعداد كتاب برده ولي من ميخواهم كه اين قابليت را اضافه كنم كه به طور خودكار مشخص كنه چه عضويي بيشترين تعداد كتاب را به امانت برده است در يك بازه زماني مشخص؟
اگه بخواهيم ببينيم كه كدام كتاب بيشتراز همه كتابهاي موجود دركتابخانه به امانت رفته چطور؟؟
با تشكر

mpmsoft
جمعه 16 بهمن 1388, 22:43 عصر
شما یا باید از جدول ریز کتابهای به امانت رفته گزارش بگیرید و یا یک فیلد به جدول کتابخانه اضافه کنید و زمانی که کتابی خارج می شود یک واحد به آن فیلد اضافه کنید

جهت گزارشگیری می تونید از دستور زیر استفاده کنید

SELECT Count(ID) FROM Tbl_BookRoll WHERE IDBook=1

mobina.amiry
شنبه 17 بهمن 1388, 10:43 صبح
شما یا باید از جدول ریز کتابهای به امانت رفته گزارش بگیرید و یا یک فیلد به جدول کتابخانه اضافه کنید و زمانی که کتابی خارج می شود یک واحد به آن فیلد اضافه کنید

جهت گزارشگیری می تونید از دستور زیر استفاده کنید

SELECT Count(ID) FROM Tbl_BookRoll WHERE IDBook=1

سلام من متوجه نشدم كه بايد چيكار كنم اگه ميشه يكم بيشتر توضيح بيد

polisoftco
شنبه 17 بهمن 1388, 20:18 عصر
SELECT Count(ID) FROM Tbl_BookRoll WHERE IDBook=1


خروجی این دیتاسورس بدین صورته : تعداد به امانت برده شده ی کتابی از جدول tblBookRoll که کدش (کد کتاب) برابر یک (1) هستش.

یا روش دیگر :
یک فیلد به جدول کتاب اضافه کن و هربار که کتابی به امانت داده شد یک واحد به این فیلد اضافه کن که دراینصورت تعداد به امانت دادن تمام کتابات ثبت میشه در آخر برای بیشترین کتاب که امانت بردن، فقط کافیه بیشترین مقدار این فیلد رو جستجو کنین.

mobina.amiry
شنبه 17 بهمن 1388, 23:21 عصر
SELECT Count(ID) FROM Tbl_BookRoll WHERE IDBook=1


خروجی این دیتاسورس بدین صورته : تعداد به امانت برده شده ی کتابی از جدول tblBookRoll که کدش (کد کتاب) برابر یک (1) هستش.

یا روش دیگر :
یک فیلد به جدول کتاب اضافه کن و هربار که کتابی به امانت داده شد یک واحد به این فیلد اضافه کن که دراینصورت تعداد به امانت دادن تمام کتابات ثبت میشه در آخر برای بیشترین کتاب که امانت بردن، فقط کافیه بیشترین مقدار این فیلد رو جستجو کنین.

سلام
فکر کنم روش دوم بهتر باشه ولی فکر کنم که من سوالم را به طور صحیح مطرح نکردم من میخوام به طور خودکار برنامه درقسمت کتابهایی که اعضا به امانت برده وبه کتابخانه بازگردانده اند.گزارش دهد که فردی که بیشترین کتاب را به امانت برده چه کسی بوده است؟؟وچه کتابی بیشتر به امانت رفته است؟؟البته در بازه زمانی که مامشخص مینماییم
به طور مثال اگر ما تاریخ 10/08/1388تا 10/09/1388راوارد کردیم برای مانمایش دهد که چه عضوی درطی این ماه بیشترین کتاب را به امانت برده است. :متفکر:

ممنون از راهنمایی هایتان

polisoftco
یک شنبه 18 بهمن 1388, 19:12 عصر
SELECT Count(BookID) as [MaxBook] , Count(Ozv) as [MaxOzv] , Date FROM Tbl_BookRoll WHERE Date Between '" & Trim(txtDate1) & "' and '" & Trim(txtDate2) & "'"


MaxBook بیشترین کتابی که برده شده
MaxOzv عضوی که بیشترین کتاب رو برده

mobina.amiry
یک شنبه 18 بهمن 1388, 20:52 عصر
SELECT Count(BookID) as [MaxBook] , Count(Ozv) as [MaxOzv] , Date FROM Tbl_BookRoll WHERE Date Between '" & Trim(txtDate1) & "' and '" & Trim(txtDate2) & "'"


MaxBook بیشترین کتابی که برده شده
MaxOzv عضوی که بیشترین کتاب رو برده


ممنون ولي وقتي كه اين كد را قرار دادم اين پيغام خطا را داد بايد چيكارش كنم

polisoftco
دوشنبه 19 بهمن 1388, 13:51 عصر
:متفکر:
مثل اینکه شما اسم فیلدها و جدول بندی رو خوب تعریف نکردین.
اسم فیلدها و ارتباط جدوال باهم رو چک کنین ببینین مشکلی درارتباط نداشته باشن.

mobina.amiry
جمعه 23 بهمن 1388, 20:55 عصر
سلام
همه چيزا چك كردم همه چيز باتوجه به جدول خودم درست بود ولي بازم پيغام خطا ميده

mpmsoft
جمعه 23 بهمن 1388, 22:03 عصر
SELECT Count(BookID) as [MaxBook] , Count(Ozv) as [MaxOzv] , Date FROM Tbl_BookRoll WHERE Date Between '" & Trim(txtDate1) & "' and '" & Trim(txtDate2) & "'"
این کد اشتباه است به دلیل زیر :

شما در یک دستور select فقط می توانید از یک Function مثل count , Max , min ,.... استفاده کنید
یا باید از Group استفاده کنید و یا تک به تک برای هریک از این فانکشن ها یک دستور select بنویسید

امیدوارم منظورمو متوجه شده باشید

polisoftco
جمعه 23 بهمن 1388, 23:44 عصر
سلام
اما تا جایی که من میدونم میشه چندتا فانکشن رو باهم نوشت.
آخه خودم قبلا از اینجوریاشو نوشته بودم، که هم ماکس رو میگرفت و هم کانت رو.