امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
جستجو در چند فيلد
نویسنده پیام
sepehrEZ آفلاین
كاربر دو ستاره
**

ارسال‌ها: 80
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 14
( 25 تشکر در 15 ارسال )
ارسال: #1
جستجو در چند فيلد
سلام دوستان.
من دارم يه برنامه بانك اطلاعاتي با كنترل ADODC مي نويسم و تو قسمت جستجو به مشكل برخوردم. به اين صورت كه برنامه بايد نام و نام خانوادگي و نام پدر را با نام هاي وارد شده مقايسه و اگر درست بود اون ركورد رو نمايش بده.ولي مشكل من اينه كه فقط نام را توي جستجو مقايسه مي كنه.نام خانوادگي و پدر رو مقايسه نميكنه.يه نگاه به دستور زير بندازين.
ADODC1.Recordset.Find "FName LIKE '" & strName & "*'"

اين كد رو تو Notepad كپي كنين تا درست ببينين.

اين دستور اسمي كه توي متغير Strname هستش رو تو فيلد Fname جستجو مي كنه.حالا من مي خوام علاوه بر نام ، نام خانوادگي هم كه توي فيلد LName هستش چك كنه.

اگه امكانش هست يه مثال بزنين ممنون ميشم.
راستي خواستم سؤالم رو تو چند پست قبل مطرح كنم ولي پشيمان شدم.
سورس اون پست هم دانلود كردم اما زياد به دردم نخورد.

آموزش كامل StandAlone كردن برنامه هاي نوشته شده با ويژوال بيسيك :
http://escada.blogfa.com/post-7.aspx

آموزش كامل به كار گيري Skin Crafter در VB به همراه يك سورس كد نمونه :
http://escada.blogfa.com/post-6.aspx
۱۸-آبان-۱۳۸۷, ۱۱:۱۳:۱۹
وب سایت ارسال‌ها
پاسخ
Di Di آفلاین
مدير بخش هك و كرك
*****

ارسال‌ها: 2,358
موضوع‌ها: 116
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 1816
( 4046 تشکر در 1321 ارسال )
ارسال: #2
RE: جستجو در چند فيلد
سلام

دستورات رو به اين صورت اصلاح كنيد :

کد:
SerchSTR = "FName Like '" & STRName & "'" & " And " & "LName Like '" & STRLName & "'"
ADODC1.Recordset.Find SerchSTR

(آخرین ویرایش در این ارسال: ۱۸-آبان-۱۳۸۷, ۱۴:۲۵:۰۸، توسط Di Di.)
۱۸-آبان-۱۳۸۷, ۱۴:۲۴:۱۴
وب سایت ارسال‌ها
پاسخ
sepehrEZ آفلاین
كاربر دو ستاره
**

ارسال‌ها: 80
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 14
( 25 تشکر در 15 ارسال )
ارسال: #3
RE: جستجو در چند فيلد
از لطف شما ممنونم.معلومه كه منظور منو به خوبي متوجه شدين. اما كد بالا ارور ميده . اگه امكانش هست خودتون يه امتحان بكنين.
اگه مي تونستم حتما پروژه مي گذاشتم تا خودتون ببينيد اما نمي شه
ميشه خودتون يه تست بكنين ؟ يا حداقل راه حل ديگه اي بگين ؟
ممنون.
اينم عكس ارور:
http://escada.persiangig.com/image/01.jpg

آموزش كامل StandAlone كردن برنامه هاي نوشته شده با ويژوال بيسيك :
http://escada.blogfa.com/post-7.aspx

آموزش كامل به كار گيري Skin Crafter در VB به همراه يك سورس كد نمونه :
http://escada.blogfa.com/post-6.aspx
(آخرین ویرایش در این ارسال: ۱۸-آبان-۱۳۸۷, ۱۵:۵۵:۵۹، توسط sepehrEZ.)
۱۸-آبان-۱۳۸۷, ۱۵:۴۶:۴۳
وب سایت ارسال‌ها
پاسخ
Mohandese_Javan آفلاین
در حال پیشرفت
***

ارسال‌ها: 345
موضوع‌ها: 90
تاریخ عضویت: فروردین ۱۳۸۴

تشکرها : 1
( 39 تشکر در 23 ارسال )
ارسال: #4
RE: جستجو در چند فيلد
سلام
چرا از دستورات SQLاستفاده نمیکنین؟
Adodc1.RecordSource = "SELECT * FROM TabaleName WHERE Name='Mohsen' and Father='Ali' and Shenasname='1234'"
اگه فیلدهای مورد جستجو رو درست انتخاب کنی این دستور فقط همون رکورد مورد نظرت رو میده .
(آخرین ویرایش در این ارسال: ۱۸-آبان-۱۳۸۷, ۱۷:۳۳:۴۳، توسط Mohandese_Javan.)
۱۸-آبان-۱۳۸۷, ۱۷:۲۹:۵۷
ارسال‌ها
پاسخ
تشکر شده توسط : Di Di
sepehrEZ آفلاین
كاربر دو ستاره
**

ارسال‌ها: 80
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 14
( 25 تشکر در 15 ارسال )
ارسال: #5
RE: جستجو در چند فيلد
موقعي كه اين دستور رو اجرا مي كنيم هيچ اتفاقي نمي افته و ركورد همچنان همون جايي كه هست باقي مي مونه.از Refresh هم استفاده كردم ام بدتر شد . چون يه ارور هم داد.
خواهش مي كنم راه حل تون با استفاده از خود ADODC باشه.اين جوري هم راحت تره هم ما رو وارد چهار تا معادله نمي كنه.

آموزش كامل StandAlone كردن برنامه هاي نوشته شده با ويژوال بيسيك :
http://escada.blogfa.com/post-7.aspx

آموزش كامل به كار گيري Skin Crafter در VB به همراه يك سورس كد نمونه :
http://escada.blogfa.com/post-6.aspx
۱۸-آبان-۱۳۸۷, ۲۰:۰۹:۳۳
وب سایت ارسال‌ها
پاسخ
mojtabamalaekeh آفلاین
کاربر با تجربه
****

ارسال‌ها: 566
موضوع‌ها: 104
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 1378
( 631 تشکر در 223 ارسال )
ارسال: #6
RE: جستجو در چند فيلد
کد:
ADODC1.Recordset.Find
فکر کنم چون Adodc امکانات خوبی برای کار با فرامین SQL داره و کمتر نیاز به جستجو پیش میاد، به همین خاطر کسی تا حالا متوجه نشده که ضابطه جستجو فقط یک شرط میتونه داشته باشه و نمیشه بیش از یک شرط بهش داد.
من همین امروز یه برنامه نوشتم که با Adodc جستجو می کرد ولی فقط با یه فیلد کار داشتم و متوجه این مطلب نشدم.
گمونم fliter هم همین قانون Find رو داشته باشه. یعنی خاصیت fliter رو هم فقط میشه یه شرط بهش داد.
کد:
"FName Like '" & STRName & "'"
ظاهرا عملگر Like بدون کاراکتر * یا % مثل همون عملگر = کار می کنه.
پس شد:
کد:
"FName Like '" & STRName & "*'"
یا
کد:
"FName Like '*" & STRName & "*'"
نقل قول: چرا از دستورات SQLاستفاده نمیکنین؟
Adodc1.RecordSource = "SELECT * FROM TabaleName WHERE Name='Mohsen' and Father='Ali' and Shenasname='1234'"
چون فرمان Where فقط رکوردهایی رو که شامل شرط میشن نمایش میده و بقیه اطلاعات از دید کاربر مخفی میشن.
ممکنه بگید اشکالی نداره بقیه رکوردها مخفی بشن ولی بعضی جاها بسته به نوع اطلاعات یا هدف برنامه یا رابط کاربر، مهمه که همه اطلاعات در حال نمایش باشن.

نقل قول: موقعي كه اين دستور رو اجرا مي كنيم هيچ اتفاقي نمي افته و ركورد همچنان همون جايي كه هست باقي مي مونه.از Refresh هم استفاده كردم ام بدتر شد . چون يه ارور هم داد.
درسته بعد از مقداردهی به RecordSource باید متد Refresh رو فراخوانی کنیم اما خاصیت CommandType باید مقدارش برابر 8 باشه که بشه RecordSource رو با دستورات SQL تعیین کنیم.

نتیجه: فقط میشه از Where استفاده کرد. به اینصورت:
کد:
Private Sub cmdFind_Click()
    Adodc1.RecordSource = "Select * From tbl1"
    Adodc1.Refresh
    Adodc1.RecordSource = "Select * From tbl1 Where " & _
    "Name = '" & txtNam.Text & "' And " & _
    "Family = '" & txtFam.Text & "' And " & _
    "Father = '" & txtFath.Text & "'"
    Adodc1.Refresh
    If Adodc1.Recordset.RecordCount < 1 Then MsgBox "Not found!"
End Sub
دست آخر بجای Like از = استفاده کردم.
توی Like هم بجای * از % استفاده کردم (فایل ضمیمه).


فایل‌(های) پیوست شده
.rar   MultiFieldSearch.rar (اندازه: 10.84 KB / تعداد دفعات دریافت: 245)


(آخرین ویرایش در این ارسال: ۱۹-آبان-۱۳۸۷, ۰۱:۵۹:۰۸، توسط mojtabamalaekeh.)
۱۹-آبان-۱۳۸۷, ۰۱:۵۴:۲۱
ارسال‌ها
پاسخ
تشکر شده توسط : Di Di, sepehrEZ, phpnet, alaska, ashkan1234, alimogmov, liveevil00
sepehrEZ آفلاین
كاربر دو ستاره
**

ارسال‌ها: 80
موضوع‌ها: 9
تاریخ عضویت: مرداد ۱۳۸۶

تشکرها : 14
( 25 تشکر در 15 ارسال )
ارسال: #7
RE: جستجو در چند فيلد
دستت درد نكنه مجتبي جان.لطف كردي.

آموزش كامل StandAlone كردن برنامه هاي نوشته شده با ويژوال بيسيك :
http://escada.blogfa.com/post-7.aspx

آموزش كامل به كار گيري Skin Crafter در VB به همراه يك سورس كد نمونه :
http://escada.blogfa.com/post-6.aspx
۲۰-آبان-۱۳۸۷, ۱۷:۱۲:۴۷
وب سایت ارسال‌ها
پاسخ
liveevil00 آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 0
تاریخ عضویت: فروردین ۱۳۹۴

تشکرها : 1
( 0 تشکر در 0 ارسال )
ارسال: #8
RE: جستجو در چند فيلد
سلام به دوستان من تازه واردم ، در حال نوشتن یه برنامه هستم ولی توی قسمت جستجو مشکل دارم.
ببینید یه adodc دارم ویه بانک اطلاعاتی اکسس میخوام وقتی یه شماره قبض رو داخل text1 وارد میکنم اونو پیدا و باقی اطلاعات رو داخل textهای دیگه مثلا تاریخ ، پلاک ، و غیره رو نشون بده . اگه میشه دستور لازم رو بفرستین ممنون
۱۳-فروردین-۱۳۹۴, ۲۰:۵۹:۱۱
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #9
RE: جستجو در چند فيلد
سلام.
لطفا برای سوال های جدیدتون تاپیک جدید بزنید.
۱۴-فروردین-۱۳۹۴, ۱۳:۵۳:۱۳
ارسال‌ها
پاسخ
liveevil00 آفلاین
تازه وارد

ارسال‌ها: 2
موضوع‌ها: 0
تاریخ عضویت: فروردین ۱۳۹۴

تشکرها : 1
( 0 تشکر در 0 ارسال )
ارسال: #10
RE: جستجو در چند فيلد
جستجو در چند فيلد
سلام به شما، من تازه واردم ، در حال نوشتن یه برنامه هستم ولی توی قسمت جستجو مشکل دارم.
ببینید یه adodc دارم ویه بانک اطلاعاتی اکسس میخوام وقتی یه شماره قبض رو داخل text1 وارد میکنم اونو پیدا و باقی اطلاعات رو داخل textهای دیگه مثلا تاریخ ، پلاک ، و غیره رو نشون بده . اگه میشه دستور لازم رو بفرستین ممنون میشم خدا خیرتون بده.
۲۵-فروردین-۱۳۹۴, ۱۷:۴۵:۲۳
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  جستجو بین دو دو تاریخ و نمایش اطلاعات بین دو تاریخ mahdi61 1 3,020 ۰۵-دى-۱۳۹۵, ۰۲:۳۰:۳۴
آخرین ارسال: Ghoghnus
  جستجوي هوشمند (حساس به حرف و ...) و جستجو به سبک گوگل ( نوعي ديگر ) kingoflover 19 17,251 ۰۹-آذر-۱۳۹۳, ۲۲:۲۴:۵۹
آخرین ارسال: حمیدشیر
  جستجو مقدار مورد نظر در Cellهای رنج تعریف شده و دریافت نشانی Cellهای آن eppagh 9 6,594 ۱۲-مرداد-۱۳۹۳, ۰۹:۵۴:۰۳
آخرین ارسال: eppagh
  نمايش ركوردهاي يك فيلد از ديتا بيس اكسس در يك ليست باكس sinacomputer 8 11,391 ۱۹-بهمن-۱۳۹۲, ۲۱:۲۴:۱۰
آخرین ارسال: Ghoghnus
  جستجو بینت دو تاریخ به همراه ساعت automa 20 16,921 ۲۳-تير-۱۳۹۲, ۱۶:۰۵:۳۶
آخرین ارسال: automa
  Fw: انواع جستجو و مرتب سازی در vb mehrdad8 4 4,962 ۱۲-خرداد-۱۳۹۲, ۰۱:۱۶:۲۲
آخرین ارسال: mehrdad8
Exclamation جستجو و حذف فایل tiktak990 1 2,521 ۰۸-بهمن-۱۳۹۱, ۱۱:۲۶:۳۹
آخرین ارسال: Ghoghnus
  مشکل در جستجو parviin 7 7,007 ۰۲-اردیبهشت-۱۳۹۱, ۱۵:۵۱:۳۴
آخرین ارسال: parviin
Question [سوال] امكان auto number كردن يك فيلد در ديتابيس هاي vb6 hamed_Arfaee 3 5,613 ۰۲-مهر-۱۳۹۰, ۱۲:۴۲:۱۹
آخرین ارسال: hamed_Arfaee
  [سوال] جستجو در dataBase ها با استفاده از vb 6 Hamidreza97 2 3,520 ۰۲-شهریور-۱۳۹۰, ۱۵:۲۰:۳۲
آخرین ارسال: parham2010

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 4 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS