PDA

View Full Version : bof delete



seeker
یک شنبه 26 فروردین 1386, 16:15 عصر
با سلام
در شرایطی که BOF=True است چطور از طریق متد delete رکورد را حذف کنیم؟

yavari
یک شنبه 26 فروردین 1386, 22:24 عصر
سلام

منظورتون چیه ؟؟؟

CodeMasterX
یک شنبه 26 فروردین 1386, 23:53 عصر
اگر مقدار BOF برابر با True باشه اشاره گرد رکوردست دیتابیس به بعد از آخرین رکورد منتقل شده.یعنی چیزی برای حذف کردن پیدا نخواهد کرد.

ascpro
دوشنبه 27 فروردین 1386, 00:04 صبح
منم کامل منظورتونو متوجه نشدم.
اما این کدو براتون نوشتم.البته این ماله EOF است.ببینین به دردتون میخوره.


With Data1.Recordset
.MoveFirst
Do While .EOF <> True
If !Code = Text1.Text Then
Exit Do
Else
.MoveNext
End If
Loop
End With

بازم اگر سوالی بود در خدمتم.

CodeMasterX
چهارشنبه 29 فروردین 1386, 17:01 عصر
من که گفتم.اگه BOD برابر True باشه اشاره گر رکوردست به بعد از آخرین رکورد متقل شده.
باید به رکورد آخر بری و رکورد رو حذف کنی:



Private Sub cmdMoveNext_Click()
On Error Resume Next

If Rs.BOF Then
Rs.MoveLast
Rs.Delete

MsgBox "Done." , vbInformation
End If


حله ؟

seeker
سه شنبه 04 اردیبهشت 1386, 11:05 صبح
نه منظور من اینه که اولین رکورد رو چطور حذف کنم
چون وقتی delete میکنم ارور میده و میگه bof بر قراره و نمیتونه حذف کنه(مگه معنی BOF یعنی begin of file نیست؟)
البته من فکر میکنم که علتش اینه که همیشه بعد از حذف یک رکورد میره به رکورد قبلی
حالا وقتی بخواهیم اولین رکورد رو حذف کنیم دیگه رکورد قبلی وجود نداره و ارور میده
من این کار رو هم کردم ولی جواب نداد:


if bof=true then
adodc1.recordset.delete()
adodc1.recordset.movenext()
end if

CodeMasterX
چهارشنبه 05 اردیبهشت 1386, 01:03 صبح
اول از همه عذر ببخشید اون اشتباه منو اصلا حواسم نبوده! من اشتباهی به EOF جواب داده بودم! چیکار کنم تند خوانی هست و دیگه...
ببین دوست عزیز بازم مثل EOF هست روش کار،اگر شما به BOF برسی اشاره گر رکوردست قبل از اولین رکورد قرار گرفته و اون کدی که شما هم نوشتی بخاطر همین کار نمی کنه چون قبل از MoveFirst گفتی که پاکش کنه ولی چیزی رو نداره که پاک کنه!

این رو بنویس که همون کد خودت هست با یه تغییر جزئی:



Private Sub cmdDelete_Click()
If RS.BOF = True Then
If RS.RecordCount >=1 Then RS.MoveFirst
RD.Delete
RS.ReQuery
End If
End Sub