• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

مشكل WHERE در دستور SELECT

ABBAS87864

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
100
لایک‌ها
0
سلام دوستان


من يك مشكل در دستور SELECT با VB6 دارم.

من ميخواهم اطلاعات يك روز خاص را پيدا كند.

وقتي دستور زير را مي نويسم هيچ خطايي نگرفته و اجرا مي شود.

SELECT * FROM TABLE WHERE DATEROOZ=#2005/06/02#

ولي وقتي دستور بالا را به صورت زير تغيير مي دهم خطا ميدهد:

W=TEXT1.TEXT

SELECT * FROM TEABLE WHERE DATEROOZ='"&W&"'

كه W تاريخ وارد شده در TEXT1 است.

خطاي زير هنگام اجرا توليد ميشود:


RUN TIME ERROR 3464
DATA TYPE MISMATCH IN CRITERIA EXPRESSION.


لطفا مرا راهنمايي كنيد كه اشكال كار من كجاست.
و دستور صحيح آن را براي من بنويسيد.

با تشكر.
 

littlerabbit

مدیر بازنشسته
کاربر فعال
تاریخ عضویت
13 جولای 2003
نوشته‌ها
678
لایک‌ها
6
سن
42
محل سکونت
Iran
خوب اون انتظار يك تاريخ داره اما شما يه رشته رو براش ميفرستيد. بايد اول رشته توي TEXT1 رو به تاريخ تبديل كنيد بعد (اينكه ظاهرش شبيه به تاريخ باشه كافي نيست) بايد واقعا تاريخ باشه.
 

PersianAmir

کاربر تازه وارد
تاریخ عضویت
1 ژوئن 2005
نوشته‌ها
76
لایک‌ها
1
سلام
من فكر مي كنم چون رشته شما داخل كوتيشن نيست (منظورم اين علامت هست >>>> ' ) اين خطا رخ مي دهد.
بهتره تاريخ مورد نظر را با دو کوتيشن در دو طرف string مورد نظر اضافه کنيد.
مثلاً:
"SELECT * FROM tablename WHERE dateday = '" & w & "'"​
عبارت فوق را در vb کپي کنيد تا به منظور اصلي برسيد.
موفق باشيد
 

ABBAS87864

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
100
لایک‌ها
0
به نقل از PersianAmir :
سلام
من فكر مي كنم چون رشته شما داخل كوتيشن نيست (منظورم اين علامت هست >>>> ' ) اين خطا رخ مي دهد.
بهتره تاريخ مورد نظر را با دو کوتيشن در دو طرف string مورد نظر اضافه کنيد.
مثلاً:
"SELECT * FROM tablename WHERE dateday = '" & w & "'"​
عبارت فوق را در vb کپي کنيد تا به منظور اصلي برسيد.
موفق باشيد


---------------------------
آقاي مدير برنامه نويسي ميشه بگي چجوري.

-----------------------------------------------------
آقاي امير خان كد شما را هم نوشتم ولي باز جواب نداد.

و همان خطا را مي دهد.
 

Niloufar

کاربر تازه وارد
تاریخ عضویت
26 فوریه 2005
نوشته‌ها
102
لایک‌ها
0
سلام
اگه نوع فيلدتونو توي بانك، Text تعريف كرده ايد، بايد دو طرف مقدار (همانطور كه گفته شد) علامت ' قرار دهيد.
اگه نوع فيلدتونو توي بانك، Date تعريف كرده ايد، بايد ابتدا رشته را به تاريخ تبديل كنيد (همونطور كه آقا فرود فرمودند). با دستور CDate ميتونيد اينكار رو انجام بديد. در واقع از (CDate(Text1.Tex استفاده كنيد.
ضمنا اگه ميخوايد از نوع Date استفاده كنيد، بايد تاريختون ميلادي باشه چون مثلا ما 31/2 داريم ولي در ميلادي نداريم. و لذا اگه اين تاريخ رو بديد، خوب ...
 

mostafa_gm

Registered User
تاریخ عضویت
4 آپریل 2005
نوشته‌ها
1,863
لایک‌ها
438
محل سکونت
My House
اينو بنويس حله:
کد:
Adodc.RecordSource = "SELECT * FROM table WHERE date=#" & Text1.Text & "#"
در ضمن فرمت تاريخ تو TextBox حتما بايد بصورت yyyy/dd/mm باشه اگه فرمت فیلد date رو تو Access از نوع
Short Date انتخاب کردی.
 

ABBAS87864

کاربر تازه وارد
تاریخ عضویت
2 نوامبر 2004
نوشته‌ها
100
لایک‌ها
0
دستت درد نكنه.جواب داد

من همه راه ها رارفته بودم و داشتم نااميد مي شدم.

متشكرم.
 
بالا