PDA

View Full Version : جستجو در بانک اکسس کمک کنید



HjSoft
پنج شنبه 17 آبان 1386, 13:57 عصر
من در حال نوشتن برنامه ای هستم حالا میخواهم بین فیلد ها با این کد بگردم
form2.ADOQuery1.SQL.Text:=
'select * from telephon where lname like'+quotedstr('%'+fnamesr.Text+'%')
'select * from telephon where fname like'+quotedstr('%'+namesr.Text+'%');





خوب حالا وقتی این کد ها رو میزنم جواب میده اما حالا می خوام توسط label دوم توی یک فیلد دگه بگده مثلا:
در نرم افزار 118 می خواهم اسم میدی اول بین فیلدها اسم رو سرچ می کنه بعد میاد توی این نتایج فامیل رو سرچ می کنه من هم می خوام همچی چیزی داشته بشم در ضمن باید کد به صورتی باشه که مثلا جعفر را زدی و فیلدی که در او جعفر بود مثلا جعفرزاده رو باز کنه فکر کنم متوجه شده باشید در ضمن من تا نصفی از او رو تو کد های بالا نوشتم اما سرچ نمیکنه وقتی یکی رو حذف میکنی جواب میده اونو سرچ می کنه من می خواهم دو تا فیلد رو باه سرچ کنه

dkhatibi
پنج شنبه 17 آبان 1386, 15:15 عصر
عزیز من
از متد add استفاده کن نه Text.

AdoQuery.sql.add('select * from telephon where lname like'+quotedstr('%'+fnamesr.Text+'%')');
AdoQuery.sql.add('select * from telephon where fname like'+quotedstr('%'+namesr.Text+'%');

HjSoft
پنج شنبه 17 آبان 1386, 19:20 عصر
از جناب dkhatibi متشکرم اما جواب نداد می تونید به تاپیک تازه ای که باز کردم بروید
http://barnamenevis.org/forum/showthread.php?p=418339#post418339


لینک بالا با همین تاپیک ادغام شد. برای یک سوال چندین تاپیک ایجاد نکنید.
کشاورز

HjSoft
پنج شنبه 17 آبان 1386, 20:26 عصر
:گریه:
با سلام مجدد آقای دختیبی شما گفته بودید میشه از کد:

AdoQuery.sql.add('select * from telephon where lname like'+quotedstr('%'+fnamesr.Text+'%')');
AdoQuery.sql.add('select * from telephon where fname like'+quotedstr('%'+namesr.Text+'%');
برای جستو جو بین دو فیلد استفاده کرد اما کد شما مشکلاتی را داشت که آنها را در تصویر ضمیمه مشاهده و لطفا چک کنید مربوط به
http://barnamenevis.org/forum/showthread.php?t=84090.

behnam_dr
پنج شنبه 17 آبان 1386, 20:51 عصر
من فکر میکنم شما اگز از اون تابع در دستورتون به کار نبرید دچار مشکل نشوید دستورتون به شکل زیر باید باشه مثلا:
like ''%'+ComboBox8.Text+'%''

حمیدرضاصادقیان
پنج شنبه 17 آبان 1386, 23:08 عصر
سلام.اولا خطای شما به این برمیگرده که خط اول شما دارای ; نمی باشد. دوما چرا دوتا دستور select رو داخل یک query نوشتین.شما میتونید در شرط Where از and یا or استفاده کنید تا نتیجه دلخواه رو بگیرین
مثلا به صورت زیر


with adoquery1 do
begin
sql.clear;
sql.add('Select * from telephon where lname like'+quatedstr('%'+fnamesr.text+'%')' and fname like '+quatedstr('%'+namesr.text+'%')');
open;
End;

HjSoft
جمعه 18 آبان 1386, 07:32 صبح
سلام.اولا خطای شما به این برمیگرده که خط اول شما دارای ; نمی باشد. دوما چرا دوتا دستور select رو داخل یک query نوشتین.شما میتونید در شرط Where از and یا or استفاده کنید تا نتیجه دلخواه رو بگیرین
مثلا به صورت زیر
کد:
with adoquery1 do
begin
sql.clear;
sql.add('Select * from telephon where lname like'+quatedstr('%'+fnamesr.text+'%')' and fname like '+quatedstr('%'+namesr.text+'%')');
open;
End;

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

vcldeveloper
جمعه 18 آبان 1386, 08:09 صبح
wolf-sky (http://barnamenevis.org/forum/member.php?u=39205) ، وقتی هنوز پست های این تاپیک شما را به جواب سوالتان نرسانده، چرا بی جهت گفتگو را تایید کردید؟!
این دکمه زمانی استفاده می شود که تاپیک به نتیجه رسیده باشد.

SYNDROME
جمعه 18 آبان 1386, 08:40 صبح
دوست عزیز من می خوام بین دو فیلد سرچ بشه نه اینکه پاک بشه
دست عزیز wolf-sky سوال خود را بهتر مطرح کنید تا دوستان هم متوجه شوند.
اگر منظورتان جستجو در دو فیلد است جوری که دو فیلد هم دارای مقادیر ورودی باشد دوستمان درست گفت و اگر منظورتان بر قرار بودن یکی از دو شرط است به جای And از OR استفاده کن.


sql.add('Select * from telephon where lname like'+quatedstr('%'+fnamesr.text+'%')' and fname like '+quatedstr('%'+namesr.text+'%')');

حالا اگر باز هم به جواب نرسیدی کمی بیشتر در رابطه با مسئله فوق توضیح بده دقیقاً چه کار می توانی انجام دهی.
موفق باشید

arshia_
شنبه 19 آبان 1386, 08:07 صبح
شما دوتا فرمان رو زیر هم نوشتی و می خوای جواب هم بده؟
باید روش صحیح رو استفاده کنی
اول اینکه هر وقت خواستی یه فرمان جدید اس یکو الا بنویسی مقدار قبلی رو پاک کنی
دوم اینکه می تونی این دوتا فرمان رو با هم ترکیب کنی
مثال :
<code>
DM.Qry.SQL.Clear;
DM.Qry.SQL.Add('SELECT * From tblUser where UCode= :UN AND UPass= :UP And UActive=True');
DM.Qry.Parameters.ParamByName('UN').Value:=trim(Bo xCode.Text);
DM.Qry.Parameters.ParamByName('UP').Value:=BoxPass .Text;
DM.Qry.open;
<code/>
با کمک پارامترها مشکل اضافه کردن متن از باکس رو هم نداری

HjSoft
شنبه 19 آبان 1386, 15:26 عصر
من دوباره از کد های شما استفاده کردم اما با این ارور رو به رو شدم کمک کنید
دوست عزیز ارشیا جان من نمیدونم چه جوری باید زیر هم ننوشت لطفا توضیح بدهید

SYNDROME
شنبه 19 آبان 1386, 18:05 عصر
من دوباره از کد های شما استفاده کردم اما با این ارور رو به رو شدم کمک کنید

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

arshia_
یک شنبه 20 آبان 1386, 07:45 صبح
من در حال نوشتن برنامه ای هستم حالا میخواهم بین فیلد ها با این کد بگردم
form2.ADOQuery1.SQL.Text:=
'select * from telephon where lname like'+quotedstr('%'+fnamesr.Text+'%')
'select * from telephon where fname like'+quotedstr('%'+namesr.Text+'%');





خوب حالا وقتی این کد ها رو میزنم جواب میده اما حالا می خوام توسط label دوم توی یک فیلد دگه بگده مثلا:



در نرم افزار 118 می خواهم اسم میدی اول بین فیلدها اسم رو سرچ می کنه بعد میاد توی این نتایج فامیل رو سرچ می کنه من هم می خوام همچی چیزی داشته بشم در ضمن باید کد به صورتی باشه که مثلا جعفر را زدی و فیلدی که در او جعفر بود مثلا جعفرزاده رو باز کنه فکر کنم متوجه شده باشید در ضمن من تا نصفی از او رو تو کد های بالا نوشتم اما سرچ نمیکنه وقتی یکی رو حذف میکنی جواب میده اونو سرچ می کنه من می خواهم دو تا فیلد رو باه سرچ کنه



شما دوتا فرمان select رو ترکیب کردید بدون اینکه اونا رو با هم ارتباط منطقی بدید
یا باید با کمک یک دستور select هر دو شرط رو چک کنید
یا اینکه یکی رو با select و دیگری رو با locate دلفی مقایسه کنید

SYNDROME
یک شنبه 20 آبان 1386, 08:01 صبح
شما دوتا فرمان select رو ترکیب کردید بدون اینکه اونا رو با هم ارتباط منطقی بدید
یا باید با کمک یک دستور select هر دو شرط رو چک کنید

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

HjSoft
شنبه 26 آبان 1386, 16:57 عصر
من جوابی نگرفتم کمک کنید ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

szabeh
یک شنبه 27 آبان 1386, 07:56 صبح
شاید این جواب سؤال شما باشد:

SYNDROME
یک شنبه 27 آبان 1386, 08:04 صبح
من جوابی نگرفتم کمک کنید ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

دوست عزیز با توجه به توضیحات شما دوستان جواب دادند.
اگر باز هم به جواب نرسیدید کاملاتر از قبل توضیح دهید تا بتوانیم بیشتر به شما کمک کنید.(مشکل را باز هم بیان کنید)
موفق باشید