ورود

View Full Version : سوال در مورد بانک اطلاعاتی adodb



IMANAZADI
یک شنبه 13 تیر 1389, 21:52 عصر
با سلام خدمت دوستان عزیز
یک مشکلی برام پیش اومده خواستم از شما عزیزان کمک بگیرم
من از تو refrence گزینه مربوطه را اضافه کردم
یک تکس باکس هم روی فرم گذاشتم
و اسم فایل اکسس هم i در درایو c هست
اسم table هم data هست
و در فرم کد زیر را وارد کردم

Private Sub Form_Load()

Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0 ;Data Source=c:\i.mdb"
rs.Open "data", cnn, adOpenKeyset, adLockOptimistic, adCmdTable

text1.text= rs!name

End Sub

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

IMANAZADI
یک شنبه 13 تیر 1389, 23:55 عصر
منظورم rs.movenext هست ولی وقتی این کد را در command1 میزارم جواب نمیده و ارور میده

IMANAZADI
دوشنبه 14 تیر 1389, 09:32 صبح
کسی نیست کمک کنه ؟

M.T.P
دوشنبه 14 تیر 1389, 10:59 صبح
خب به نظر من شما در هنگام استفاده از MoveNext به رکورد آخر که میرسی اینطوره و باید کنترلش کنی.
از این کد استفاده کن:

rs.MoveNext
If rs.EOF = True Then rs.MoveLast

و برای MovePrevious هم:

rs.MovePrevious
If rs.BOF = True Then rs.MoveFirst

tdodangeh
دوشنبه 14 تیر 1389, 11:03 صبح
این برنامه رو با توضیحات شما ساختم نگاه کنید.
اگر توضیح خواستید بگید.

IMANAZADI
دوشنبه 14 تیر 1389, 12:13 عصر
درسته مشکل حل شد ولی یک سوال من همین کار را انجام میدادم ولی جواب نمی داد
حالا مشکل کجا بود براتون عرض میکنم که راهنمایی کنید
اگر به کد بالا که در پست یک گذاشتم نگاه کنید یک خط هست
Dim rs As New ADODB.Recordset
اگر این خط باشه نه فایل شما دوست عزیز جواب میده نه راه حل قبلی
علت به نظر شما چیه ؟؟؟
مگه ما نباید یک رکوردست ایجاد کنیم
پس چرا پس از ایجاد رکوردست دکمه کلیک دیگه عمل نمیکنه و ارور زیر را میده
Run-time error '3704':
Operation is not allowed when the object is closed.
در صورتیکه فایل بسته نشده ؟؟؟؟

M.T.P
دوشنبه 14 تیر 1389, 12:22 عصر
درسته ما هم بی دقتی کردیم.
کدت درسته دوست من فقط اشکالش اینه که Dim rs As New ADODB.Recordset رو با ید اعلان عمومی کنی یعنی خارج از Form_Load بنویسیش و یا در یک ماژول. :قلب:
موفق باشید.

tdodangeh
دوشنبه 14 تیر 1389, 12:29 عصر
شما باید دستور dim rs as new recordset رو خارج از form_load بنویسید یعنی بصورت public معرفی کنید چون شما می خواهید از rs در sub command1 نیز استفاده کنید.