PDA

View Full Version : سوال: نحوه جستجو در بین دو تاریخ



hentjanson
یک شنبه 12 خرداد 1387, 07:15 صبح
سلام چطور میشه بین دو تاریخ1/3/1387 تا 1387/1/12 جستجو کرد من یک فیلد به اسم date دارم تو بانکم اکسس می خوام بگم بره از تو این فیلد تاریخ های حدفاصل این دو رو نشون بده و قابل تغییر باشه نه که همین اول فیلتر کنم دو تا edit بزارم که تو یکی تاریخ اول و تو دومی تاریخ دوم رو بنویسم بعد جدول بر اساس این دو فیلتر شه از adotable استفاده می کنم

اصغر (پآچ)
یک شنبه 12 خرداد 1387, 13:56 عصر
سلام دوست من
اگه یکم جستجوی می کردی خیلی زودتر به جواب می رسیدی به جای ایجاد تاپیک های تکراری
قبلش حتما جستجو کن

با این دستور


ADOQuery1.SQL.Add('SELECT * FROM tablename WHERE date BETWEEN ''' + Edit1.Text + ''' AND ''' Edit2.Text + ''');


موفق و موید باشی

pandco
یک شنبه 12 خرداد 1387, 13:56 عصر
با سلام
من از روش زیر استفاده کردم جواب داده اما در adoquery

with adoquery do
begin
Close;
SQL.Text:='Select * From TabelName where [date] Between '+quotedstr(edit1.text)+' AND '+quotedstr(edit2.text);
Open;
end;

---------------------------------------------------------------------------------------
به جای آنکه سعی کنید جای کسی را بگیرید، تلاش کنید جای واقعی خود را بیابید.

hentjanson
یک شنبه 12 خرداد 1387, 18:46 عصر
سلام از راهنماییتون .
میشه در همین رابطه یک مثال برام بزنید یعنی تا همین حدی که گفتید برنامه ای برام بنویسید اخه متوجه نشد م تازه کارم راهنماییتون خوبه ولی من تو اجراش مشکل دارم

delphiprog3000
یک شنبه 12 خرداد 1387, 19:23 عصر
سلام.
دوست عزیز شما میتوانید دستورات sql را به ابزارهای مانند Ado ها ارسال کنید و آنها برای شما نتایج را ارسال کنند.

به طور مثال این دستور را به شی Adoquery که در تب Ado در دلفی 7 میباشد. پاس میدهیم.



with adoquery do
begin
Close;
SQL.Text:=' Select * From Tabel1 where [date] Between '+quotedstr(edit1.text)+' AND '+quotedstr(edit2.text);
Open;
end;

و برای نمایش دادهای بازگشتی میتوانید از ابزار Dbgrid در تب datacontrol و با استفاده از شی Datasource در تب Dataaccess وجود دارد ارتباط دهید.

موفق باشید..............

hentjanson
یک شنبه 12 خرداد 1387, 20:09 عصر
نتونستم یعنی نمیدونم چرا جواب نمیده میشه همینو در قالب یه برنامه بهم بدی البته اگه زحمتت نمیشه اخه فوریه

delphiprog3000
یک شنبه 12 خرداد 1387, 20:14 عصر
امیدوارم این کار خلاف قوانین نباشه اگه کمی به من فرصت بدید براتون میزارم.

hentjanson
یک شنبه 12 خرداد 1387, 20:19 عصر
متشکر از شما منتظرم هستم

delphiprog3000
یک شنبه 12 خرداد 1387, 20:44 عصر
دوست عزیز من جستجو رو براتون با Adoquery گذاشتم که نمایش اطلاعات را در Dbgrid نمایش میدهد.

دیتابیس sql که آن را باید Attach کنید.

امیدوارم مفید واقع بشه. موفق باشید...........

hentjanson
یک شنبه 12 خرداد 1387, 21:12 عصر
ببین من الان اگه یک بانک به این وصل کنم درسته اره ؟

hentjanson
یک شنبه 12 خرداد 1387, 21:24 عصر
ببین نمیشه بانک اینو اکسس کنی تا منم از اجرای برنامه سر در بیارم اخه خیلی گیرم روی این واسه فردا باید ببرم دانشگاه

delphiprog3000
دوشنبه 13 خرداد 1387, 10:36 صبح
با سلام.
دوست عزیز زیاد تفاوتی نداشت . ولی من اینبار دیتابیس Access رو براتون داخل پوشه گذاشتم.

تنها تفاوت اینه که شما در قسمت Providers که در خصوصیات Adoconnection میباشد.

که برای ارتباط با پایگاه Sql باید Microsoft Ole Db Privider For Sql server اتخاب کنید.

و برای پایگاه داده Access باید Microsoft Jet 4.0 Ole Db Provider رو اتخاب کنید.

بقیه کدهایی که داخل برنامه هست تفاوتی ندارد.

موفق باشید..............

hentjanson
دوشنبه 13 خرداد 1387, 12:12 عصر
سلام ببین یک سوال دیگه اگه ارتباط بین این و بانک رو برقرار کنم مشکل حل میشه یا نه ؟ یعنی اینکه بقیه مراحل کار اشکال نداره فقط من اینو الان وصل کنم به بانک اره ؟
اخه الان دلفی ندارم نمیتونم تست کنم برای همین سوال کردم ؟
مرسی ببین اگه وقتش رو داری برقرار کن خودت وگرنه همین جواب بده

delphiprog3000
دوشنبه 13 خرداد 1387, 12:28 عصر
سلام.
دوست عزیز این فایلی که گذاشتم نیازی به دیتابیس نداره اجرا میشه.
نهایتا شما یه Access رو سیستمتون نصب کنید.

موفق باشید..........

hentjanson
سه شنبه 14 خرداد 1387, 06:59 صبح
مرسی از کمکتون مشکلم حل شده با کمک شما

hentjanson
سه شنبه 14 خرداد 1387, 19:46 عصر
سلام من از این استفاده کردم نمیگرده رو برنامه من جوای نمیده از دئستان کی میتونه برنامه منو نگاه کنه برای اصلاح

SYNDROME
سه شنبه 14 خرداد 1387, 20:53 عصر
سلام من از این استفاده کردم نمیگرده رو برنامه من جوای نمیده از دئستان کی میتونه برنامه منو نگاه کنه برای اصلاح
دوست عزیز کدام برنامه؟؟؟؟
موفق باشید

hentjanson
سه شنبه 14 خرداد 1387, 21:31 عصر
میشه در مورد شی ado query برای من توضیحاتی بدین روند دستور select و اینکه یک فیلد از بان رو چطور توسط این شی میشه استفاده کرد

hentjanson
سه شنبه 14 خرداد 1387, 22:38 عصر
هر کار می کنم نمیگرده تو برنامه من راه دیگه هم هست اگه دوستان میشه کمکم کنید یک مثال ساده برام بزنید با accept اینو نمیشه حل کرد ؟

SYNDROME
چهارشنبه 15 خرداد 1387, 08:13 صبح
میشه در مورد شی ado query برای من توضیحاتی بدین روند دستور select و اینکه یک فیلد از بان رو چطور توسط این شی میشه استفاده کرد

هر کار می کنم نمیگرده تو برنامه من راه دیگه هم هست اگه دوستان میشه کمکم کنید یک مثال ساده برام بزنید با accept اینو نمیشه حل کرد ؟

سلام من از این استفاده کردم نمیگرده رو برنامه من جوای نمیده از دئستان کی میتونه برنامه منو نگاه کنه برای اصلاح
دوست عزیز بهتر است به جای سردرگمی کدی را که نوشته اید و جواب نداده اینجا قرار دهید؟ و یا برنامه را اینجا قرار دهید تا تست شود؟
موفق باشید

delphiprog3000
پنج شنبه 16 خرداد 1387, 12:00 عصر
با سلام.
دوست عزيز دو فايلي كه براتون گذاشتم رو آپديت كردم.

نبايد مشكل خاصي داشته باشيد.

بازم مشكلي بود مطرح كنيد......

موفق باشيد...............

hentjanson
پنج شنبه 16 خرداد 1387, 13:16 عصر
سلام ببین اونجا درسته ولی من کد هارو وقتی میارم تو برنامه خودم کار نمیکنه یعنی اینکه تو تگ sql فرمان ado query باید اینو بنویسم select movarekhe from table1 اینه دیگه درسته تا اینجا من بانک برنامه شما رو عوض کردم بانک خودمو گزاشتم ولی همش دنبال فیلد date1 میگرده وقتی می خوام active کنم adoquery رو ! با وجود اینکه تو روند sql adoquery خط * رو به movarekh تبدیل کردم میشه بگی چرا وقتی می خوام active کنم اینطوری میشه جایی دیگه ای یعنی فیلد بانک انتخاب شده ؟؟؟؟

SYNDROME
پنج شنبه 16 خرداد 1387, 20:36 عصر
میشه بگی چرا وقتی می خوام active کنم اینطوری میشه جایی دیگه ای یعنی فیلد بانک انتخاب شده ؟؟؟؟
1-بر روی Adoدابل کلیک کنید.اگر فیلدی به آن اضافه شده است آن را پاک کنید.
2-همه رویدادهای ado را از آن قطع کنید.
موفق باشید

delphiprog3000
پنج شنبه 16 خرداد 1387, 20:49 عصر
با سلام.
در ادامه صحبت دوستمان اینم بگم.

که هر adoquery یک خاصیت sql دارد که شما باید آن را تغییر دهید.

مثال:



select * from table1
و بعد آن بر روی adoquery خود دابل کلیک کنید.

یکسری لیست فیلد میاد آنها را delete کنید.

سپس کلید Ctrl+f را بزنید تا بر حسب کدی که نوشتید از جدول شما فیلدهای مورد نظر خوانده شود و در داخل کوری لود شود.

دیگه نباید مشکلی باشه.

موفق باشید.........................

hentjanson
جمعه 17 خرداد 1387, 16:57 عصر
ببینید نمیشه طور دیگه گشت مثلا با accept .
اینو نمیدونم با accept چطور درست کنم از اساتید کسی بلد هست با accept بین دو تاریخ رو بگرده .
فیتر کردن بر حسب بزرگ یا کوچکتر بودن

SYNDROME
جمعه 17 خرداد 1387, 17:03 عصر
ببینید نمیشه طور دیگه گشت مثلا با accept .
اینو نمیدونم با accept چطور درست کنم از اساتید کسی بلد هست با accept بین دو تاریخ رو بگرده .
فیتر کردن بر حسب بزرگ یا کوچکتر بودن
سوالات خود را یکی یکی مطرح کنید تا تک تک به جواب برسید.
استفاده از دستورات SQL خیلی بیشتر به شما کمک می کند.
بهتر است Source برنامه خود را اینجا قرار دهید(یا همان تکه که Error می دهد) تا دوستان مشکلتان را حل کنند.
فکر کنم این بهترین راه حل برای حل مشکل شماست.
موفق باشید

hentjanson
جمعه 17 خرداد 1387, 17:05 عصر
چطور برنامه رو بزرام اینجا attach کنم اخه تازه وارد میشه بگب چطور برنامه رو ضمیمه کنم به مطالبم

اصغر (پآچ)
جمعه 17 خرداد 1387, 17:30 عصر
سلام دوست من

دوست من هنگام پاسخ دادن به این پست ها رو "حالت پیشرفته" کلیک کن و پاسخت رو بنویس بعدش در همون صفحه برو پایین تر نوشته ضمایم فایل خودت رو Zip یا Rar کن و از اون طریق بذار داخل سایت.

راستی قرار بود برام چیزی بفرستی ها! چی شد؟

موفق و موید باشی!

اصغر (پآچ)
جمعه 17 خرداد 1387, 17:49 عصر
سلام دوست من

برای استفاده از دستور SELECT می تونی اینجا (http://barnamenevis.org/forum/showthread.php?p=516679#post516679) رو بخونی شاید کمکت کنه!

موفق و موید باشید