PDA

View Full Version : فرمان حذف یک رکورد از جدول از داخل یک فرم



najafi87
شنبه 15 مرداد 1390, 16:29 عصر
باسلام من یک فرم دارم و یه کلید داخل اون. کدی رو میخواستم تا بتونم به واسطه این کلید یک رکورد خاص رو از یک جدول پاک کنم.
ممنون از اساتید عزیز

Younestalebi
سه شنبه 18 مرداد 1390, 13:06 عصر
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
ركورد جاري رو حذف مي كنه

Rasool-GH
دوشنبه 12 دی 1390, 12:48 عصر
سلام
با اين كد ركورد جاري خذف نميشه
لطفا راهنمايي كنيد

mj_bayati
سه شنبه 13 دی 1390, 22:07 عصر
اگه منظورتون رو درست فهمیده باشم خیلی سادس
با این کد میتونین رکورد جاری رو حذف کنید
DoCmd.RunCommand acCmdDeleteRecord

اگه منظورتون غیراز اینه نمونه بزارین

Rasool-GH
سه شنبه 13 دی 1390, 23:25 عصر
ممنون همین کار منو راه میندازه .
برای حذف پیغام تایید از# (DoCmd.SetWarnings (warningoff #استفاده کردم
ایا لازمه بعد از حذف رکورد# (DoCmd.SetWarnings (warningon #استفاده بشه

mj_bayati
چهارشنبه 14 دی 1390, 18:12 عصر
آره لازمه
والا دیگه تا تغییر بعدی هیچ پیام سیستمی دریافت نمیکنین

Rasool-GH
چهارشنبه 14 دی 1390, 19:24 عصر
چاکرتم داداش چندتا تشکر میخوای

Rasool-GH
جمعه 16 دی 1390, 12:26 عصر
جهت تکمیل تاپیک و ایجاد جنبه اموزشی :
در یک فرم که به یک جدول باند شده . یک باتون وارد کنید و در روال کلیک اون کد زیر را وارد کنید

i = MsgBox("آیا رکورد حذف شود", vbYesNo + vbQuestion + vbMsgBoxRight, "پیام")
If i = 6 Then
DoCmd.SetWarnings (warningoff)
DoCmd.RunCommand acCmdDeleteRecord
MsgBox "رکورد حذف شد", vbYesNo + vbQuestion + vbMsgBoxRight, "پیام"
DoCmd.SetWarnings (warningon)
End If

با زدن باتون رکورد جاری حذف میشه

mj_bayati
جمعه 16 دی 1390, 14:37 عصر
با سلام وتشکر
این کاری که کردید خوبه ولی یه مشکلی داره
یعنی خسته کننده است چون وقتی کاربر میخواد یه رکورد رو پاک کنه باید صدبار قسم بخوره که میخوام پا کنم بابا!! میخوام پاک کنم به خدا !!! :گریه:
چون با این کد، کاربر سه بار قسم به پاک کردن میخوره
دوبار که شما پرسیدین و یکبار هم خود اکسس وسطش سؤال میکنه :عصبانی:
یارو به غلط کردن میفته!!!!! :عصبانی++:

mj_bayati
جمعه 16 دی 1390, 16:03 عصر
من خودم همیشه اینکار رو میکنم
فک میکنم User-friendly تر باشه!!! :گیج:
به اون باتن (Button) که برای پاک کردن در فرم طراحی کردم دستور خاموش کردن پیامها و حذف کردن رکورد رو میدم

DoCmd.SetWarnings False
DoCmd.RunCommand acCmdDeleteRecord
البته برای پیشگیری از حوادث احتمالی می تونین Error-handling هم بدین :متفکر:
(البته میتونین از ویزارد خود اکسس استفاده کنین که یک ماکرو خیلی کامل می سازه اما یادتون نره اون پیام خاموش کردن پیامها رو بدین)
بعدش در قسمت رویدادهای فرم (Events) در بخش On Delete کد سؤال رو بگذارید:


i = MsgBox("آيا رکورد حذف شود", vbYesNot, "پيام")
If i = 6 Then
DoEvents
Else
Cancel = True
End If


اینم یه راهشه!! :بامزه:
جالبه! نه! :خجالت:

Rasool-GH
شنبه 17 دی 1390, 21:44 عصر
بله حرف شما درسته
من یه تغییر کوچیک داخل کد دادم
برای اینکه پیامها کم بشه میشه پیام اخر که داخل IF قرار داره رو غیر فعال کرد چون وجودش ضروری نیست
با این حساب میشه باتون حذف رکورد و تایید اون
ممنون از تذمر به جای شما

Rasool-GH
یک شنبه 18 دی 1390, 09:58 صبح
اقا يه مشكلي پيش اومد
تو 2010 مشكلي نيست و عمل ميكنه ولي تو 2007 كار نميكنه
Error 2046 ميده . ميگه DeletRecord در دسترس نيست

Rasool-GH
چهارشنبه 21 دی 1390, 17:54 عصر
بعد کلی سردرگمی مشکل حل شد . هیچ ربطی به نسخه افیس نداشت
دوستان توجه کنید برای اینکه دستور زیر کار کنه حتما باید خاصیت Allowe Deletions فعال باشه

i = MsgBox("آیا رکورد حذف شود", vbYesNo + vbQuestion + vbMsgBoxRight, "پیام")
If i = 6 Then
DoCmd.SetWarnings (warningoff)
DoCmd.RunCommand acCmdDeleteRecord
DoCmd.SetWarnings (warningon)
End If

reza850101
شنبه 09 اردیبهشت 1391, 07:46 صبح
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
ركورد جاري رو حذف مي كنه
1 DoCmd.RunCommand acCmdDeleteRecord

باسلام من از هردو كد استفاده كردم هردو در فرم عمل ميكند من مشكلي دارم اميدوارم در پيدا كردن كد مناسبش كمكم كنيد ، من از داخل فرمم ركوردي را باتوجه به داشتن شرطي در يك جدول ديگري اضافه ميكنم حالا با برداشتن آن شرط ميخواهم آن ركورد ازآن جدول حذف شوداگر نمونه اي هم محبت كنيد بيشترممنون ميشم

mohammadgij
شنبه 09 اردیبهشت 1391, 09:01 صبح
اگر درست فهمیده باشم میخواین از فرم اول رکوردهای جدول دوم رو حذف کنید. بهترین راه اینه که از دستور Delete زیر استفاده کنید. جای نام جدول و شروط اطلاعات مربوط به خودتون رو بگذارید



Dim intMsgBox As Integer
intMsgBox = MsgBox("آیا رکورد حذف شود", vbYesNo + vbQuestion + vbMsgBoxRight, "پیام")
If intMsgBox = 6 Then
DoCmd.SetWarnings (warningoff)
DoCmd.RunSQL "Delete From TableName Where forExample=ForExample"
DoCmd.SetWarnings (warningon)
End If

reza850101
شنبه 09 اردیبهشت 1391, 12:24 عصر
ممنون از پاسخ سريع جنابعالي ، من نمونه خودم را گذاشتم ممنون ميشم كمك كنيد با كليك و ايجاد* در فرم يك ركورد به تيبل 1 اضافه ميشود اكنون ميخواهم درصورتيكه باكليك بر * و حذف آن آن ركورد از تيبل 1 حذف شود

salambeshoma
شنبه 09 اردیبهشت 1391, 21:30 عصر
خدمت شما انشاا... بدرد بخوره

reza850101
یک شنبه 10 اردیبهشت 1391, 07:53 صبح
من نمونه خودم را گذاشتم ممنون ميشم كمك كنيد با كليك و ايجاد* در فرم يك ركورد به تيبل 1 اضافه ميشود اكنون ميخواهم درصورتيكه باكليك بر * و حذف آن آن ركورد از تيبل 1 حذف شود
باسلام دوست عزيز ميشه به اين فايل ماهم نظري بياندازي هرچه تو چنته داشتم گذاشتم ولي از كد شما نتونستم استفاده كنم ممنون ميشم

reza850101
دوشنبه 11 اردیبهشت 1391, 07:15 صبح
باسلام ازكد آقاي باشما در نمونه اي كه دارم استفاده كردم اشكالش اينه كه هر بار كه كمبو باكس را براي يكي باز ميكنم سوال ميكند و بايد چواب بدم محض خدا يكي نگاهي به اين نمونه بكنه و مشكلش رفع كنه ممنون ميشم

mohammadgij
دوشنبه 11 اردیبهشت 1391, 12:44 عصر
متوجه منظور شما از * نمیشم. چه زمانی رکورد رکورد در جدول اضافه میشه؟ این * که شما میگید در کجای فرم قرار داره؟ در ساب فرمه؟

reza850101
دوشنبه 11 اردیبهشت 1391, 13:52 عصر
دوست عزيز نمونه كه لود ميشود با هركليك در فيلدهاي 1 تا 10 سابفرم در - يك * درآن فيلدها ايجاد ميشودو يك ركورد در تيبل 1 ايجاد مي
گردد

reza850101
پنج شنبه 14 اردیبهشت 1391, 11:31 صبح
اين دوست مااحتمالا سرش شلوغه نتونسته به سايت سربزنه
اگر ممكنه يكي از اساتيد زحمت بكشه ممنون ميشم