PDA

View Full Version : یه سوال در مورد ado



sadegi
دوشنبه 15 فروردین 1384, 18:47 عصر
سلام
وقتی که من این کد رو مینویسم
Private Sub Form_Load()
Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
cnn.Open "Provider=Microsoft.Jet.OLEDB.3.51 ;Data Source=c:\test.mdb"
rst.Open "Person", cnn, adOpenKeyset, adLockOptimistic, adCmdTable
Do While Not rst.EOF
lstName.AddItem rst!Name
rst.MoveNext
Loop
cnn.Close
rst.Close
Set cnn = Nothing
Set rst = Nothing
End Sub
این eroor رو میده(تو عکسه)
ز دوستان کسی میدونه اشکال این کد و یا اشکال من در کجاست

Behrouz_Rad
دوشنبه 15 فروردین 1384, 19:36 عصر
عزیزم پس رکوردهات کو؟
حداقل یک دونه رکورد در دیتابیست وارد کن و بعد عملیات فوق رو بر روی دیتابیس پیاده سازی کن.
به این دو تا نکته مهم هم همیشه عمل کن:
1) همیشه قبل از انجام عملیات بر روی Recordset، وجود رکورد رو در Recordset تست کن.


If MyRecordset.RecordCount > 0 Then
'Do Something

2) هیچ وقت از کلمات رزرو شده برای نامگذاری فیلدها استفاده نکن.
ممکنه در ظاهر مشکلی پیش نیاد ولی در دراز مدت خطاهای عجیبی رو میبینی.
Name یکی کلمه رزور شده است.
موفق باشید.

sadegi
سه شنبه 16 فروردین 1384, 09:49 صبح
از شما دوست عزیز به خواطر راهنمایی که کردید خیلی خیلی ممنونم
ولی من حداقل یه رکورد داشتم که این پیغام رو داد
:flower: :flower: :flower:

sadegi
چهارشنبه 17 فروردین 1384, 20:05 عصر
دوست عزیز من تست کردم و فهمیدم که وقتی record مورد نظر , اولین یا آخرین رکورد جدول باشه این error رو میده
لطفا اگه راه حلی میدونین به من هم بگین (هر چه زود تر بهتر )
:flower: :flower: :flower: :flower:

sadegi
چهارشنبه 17 فروردین 1384, 20:14 عصر
البته کد اصلی اینه
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\book.mdb"
sq = "SELECT name,price,tarikh FROM mojodi where name='" & Text1.Text & "'" & "ORDER BY name"
Set rs = conn.Execute(sq)
Set DataReport1.DataSource = rs
m(0) = rs!Name
m(1) = rs!code

DataReport1.Show vbModal

قسمتی که با رنگ آبی نوشتم محل وقوع error هست
فقط وقتی که record مورد نظر اولین یا آخرین record جدولم باشه اینجوری میشه