PDA

View Full Version : خطا در دستور openrecordest



mhamedm2008
دوشنبه 01 مهر 1392, 17:18 عصر
با سلام
من از دستور زیر استفاده می کنم و اکسس خطا میگره

Dim db As Database
Dim rst As Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset(" select * from gh_Q_person_v WHERE ((personid)=1)")
Text9 = rst.Fields(2)

پیغام خطا : Too few parameters. Expected <number>. (Error 3061)

نکته مهم اینه که gh_Q_person_v نام یک Query هست.اگر نام تیبل باشه مشکلی نیست ولی می خوام توی یک Query جتجو کنه این مشکل پیش میاد
ممنون

mazoolagh
سه شنبه 02 مهر 1392, 12:00 عصر
select خود query چی هست؟

mhamedm2008
پنج شنبه 04 مهر 1392, 00:12 صبح
select خود query چی هست؟



SELECT gh_person_v.personid, gh_person_v.person_kodmeli, gh_person_v.check_last, gh_person_v.person_kod_goruh
FROM gh_person_v
WHERE (((gh_person_v.person_kod_goruh)=(SELECT gh_Q_grouh_makan.kod_ghoruh1 FROM gh_Q_grouh_makan) Or (gh_person_v.person_kod_goruh)=(SELECT gh_Q_grouh_makan.kod_ghoruh2 FROM gh_Q_grouh_makan) Or (gh_person_v.person_kod_goruh)=(SELECT gh_Q_grouh_makan.kod_ghoruh3 FROM gh_Q_grouh_makan) Or (gh_person_v.person_kod_goruh)=(SELECT gh_Q_grouh_makan.kod_ghoruh4 FROM gh_Q_grouh_makan) Or (gh_person_v.person_kod_goruh)=(SELECT gh_Q_grouh_makan.kod_ghoruh5 FROM gh_Q_grouh_makan) Or (gh_person_v.person_kod_goruh)=(SELECT gh_Q_grouh_makan.kod_ghoruh6 FROM gh_Q_grouh_makan) Or (gh_person_v.person_kod_goruh)=(SELECT gh_Q_grouh_makan.kod_ghoruh7 FROM gh_Q_grouh_makan)));

این کوئری جواب هاش درسته و بدون اشتباه.ولی وقتی توی دستور بالا اسم این کوئری را می نویسیم اررور Too few parameters. Expected <number> را می گیره
با تشکر

mazoolagh
پنج شنبه 04 مهر 1392, 12:11 عصر
شرط personid رو هم به متن همین کوئری اضافه و در openrecordset این select جدید رو استفاده کنین. احتمالا در openrecordset فرمت کوئری یک محدودیت هایی داشته باشه.

ضمنا بنظر میاد این شرط where فعلی رو هم بتونین ساده تر کنین:
where person_kod_grouh in (select ....)

mhamedm2008
جمعه 05 مهر 1392, 00:34 صبح
سلام
بازم نشد

آیا مشکل از تعریف پارامتر ها هست؟



Dim db As Database
Dim rst As Recordset
Set db = CurrentDb



وقتی یک کوئری ساده هم تعریف می کنم بازم هم همین خطا رو می گیره
می تونید یه نمونه ساده خودتون بزارید

Abbas Amiri
جمعه 05 مهر 1392, 00:44 صبح
سلام
بازم نشد

آیا مشکل از تعریف پارامتر ها هست؟



Dim db As Database
Dim rst As Recordset
Set db = CurrentDb



وقتی یک کوئری ساده هم تعریف می کنم بازم هم همین خطا رو می گیره
می تونید یه نمونه ساده خودتون بزارید

بهتره شما نمونه خودتون رو بذارید تا سریعتر به جواب برسید . فقط جداول و کوئری مربوطه

mhamedm2008
جمعه 05 مهر 1392, 01:17 صبح
این ربطی به فایل اصلیم نداره و یک کوئری ساده ساختم
ولی باز هم همون مشکل رو داره
ممنون

Abbas Amiri
جمعه 05 مهر 1392, 02:31 صبح
این ربطی به فایل اصلیم نداره و یک کوئری ساده ساختم
ولی باز هم همون مشکل رو داره
ممنون

از روش زیر استفاده کنید:
ضمنا برای کار با متغیرهای رشته به پست زیر هم رجوع کنید:
http://barnamenevis.org/showthread.php?420681-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%A9%D8%A7%D8%B1%D8%A7%DA%A9%D8%AA%D8%B1%D9%87%D 8%A7&p=1884609&viewfull=1#post1884609

mhamedm2008
شنبه 13 مهر 1392, 01:43 صبح
ضمنا بنظر میاد این شرط where فعلی رو هم بتونین ساده تر کنین:
where person_kod_grouh in (select ....)
میشه بگین دقیقا چه جوری باید سادش کنم؟
ممنون

mazoolagh
دوشنبه 15 مهر 1392, 11:43 صبح
مقادیری رو که or کردین در in معرفی کنین

mhamedm2008
سه شنبه 16 مهر 1392, 16:55 عصر
با عرض پوزش
دستور in رو بلد نیستم
اگه ممکنه یه نمونه بزارین
ممنون

mazoolagh
چهارشنبه 17 مهر 1392, 11:06 صبح
select * from gh_person_v where person_kod_grouh in (1,3,9)