ورود

View Full Version : مشکل با دستور جستجوی جدول ساز اس کی یو ال (make table query)



zapata-es2
یک شنبه 13 آذر 1384, 19:17 عصر
با سلام
من کد زیر رو نوشتم ولی پیغام خطا میده .
Adodc2.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\new.mdb"
"Adodc2.RecordSource = "select * ino db2 from db1
Adodc2.Refresh

پیغام خطا:
operation is not allowed when the object is closed
کسی میتونه راهنمایی کنه؟ از دستور insert هم استفاده کردم ولی اونم همین پیغام رو میده.

PalizeSoftware
یک شنبه 13 آذر 1384, 20:13 عصر
دوست عزیز این روش جالبی نیست اما بهرحال اگه اصرار داری جواب بگیری باید یکبار بازش کنی و بعد دستور بدی.


Adodc2.ConnectionString = " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\new.mdb"
"Adodc2.RecordSource = "select * from db1
Adodc2.Refresh

"Adodc2.RecordSource = "select * ino db2 from db1
Adodc2.Refresh

zapata-es2
یک شنبه 13 آذر 1384, 20:43 عصر
ممنونم از جوابتون. روش کار میکنم ببینم چطور میشه. اما حالا یه سوال دیگه.
روش جالب چطوریه؟؟؟ میشه توضیح بدین.
ممنونم از لطفتون.

zapata-es2
یک شنبه 13 آذر 1384, 21:01 عصر
با سلام مجدد
کد خودم رو مثل کد بالا اصلاح کردم حالا مشکل اینه که کد کار میکنه یعنی جدول جدید ساخته میشه و اطلاعات درون اون ریخته میشه ولی باز هم پیغام خطا ظاهر میشه . با دستور Insert هم یک رکورد اضافه کردم ولی بازم ایراد میگیره.
وقتی adodc1.refresh رو پاک میکنم خطا گرفته نمیشه اما خب کد هم اجرا نمیشه. فکر میکنید مشکل کجاست/؟

PalizeSoftware
یک شنبه 13 آذر 1384, 21:12 عصر
دوست عزیز روش درست ارتباط با بانک‌های اطلاعاتی قبلا در این سایت مطرح شده اما یکبار دیگه توضیح می‌دم
روش صحیح از طریق بکارگیری کلاسهای معرفی شده در این زمینه هست.
برای شروع ابتدا وارد منوی Project‌ بشید و گزینه Reference رو انتخاب کنید.
از لیست باز شده گزینه Microsoft ActiveX Data Object‌ رو انتخاب کن.(هر نسخه‌ای بود فعلا زیاد مهم نیست)
حالا باید یه کانکشن برای اتصال به منبع داده‌ها بسازی به این صورت:


Dim Cnn As ADODB.Connection
Set Cnn = New ADODB.Connection

با معرفی متغیر Cnn شما قادرید تا بانک رو باز کنید و دستورات SQL رو اجرا کنید بدین صورت:


Cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\new.mdb"

این متغیر متدهای دسترسی ویژه‌ای فراهم می‌کنه. بعنوان مثال برای درج یا حذف و ... متد Execute قابل استفاده است


Cnn.Execute "select * ino db2 from db1"

این از این و اما برای دریافت داده‌ها از جداول باید متغیری از نوع RecordSet معرفی کنیم:


Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset

این متغیر در واقع همان AdoDC1.RecordSet هست. یعنی برای باز کردن جداول:


rst.Open "Select * from db1", Cnn, adOpenStatic

نهایتا در پایان هم باید هر دو شئی رو ببندید:


rst.Close
Cnn.Close
Set rst = Nothing
Set Cnn = Nothing


برای ادامه بحث در بخش‌های مختلف سایت به جستجو بپرداز تا اطلاعات کامل‌تری دریافت کنی.
موفق باشی

zapata-es2
دوشنبه 14 آذر 1384, 04:55 صبح
یک دنیا تشکر . روش کار میکنم.