PDA

View Full Version : خطا در حذف اطلاعات با دستور Delete



ali190
پنج شنبه 23 اردیبهشت 1389, 17:10 عصر
با سلام
در نمونه زیر وقتی اطلاعات را با دستور sql حذف میکنم پیغام زیر از vb صادر میشه


http://www.barnamenevis.org/forum/attachment.php?attachmentid=48913&stc=1&d=1273756185

ممنون

look20
پنج شنبه 23 اردیبهشت 1389, 21:38 عصر
سلام دوست عزیز مشکلتون رو حل کردم ببینید برای حذف اطلاعات حتما باید ado چک شده باشه که آیا بازه یا بسته
در صورت بسته بودن میتونید با دستور بازش کنید
مثل کد زیر

ado.RecordSource = "Delete * From m WHERE a > " & Trim(Text4.Text) & ""
ado.Refreshکه بجاش باید از دستور زیر استفاده کنید تا کد اجرا بشه

If ado.Recordset.State = 1 Then ado.Recordset.Close
ado.Recordset.Open "Delete * From m WHERE a > " & Trim(Text4.Text) & ""
ado.Refresh

ali190
پنج شنبه 23 اردیبهشت 1389, 22:04 عصر
سلام
ممنون look20 عزیز
فقط سه سوال:
1)Dim RES As String یعنی چی
اصلاً res در هیچ جای فرم استفاده نشده
2) باز و بسته بودن ado یعنی چی؟
3)آیا با دستور open میشه کوئری های اکشن مثل delete ، APPEND و UPDATE رو اجرا کرد؟
ممنون

look20
پنج شنبه 23 اردیبهشت 1389, 23:05 عصر
فقط سه سوال:
1)Dim RES As String یعنی چی
اصلاً res در هیچ جای فرم استفاده نشده
2) باز و بسته بودن ado یعنی چی؟
3)آیا با دستور open میشه کوئری های اکشن مثل delete ، APPEND و UPDATE رو اجرا کرد؟
ممنونسوال اول توی پست بعدی توضیح دادم
سوال منظور باز بودن اتصال برای حذف رکورد ایجاد رکورد جدید ویرایش رکورد که حذف رکورد باعث به هم خوردن اتصال ado به اکسس میشه در حالت معمول ado این قسمت رو بصورت بسته نگه میداره در این اتصال به هم نخوره
سوال سوم منظور از open نمیدونم چیه؟APPEND؟

look20
پنج شنبه 23 اردیبهشت 1389, 23:15 عصر
درضمن بهتره در هنگام کلیک روی دکمه del یه پیغام بزاری

Private Sub Command4_Click()
Dim RES As String
RES = MsgBox("آیا برای حذف اطلاعات مطمئن هستید؟", vbYesNo)
If RES = vbYes Then
If ado.Recordset.State = 1 Then ado.Recordset.Close
ado.Recordset.Open "Delete * From m WHERE a > " & Trim(Text4.Text) & ""
ado.Refresh
MsgBox "حذف اطلاعات با موفقیت انجام گرفت"

ElseIf RES = vbNo Then
MsgBox "عدم موفقیت در حذف اطلاعات", vbInformation + vbMsgBoxRtlReading
End If

Set DataGrid1.DataSource = ado

End Sub