PDA

View Full Version : مشکل در SEARCh



stringer
سه شنبه 20 آذر 1386, 11:28 صبح
سلام ببخشید بازم مزاحم همیشگی
من تو بانکم برای سرچ یه Fillter گزاشتم . حالا اگه من توی این فیلتر بخوام بگم که بر اساس آیتمهای موجود توی کمبو باکس بگرده باید از کد زیر استفاده کنم



ADOTable1.Filter:= ComboBox1.Text + ' like ''%'+edit1.text+'%''';
Application.ProcessMessages;
خوب مشکل من اینجاست که اگه آیتم های کمبو باکس دو قسمتی باشه ارور میده مثلا اگه توی کمبو باکس بنویسم "تاریخ تولد"بهم ارور میده . لطفا کمکم کنید
درشمن بانکمم با اکسس نوشتم و از Ado استفاده میکنم .:خجالت::خجالت::خجالت::خجالت:

JAFO_IRAN
سه شنبه 20 آذر 1386, 11:41 صبح
سلام

1. خواندن کد به صورت راست به چپ سخت است - اما به نظر میرسد که combo حاوی نام فیلد باشد (لطفا از code tag برای بازنمایی صحیح کد استفاده کنید).
2. وقنی نام فیلد دارای space است باید یک جوری به sql parser کمک کنیم. در sql server در این موارد میتوانیم نام فیلد را داخل زوج کروشه قرار دهیم اما در access مطمئن نیستم - به هر حال حتما یک راه مشابه دارد
3. امیدوارم کد زیر کمک کند - و در این صورت جسارتا تقاضا میکنم این تصویر نا امیدکننده را در امضای خود تغییر دهید.



ADOTable1.Filter := '[' + Combo1.Text + '] like "%' + Edit1.Text + '%"';


ارادت

stringer
سه شنبه 20 آذر 1386, 13:25 عصر
سلام چشب بفرما ئید اینم داخل کد ، متاسفانه اینم کار نکرد من بانکم ACCESSE خواهش میکنم کمکم کنید .

JAFO_IRAN
سه شنبه 20 آذر 1386, 16:11 عصر
سلام

ببینم، اگر فیلد شما space نداشته باشه کار میکنه؟ (یعنی سوال اولتون اینجوری گفته بود). اگه کلا کار نمیکنه ممکنه در combo نام فیلد نباشه - یا اصولا عبارتی که برای where مناسبه توی filter جواب نمیده....

ارادت

SYNDROME
سه شنبه 20 آذر 1386, 20:25 عصر
خوب مشکل من اینجاست که اگه آیتم های کمبو باکس دو قسمتی باشه ارور میده مثلا اگه توی کمبو باکس بنویسم "تاریخ تولد"بهم ارور میده . لطفا کمکم کنید

اولاً Error را بنویسید.
دوماً نام فیلدها بانکتان فارسی است یا انگلیسی؟
موفق باشید

stringer
چهارشنبه 21 آذر 1386, 09:43 صبح
این ارورو میده :

Arguments are of the wrong type, are out of acceptable rang,or are in conflict with one another.
خوب نام فیلدامم فارسی

JAFO_IRAN
چهارشنبه 21 آذر 1386, 10:13 صبح
سلام

خیلی ممنون که تصویر رو از امضا برداشتی - زنده باشی

دوست عزیز، من هر چه فکر میکنم استفاده از like توی filter رو به یاد نمیارم. نام فارسی شاید باعث مشکل باشه، اما از اون مهمتر فرمت دستور قابل استفاده در filter هست. باز هم سوال رو تکرار میکنم، این داستان اگه نام فیلد space نداشته باشه خطا نمیده؟

ارادت

stringer
چهارشنبه 21 آذر 1386, 16:29 عصر
خواهش میکنم ،
اگه فاصله نداشته باشه هیچ اروری نمیده و کار میکنه ،من چیکار کنم حالا ؟

JAFO_IRAN
چهارشنبه 21 آذر 1386, 16:56 عصر
سلام

والا فکرم به جایی قد نمیده. Filter در دلفی String تعریف شده - در Access نام فیلدهای فارسی قاعدتا باید uicode باشن - پس اگر با هر نام فارسی خطا میگرفتی میگفتم تقصیر از اینه. از طرف دیگه در help صراحتا گفته شده که اگه در نام فیلد space وجود داره از bracket استفاده بشه که اون هم مشکل شما رو حل نکرد...
به عنوان تیری در تاریکی به جای bracket از QouterStr استفاده کن ببینیم چی میشه. هر چند که خیلی مطمئن نیستم...

ارادت

vcldeveloper
چهارشنبه 21 آذر 1386, 22:28 عصر
Off-topic:
اون عبارت Application.ProcessMessages در کد شما کاربرد خاصی نداره، بهتره حذفش کنید.
درباره ProcessMessages قبلا توضیح داده شده، دوباره اینجا تکرار نمی کنم.

stringer
یک شنبه 25 آذر 1386, 12:23 عصر
سلام درسته در مورد تحقیق کردم اما این جواب سوالم نیست
من الان چیکار کنم چه راهکاری میتونیم پیدا کنیم ؟
ممنون میشم کمکم کنید