ورود

View Full Version : مبتدی: این ارور چیه؟



desatir7316
شنبه 31 تیر 1391, 20:26 عصر
سلام دوستان
چندان از این کدها سر در نمیارم:

Ad1.Recordset.AddNew

مثلا این ad1 اصلا نمی دونم تعریفش کجاست

راستی برای برقراری ارتباط باید توی obdc توی administrative tools توی کنترل پنل تنظیمات خاصی باید انجام بشه؟ یا اصلا کلا باید تنظیمات خاصی انجام بشه یا همین کد نویسی اکتفا می کنه؟
ممنون
اگه یه توضیح کوچیکی هم به اینها بدین ممنون می شم:
توی فروم گشتم ولی هرچی می کنم بازم درست نمی شه:

Dim con As New Connection
Dim Rs As New Recordset

If Ad1.Recordset.EOF = False Then


con.CursorLocation = adUseClient
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=VBDataBase97.mdb;Persist Security Info=False"
Rs.Open "select * from AnbarTable", con, adOpenStatic, adLockOptimistic


ممنون دوستان الان ارور زیر رو میده:

object required

debug رو که میزنم میره سراغ این خط کد:

Set DataGrid1.DataSource = Rs

ممنون میشم راهنمایی کنید

m.4.r.m
سه شنبه 17 مرداد 1391, 13:45 عصر
Ad1.Recordset.AddNew

این قسمت منظور این است که شما می توانید رکورد جدید را به Adodc که پایگاه داده رو به اون متصل کرده اید رو ایجاد کنه .


راستی برای برقراری ارتباط باید توی obdc توی administrative tools توی کنترل پنل تنظیمات خاصی باید انجام بشه؟ یا اصلا کلا باید تنظیمات خاصی انجام بشه یا همین کد نویسی اکتفا می کنه؟

نخیر لازم نیست ، این کار رو بکنی یا به صورت کد نویسی یا به صورت ویزارد عمل اتصال رو انجام بدین مشکل حل می شود .


Dim con As New Connection
Dim Rs As New Recordset

If Ad1.Recordset.EOF = False Then


con.CursorLocation = adUseClient
con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=VBDataBase97.mdb;Persist Security Info=False"
Rs.Open "select * from AnbarTable", con, adOpenStatic, adLockOptimistic




در این قسمت شما از طریق Adodb به پایگاه داده اتصال داده شده اید . اما ad1 منظور نفهمیدم چی هستش اگه از cn , rs استفاده کردید دیگه لازم به Adodc نیست در ضمنcn یعنی Connection String یعنی رشته اتصال و RS یعنی Recordset شما در خط If Ad1.Recordset.EOF = False Then باید بنویسید if rs.recordset.eof=false then این هم منظور این است که اگر رکورد های شما به آخر نرسیده باشند فلان کار رو انجام بده EOF مخفف End Of File هست .

اول باید برید از این مسیر این گزینه رو را فعال کنید
Project - Refrence - Microsoft Actixiv Data Object

بعد اینو بخون :


نحوه ارتباط پایگاه داده Access با Visual Basic از طریق کد نویسی:
* شی ADODB :
برای این کار باید یک رابط ایجاد کنیم تا با بانک اطلاعاتی وصل بشیم. رابطهامون متغیرهامون هستن.

Dim Cnn As New ADODB.Connection
متغیر Cnn رابط ما شد. با استفاده شی Connection می تونیم با پایگاه داده وصل بشیم. حالا باید با دستور Open بانک رو باز کنیم:

Cnn.Open(ConnectionString)Cnn: متغیر رابط
ConnectionString :اتصال به انواع مختلف بانک اطلاعاتی هستش. مثل Jet- SQL Server - Oracle - ODBC و...
حالا باید به جداول یانک ارتباط برقرار کنیم. یه متغیر برای اتصال به اسم Rst.

Dim Rst As New ADODB.Recordsetباز کردن جدول با دستور Open صورت میگیره:


Rst.Open(TableName,Connection,CursorType,LockType, Option)
*** نکته: حتماً هر فایلی یا هر بانکی که باز میشه حتماً باید بسته بشه. دستور بستن :

Closeاتصال به بانک:


Dim Cnn As New ODODB.Connection
Dim Rst As New ODODB.Recordset
Cnn.Open ( "Provider=Microsoft.Jet.OLEDB.4.0 ; DataSource= & App.Path & \DataBaseName")
Rst.Open(TableName,Cnn,addOpenKeyset,adLockOptimis tic,adCmdTable
.
.
.
Rst.Close
Cnn.Close
Set Rst = Nothing
Set Cnn = Nothing
با Source و ConnectionString آشنا شدیم. حالا Cursor Type.
CursorType: نوع دسترسی شما به Recordset رو بیان می کنه که با یکسری ثابت مقداری دهی میشه.


adOpenForwardOnly: فقط Recordset خواندنی
adOpentStatic : یک Recordset استاتیک در اختیار شماست یعنی هر تغییری که انجام بدین در بانک اعمال نمیشه!
adOpenDynamic: یه Recordset کامل و پویا رو در اختیارتون قرار می ده.
LockType: یک نوع Permission برای Recordset اختیار می کنین.

adLockReadOnly: اجازه ایجاد رکورد جدید رو ندارید. فقط مشاهده.
adCmdtext: تویه پست قبلی توضیح دادم.
adCmdTable : تویه پست قبلی توضیح دادم.
adLockOptimistic: هنگام Update کردن Recordset رو قفل می کنه.

از اینجا هم می تونی کمک بگیری