PDA

View Full Version : جستجوی اطلاعات در یک جدول فیلتر شده



vahidm
دوشنبه 27 اسفند 1386, 10:19 صبح
با سلام
متاسفانه به دلیل پیش بینی نکردن و بیشتر شدن خواسته های مشتری الان به مشکلی بر خوردم که از دوستان در خواست کمک دارم
من توی دفتر حسابی که براساس کد حساب فیلتر کردم حالا می خوام یک جستجو براش بزارم یعنی کاربر در دفتر حساب X بتونه یک موردی رو پیدا کنه ولی چون فیلتر کردم حالا اگه بخوام جستجوش رو بنویسم از حالت فیلتر خارج شده و حساب های دیگه هم میاره
لطفا اگه کسی میدونه کوتاهی نکنه

Mbt925
دوشنبه 27 اسفند 1386, 10:27 صبح
دوست عزیز قرار نیست شما تا به یه مشکل برخوردی بدون هیچ جستجویی یه تاپیک بزنید و سریع جوابتونو بگیرید.

اینطوری نه چیزی یاد می گیرید و نه پیشرفت می کنید.

شما کاربر تازه وارد نیستید که بخوام این مسائل رو بهتون گوشزد کنم.
خواهشا قبل از زدن تاپیک جستجو کنید.

vahidm
دوشنبه 27 اسفند 1386, 10:45 صبح
آخه آقای مدیر
من جستجو کردم چیزی پیدا نشد
اگه هم چیزی باشه از خودمون بوده که به جواب نرسیده
ببخشید دوباره سرچ می می کنم

vahidm
دوشنبه 27 اسفند 1386, 14:25 عصر
من سرچ کردم ولی چیزی که من می خوام پیدا نشد
از دوستان خواهش میکنم همکاری کنند

ali_habibi1384
دوشنبه 27 اسفند 1386, 17:11 عصر
مطلب زیاده . اینا رو ببینید:
http://barnamenevis.org/forum/showthread.php?t=93813
http://barnamenevis.org/forum/showthread.php?t=86433
http://barnamenevis.org/forum/showthread.php?t=22324
http://barnamenevis.org/forum/showthread.php?t=81749
http://barnamenevis.org/forum/showthread.php?t=80805
http://barnamenevis.org/forum/showthread.php?t=80839
http://barnamenevis.org/forum/showthread.php?t=79540
http://barnamenevis.org/forum/showthread.php?t=77241
http://barnamenevis.org/forum/showthread.php?t=67664
http://barnamenevis.org/forum/showthread.php?t=68336
http://barnamenevis.org/forum/showthread.php?t=55680
http://barnamenevis.org/forum/showthread.php?t=52598
http://barnamenevis.org/forum/showthread.php?t=41043
http://barnamenevis.org/forum/showthread.php?t=44836
http://barnamenevis.org/forum/showthread.php?t=21398

ali_habibi1384
دوشنبه 27 اسفند 1386, 17:15 عصر
من همه اش رو نذاشتم فقط چندتاشونو گذاشتم اگه جستجو کنین بازهم هست.

vahidm
دوشنبه 27 اسفند 1386, 22:07 عصر
سلام دوست عزیزم از اینکه جوابم رو دادید ممنون
ولی سوال من رو درست نفهمیدید شاید عیب از من بوده و نتونستم جمله رو خوب بنویسم
من جستجو رو بلدم ولی می خوام جستجو در جستجو باشه
چون اطلاعات رو فیلتر کردم وقتی میام از طریق sql سرچ کنم اطلاعات خارج از فیلتر هم میاره
حالا اگه فهمیدید لطفا کمک کنید

ali_habibi1384
سه شنبه 28 اسفند 1386, 00:36 صبح
روش اول :وقتی می خوای یه جستجو واسه داده های فیلتر شده انجام بدی جستجوی جدید رو با فیلترهای قبلی + فیلترهای جدید انجام بده
روش دوم : از تابع find استفاده کن:


adodc1.recordset.find("fild = text")

ali_habibi1384
سه شنبه 28 اسفند 1386, 00:43 صبح
در یکی از تاپیکهایی که واستون آدرسش رو گذاشتم روش فیلتر کردن با چند پارامتر وجود داره . اگه مشکلتون رو حل نکرد من کمکتون می کنم.

vahidm
سه شنبه 28 اسفند 1386, 16:49 عصر
جناب آقای حبیبی هیچتا از این تاپیک ها به دردم نخورد خواهشن راهنمایی کنید

فاطمه وطن دوست
چهارشنبه 29 اسفند 1386, 03:26 صبح
سلام ، با تبریک فرا رسیدن سال نو.




Adodc1.Recordset.Filter = " FEILD1 like '" & Text1.text & "*' And FEILD2='" &TEXT2.TEXT & "'"

ali_habibi1384
چهارشنبه 29 اسفند 1386, 06:37 صبح
سلام ، با تبریک فرا رسیدن سال نو.







Adodc1.Recordset.Filter = " FEILD1 like '" & Text1.text & "*' And FEILD2='" &TEXT2.TEXT & "'"











با این توضیح که بعنوان مثال اطلاعاتی که شما در این فرم نشان داده بودید بر اساس fild1 و اکنون با اضافه شدن fild2 یک فیلتر همزمان بر روی دادها بر اساس فیلتر فیلد قبلی + فیلتر فیلد جدید(fild2)

vahidm
پنج شنبه 01 فروردین 1387, 01:23 صبح
دوست عزیز این کد کار نمی کنه

فاطمه وطن دوست
پنج شنبه 01 فروردین 1387, 05:27 صبح
سلام ، با تبریک فرا رسیدن سال نو .
اینم کد :




Private Sub Form_Load()
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & App.Path & "\db1.mdb"
Adodc1.RecordSource = "table1"
Adodc1.Refresh
Set DataGrid1.DataSource = Adodc1
End Sub



این برای کلید جستجو :




Private Sub Command5_Click()
On Error Resume Next
If myreco.State = adStateOpen Then Set myreco = Nothing
myreco.CursorLocation = adUseClient
myreco.Open "select * from TABLE1 where id=" & Val(Text4.Text) & " ;", mycon
If myreco.RecordCount = 0 Then
MsgBox ("not foumd")
Else
(دیتاگرید - فیلدهای مربوط به حساب مورد نظرتون.)Form2.Show
Unload Me
End If
End Sub



این کد برای فیلتر کردن مجدد روی همین حساب مورد نظرتونه . بر اساس مقداری که وارد میکنید توی یه TEXTBOX ( مثلا بر حسب شرح عملیات ) : تو فرم 2 این کدو بنویسید.





Private Sub Text1_Change()
Dim accessfile As String
accessfile = App.Path + "\db1.mdb"
On Error Resume Next
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" & accessfile
If Text1.text = "" Then


********************توضیحات**************** *********

در واقع در اینجا گفتیم اگه کاربر در TEXT BOX چیزی را وارد نکرد بر گرده به حالت قبل یعنی فیلتر بر اساس ، همون حسابه انجام بشه .


Adodc1.Recordset.Filter = "ID =' " + FORM1.TEXT4.TEXT+ " ' "
Adodc1.Recordset.Filter = "ID like '" & FORM1.TEXT4.TEXT & "*'"
Set DataGrid1.DataSource = Adodc1
ELSE

********************توضیحات**************** *********


در واقع در اینجا گفتیم اگه کاربر در TEXT BOX چیزی را وارد کرد فیلتر انجام بشه بر اساس
شرح عملیات (نام فیلد : TOZIHAT)

Adodc1.Recordset.Filter = " TOZIHAT like '" & Text1.text & "*'" And Adodc1.Recordset.Filter = " ID='" & FORM1.TEXT4.TEXT & "'"
Adodc1.Recordset.Update


نکته : من توی فرمم یه قسمتیش برای سرچه و تو همین فرم بیاد فیلتر بر اساس کد و شرح عملیات رو انجام بده .
اینو دیگه خودتون بهینش می کنید با توجه به نیازتون .
مثلا اینکه تو فرمم دروس کلیه هنرجویان هست ، بعد توهمین فرم کد هنرچو را وارد می کنم و
بعد جدول من فقط لیست دروس همین هنرجو را به من نشون میده من حالا تو یه TEXT BOX
میام ، یه مقداری رو وارد می کنم بعد عملیات فیلتر مجددا صورت میگیره .
در واقع عملیات فیلتر میتونه بر روی فیلدهای مختلف جدولتون انجام بشه که این کارو با گذاشتن چند تا OPTION میتونید این امکان را در اختیار کاربر قرار بدید . (کپشنشونم برابر با نام فیلدای جدول - یا دیتاگریدتون قرار میدین .)
یعنی قبل از اینکه عمل فیلتر رو انجام بدید ، ابتدا تعیین می کنید فیلتر روی کدوم ستون (فیلد ) جدولتون اعمال میشه و بعد مقدار مورد نظرتون را وارد می کنید به این ترتیب با توجه به اینکه کدتون رو در خاصیت CHANGE -TEXTBOX. نوشتین عملیات فیلتر سازی صورت میگیره

vahidm
پنج شنبه 01 فروردین 1387, 20:58 عصر
با سلام دوستان عزیز
چرا این کدی که خانم وطن دوست زحمت کشیده اند و فرستادن را نمی توان معادلش در
کنترل data استفاده کرد ؟

vahidm
پنج شنبه 01 فروردین 1387, 20:59 عصر
با سلام
دوستان گرامی خواهشن هر چه زودتر جواب بدهید
با تشکر

shahpari
جمعه 02 فروردین 1387, 01:17 صبح
شما که نمی تونید با کنترل دیتا از datagrid استفاده کنید!!!

vahidm
جمعه 02 فروردین 1387, 01:33 صبح
من خودم هم می دونم
من از dbgrid استفاده کردم

فاطمه وطن دوست
جمعه 02 فروردین 1387, 01:33 صبح
سلام ، با تبریک فرا رسیدن سال نو .
کنترل ADO:
این کنترل شبیه به کنترل DATA کار میکند ولی قابلیت و انعطاف بیشتری دارد . از جمله امتیازات ADO( یا تفاوت بین ADO با DATA )
عبارت است از :
1- برای برنامه نویسی حرفه ای بانک اطلاعاتی استفاده میشود.
2- میتوان داده ها را از منابع دیگری غیر از بانک اطلاعاتی مثلا مایکرسافت ایندکس سرور ، که برای جستجوی محتویات یک سایت وب به کار میرود بخواند.
3- ADO از یک OLEDB استفاده میکند و OLEDB اتصال واقعی به یک منبع اطلاعاتی را ارائه میدهد.
4- از کنترل های خاصی با ویژگی های بیشتر استفاده میکند.
در ضمن کنترل هایی که تحت ADO کار میکنند عبارتند از
1- MICROSOFT DATDGRID
MICROSOFT DATA LIST -2

vahidm
جمعه 02 فروردین 1387, 01:38 صبح
سلام و تشکر بابت جوابهای خوبتون ولی بنده همه اینا رو می دونم
من خودم این عقیده رو دارم که برنامه باید با کنترل adodc نوشته بشه و من هم اینکار رو کردم
ولی برای فیلتر اطلاعات از data استفاده کردم
متشکرم

shahpari
جمعه 02 فروردین 1387, 12:50 عصر
تو این برنامه با data فیلتر رو انجام دادم و درست عمل میکنه
ولی برای نمایش نتیجه از flexgrid استفاده کردم

فراموش کردم برای تکس باکس ها لیبل بزارم که بدونید چی وارد کنید

تکس باکس اول idstudent و دومی namestudent

موفق باشید

vahidm
جمعه 02 فروردین 1387, 20:03 عصر
با تشکر از شما و خسته نباشید

ali_habibi1384
شنبه 03 فروردین 1387, 00:30 صبح
خب از ado استفاده کن. طبق دستوراتی که ما گفتیم

vahidm
شنبه 03 فروردین 1387, 00:41 صبح
خب از ado استفاده کردم
و مشکلم هم حل شد البته تمام برنامه با adoنوشتم ولی این 5قسمت فیلتر چون دستورات sql با ado سازگاری نداره از data استفاده کردم
با تشکر از تمامی دوستان

ali_habibi1384
شنبه 03 فروردین 1387, 00:56 صبح
شما خیلی راحت می تونیز از ado استفاده و SQL رو استفاده کنید . تمامی برنامه های من با ado و دستورات SQL هست.

vahidm
شنبه 03 فروردین 1387, 01:11 صبح
دوست عزیز سلام ببینید من اگه از ado استفاده کنم باید از datagrid استفاده کنم و هنگامی که می خواد بانک رو refresh کنه خطا میده
من اشتباهن گفتم که ado با sql ساز گار نیست
ببخشید
با تشکر