ورود

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



negaresh-sa
جمعه 15 مهر 1390, 22:29 عصر
با سلام کد جستجو بین دو بازه تاریخ رو میخوام با توجه به این که تاریخ توی فیلد بانک Access به صورت Text یا همون رشته ای هستش.
پس با Adodc کار میکنم و بانکم اکسس هستش و فیلد ذخیره شده تاریخ توی بانک رشته است.

از دوستان میخوام کمکم کنن.
پیشاپیش سپاسگذارم.

M.T.P
یک شنبه 17 مهر 1390, 00:48 صبح
Select * From Table1 Where FldDate Between '1389/01/01' And '1389/07/01'

negaresh-sa
یک شنبه 17 مهر 1390, 07:39 صبح
Select * From Table1 Where FldDate Between '1389/01/01' And '1389/07/01'

دوست عزیز M.T.P ، توی متن سوال ذکر کرده بودم که فیلد مربوط به تاریخ ، رشته ای تعریف شده پس با Between به این راحتی ها جواب نمیده
آخه بین دو تا Text چجوری بیاد و بر اساس روز و ماه و سال رنج رو تشخیص بده و جست و جو کنه ؟!!!
ممنون میشم بیشتر کمکم کنید.
سپاسگذارم.

M.T.P
یک شنبه 17 مهر 1390, 15:52 عصر
سلام اگه فیلد رو از نوع Date انتخاب می کردید با قالب های مختلف تاریخ مشکل نداشت اما چون رشته ای تعریف کردید باید از یک قالب یک شکل مثل تاریخی که در پست قبل گذاشتم استفاده کنید و همچنین علامت ' رو در راست و چپش فراموش نکنید.

negaresh-sa
یک شنبه 17 مهر 1390, 17:52 عصر
سلام اگه فیلد رو از نوع Date انتخاب می کردید با قالب های مختلف تاریخ مشکل نداشت اما چون رشته ای تعریف کردید باید از یک قالب یک شکل مثل تاریخی که در پست قبل گذاشتم استفاده کنید و همچنین علامت ' رو در راست و چپش فراموش نکنید.

تا حدودی مشکل رو رفع کردم و فیلد های جدول رو از نوع Date/Time گرفتم .
حالا بفرمایید توی اون کد جستجوی بالا میخوام به جای اینکه تاریخ رو دستی وارد کنم از Text1.Text و Texrt2.Text استفاده کنم حالا تکه کد مربوطه رو زحمتش رو بکشید.
توجه داشته باشید که بانک اطلاعاتی من Access هستش نه SQL
در ضمن به جای عملگر Between بهتر نیست از علامت های > < استفاده کنم؟!!!
از راهنمایی و همکاریتون بسیار سپاسگذارم.
ممنونم

M.T.P
یک شنبه 17 مهر 1390, 18:37 عصر
"Select * From Table1 Where FldDate Between" & Text1.Text & " And " & Text2.Text


توجه داشته باشید که بانک اطلاعاتی من Access هستش نه SQL
دستورات هردو مشابه هست فقط ConnectionString متفاوته.

negaresh-sa
سه شنبه 19 مهر 1390, 16:54 عصر
ممنونم ولی نمیدونم چرا جواب نمیده ؟!!!
تاریخی که از کاربر میگیره رو تبدیل به میلادی میکنم و اونموقع توی جدول میگرده.
محتویات فیلد جدول رو هم به میلادی ذخیره کردم
اما بازم جواب نمیده.
نظر شما چیه ؟!!!
سپاسگذارم از راهنمایی شما.

sehm67
یک شنبه 27 آذر 1390, 17:04 عصر
ممنونم ولی نمیدونم چرا جواب نمیده ؟!!!
تاریخی که از کاربر میگیره رو تبدیل به میلادی میکنم و اونموقع توی جدول میگرده.
محتویات فیلد جدول رو هم به میلادی ذخیره کردم
اما بازم جواب نمیده.
نظر شما چیه ؟!!!
سپاسگذارم از راهنمایی شما.
ویرایش دستور:


Adodc1.RecordSource = "SELECT * FROM Table1 Where FldDate between '" & Text1.Text & "' AND '" & Text2.Text & "'"
Adodc1.Refresh

karimi64bit
جمعه 09 دی 1390, 09:51 صبح
این روش هم درسته و جواب میده ولی اگر نوع دیگه ای از این select میخوای میتونی اینطوری هم بنویسیش
روش اول اپتیمایز تر هستش
Adodc1.RecordSource = "SELECT * FROM Table1 Where FldDate >='" & Text1.Text & "' AND FldDate <='" & Text2.Text & "'"
Adodc1.Refresh