View Full Version : سوال: حذف ركورد
mahdif123
شنبه 15 تیر 1387, 08:53 صبح
با سلام
فرض كنيد دو جدول داريم و نمي خواهيم هنگام حذف ركوردي اطلاعات از بين برود .يعني ميخواهيم حالت Recycle bin داشته باشد .
چگونه مي توان ركوردي را از يك جدول حذف و به يك جدول ديگر اضافه كرد در همان فايل اكسس نه فايل اكسس ديگر .
-----------------------------------
تعجب ميكنم از كسي كه مي تواند استغفار كند و نااميد است .((حضرت علي عليه السلام))
ehsan_y
شنبه 15 تیر 1387, 09:22 صبح
سلام
مي توني از كد زير استفاده كني جاي تيبل 1 تيبلي كه قراره ركورد ازش حذف بشه و جاي تيبل 2 تيبلي كه قراره ركورد بهش اضافه بشه قرار بده . مقدار value رو مقادر فيلداي ركورد حذفي قرار بده .
Set db = CurrentDb
Set rst1 = db.OpenRecordset("table1 ")
Set rst2 = db.OpenRecordset("table2")
rst2.AddNew
rst2.Fields("filde1").Value = value
rst2.Fields("filde2").Value = Value
rst2.Update
مهدی قربانی
شنبه 15 تیر 1387, 09:58 صبح
سلام
در تكميل راه حل ارائه شده توسط احسان عزيز بايد عرض كنم كه شما مي تونيد از كدهايي كه ايشون زحمت كشيدن در رخداد On Delet فرم براي اين منظور بهره بگيريد خوبيش اينه كه شما هر چند تا ركورد رو كه انتخاب كنيد عيناً بعد از حذف به جدول Table2 منتقل ميشه
mahdif123
شنبه 15 تیر 1387, 11:45 صبح
با سلام
كاربر گرامي و عزيز از راهنمايي و لطف شما صميمانه تشكر و قدرداني مي كنم .
با تشكر
mahdif123
یک شنبه 30 تیر 1387, 07:38 صبح
با سلام
دوستان عزيز كد و برنامه اي كه گذاشته ايد بسيار خوب و عالي است اما يك سوال :
اگر اين روش را بخواهيم با استفاده از يك Command كه در فرم ايجاد كرده ايم انجام دهيم چگونه اين عمل ميسر است ؟
---------------------------------
دوش وقت سحر از قصه نجاتم دادند ****** وندران ظلمت شب آب حياتم دادند
ehsan_y
یک شنبه 30 تیر 1387, 07:48 صبح
سلام
منظورتون واضح نيست .
اگه من درست فهميده باشم منظورتون چيه بايد بگو در رويداد on click بايد اين كد رو قرار بدهيد .
mahdif123
یک شنبه 30 تیر 1387, 08:04 صبح
سلام
منظورتون واضح نيست .
اگه من درست فهميده باشم منظورتون چيه بايد بگو در رويداد on click بايد اين كد رو قرار بدهيد .
با سلام
منظور بنده هم همين است يعني آيا اين كد را مي توان در رويداد On click اجرا كرد من انجام دادم نشد .
-----------------------------
دوش وقت سحر از قصه نجاتم دادند ****** وندران ظلمت شب آب حياتم دادند
مهدی قربانی
یک شنبه 30 تیر 1387, 10:25 صبح
سلام
جواب مثبته پيرو نمونه اي كه تقديم شد شما مي تونيد كدهاي استفاده شده در رخداد On Delete فرم در On Click كامند باتون هم قابل استفاده هستند :
Private Sub Command7_Click()
On Error GoTo Err_Command7_Click
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Table2")
rst.AddNew
rst.Fields("a").Value = Me.a.Value
rst.Fields("b").Value = Me.b.Value
rst.Fields("c").Value = Me.c.Value
rst.Update
rst.Close
Set rst = Nothing
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Exit_Command7_Click:
Exit Sub
Err_Command7_Click:
MsgBox Err.Description
Resume Exit_Command7_Click
End Sub
dadsara
یک شنبه 30 تیر 1387, 10:39 صبح
باسلام
جناب Mehdi_gh چگونه می توان پیغامی که بعد از زدن کلید حذف ظاهر می گردد را بصورت فارسی به کاربر نشان دهد
mahdif123
یک شنبه 30 تیر 1387, 10:52 صبح
با سلام
اين كد را در كامند باتون خود كپي كنيد . اميدوارم آنچه خواسته ايد جوابش را گرفته باشيد .
Private Sub CmdDelete_Click()
On Error GoTo Err_CmdDelete_Click
Dim strdel As String, strnext As String
Dim rst As DAO.Recordset
Set rst = Forms!Dyalize.Recordset
strnext = MsgBoxFa(" . در صورت حذف اطلاعات قابل برگشت نمي باشد ", vbCritical, "خطر", "fa msgbox")
strdel = MsgBoxFa("آيا از حذف اطلاعات مطمئن هستيد ", vbYesNo, "خطر", "fa msgbox")
If strnext Then
If strdel = vbYes Then
rst.Delete
rst.Update
DoCmd.Close
End If
End If
If strdel = vbNo Then Exit Sub
Exit_CmdDelete_Click:
Exit Sub
Err_CmdDelete_Click:
MsgBox Err.Description
Resume Exit_CmdDelete_Click
End Sub
--------------------------------------
مطالعه كتاب را فراموش نكنيد .
مهدی قربانی
یک شنبه 30 تیر 1387, 11:02 صبح
سلام
dadsara ي عزيز پيغامي كه صادر ميشه خطا نيست بلكه يك نوع اعلان هست براي آگاه كردن كاربر از اقدامي كه انجام ميده براي موضوع مورد نظر شما ما بايد اول صدور پيغام حاضر رو منتفي كنيم ف همونطور كه مي دونيد براي اين منظور از دستور DoCmd.SetWarnings استفاده مي كنيم يعني قبل از اجراي عمليات حذف اونرو False و بعد از اجرا اونرو True مي كنيم اما براي پيغام سفارشي خودمون ميشه به روش زير عمل كرد
Private Sub Command7_Click()
On Error GoTo Err_Command7_Click
DoCmd.SetWarnings False
If MsgBox("آيا از حذف اين ركورد مطمئن هستيد؟", vbExclamation + vbMsgBoxRight + vbYesNo, "توجه") = vbYes Then
Set rs = Me.RecordsetClone
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Table2")
rst.AddNew
rst.Fields("a").Value = Me.a.Value
rst.Fields("b").Value = Me.b.Value
rst.Fields("c").Value = Me.c.Value
rst.Update
rst.Close
Set rst = Nothing
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
Else
Exit Sub
End If
Docmd.SetWarnings True
Exit_Command7_Click:
Exit Sub
Err_Command7_Click:
MsgBox Err.Description
Resume Exit_Command7_Click
End Sub
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.