PDA

View Full Version : ایجاد نشدن رکورد جدید بعد از حذف اخرین رکورد



moustafa
شنبه 08 دی 1386, 14:53 عصر
در فرمها وقتی رکوردی رو حذف کنی بعد از حذف به رکورد بعدی میره اگه آخرین رکورد را حذف کنی یک رکورد جدید ایجاد میشه چطوریه میشه از این امر جلوگیری کرد و به هنگام حذف رکرود اخر به رکورد ماقبل اخر انتقال پیدا کرد

mostafa-sohrablou
شنبه 08 دی 1386, 15:05 عصر
سلام
با این دستور بعد از فرمان حذف می تونی اشاره گر رکورد را به آخرین رکورد هدایت کنی.

Me.Requery

DoCmd.GoToRecord acDataForm, "Form Name", acLast

مهدی قربانی
شنبه 08 دی 1386, 18:41 عصر
سلام
با اجازه آقای سهرابلو باید عرض کنم که اگر عملیات در فرم جاری انجام بشه نیازی به ذکر acDataForm, "Form Name" نیست .

moustafa
یک شنبه 09 دی 1386, 01:49 صبح
سلام
با این دستور بعد از فرمان حذف می تونی اشاره گر رکورد را به آخرین رکورد هدایت کنی.

Me.Requery

DoCmd.GoToRecord acDataForm, "Form Name", acLast

ممنون
این کد در چه رویدادی باید نوشته بشه که اولا با هر بار حذف به رکورد بعدی بره در صورتیکه رکورد آخر حذف بشه رکوردی ایجاد نکنه در رکورد ماقبل بمونه یه چیزی مشابه این

[CODE]if recordset.eof then
recordset.movelast else recordset. movenext[CODE]]
ثانیا کدهای رویداد جاری در فرم بهم نخوره و کارائیشو از دست نده
مهدی جان در فرمهای بوند شده بهتر از دستورات recordset.movelast وامثال اون استفاده بشه

مهدی قربانی
یک شنبه 09 دی 1386, 07:26 صبح
این کد در چه رویدادی باید نوشته بشه که اولا با هر بار حذف به رکورد بعدی بره در صورتیکه رکورد آخر حذف بشه رکوردی ایجاد نکنه در رکورد ماقبل بمونه یه چیزی مشابه این


سلام
مصطفی جان در Before Del Confirm یا After Del Confirm هر جفتش جواب می ده .

mostafa-sohrablou
یک شنبه 09 دی 1386, 07:35 صبح
با سلام
این نمونه برنامه، به رویداد گذینه حذف نگاه کن

moustafa
یک شنبه 09 دی 1386, 19:06 عصر
ممنون
بر عمل nextچی؟ در اونم به اخرین رکورد که میرسیم رکورد جدید ایجاد میشه اگه بخواهیم رکورد جدید ایجاد نشه ودر رکورد اخر بمونه

مهدی قربانی
یک شنبه 09 دی 1386, 19:20 عصر
سلام
مصطفی جان یه راه اینه که کلاً خصوصیت allow addition فرم رو به false ست کنی و اگر کاربر خواست رکورد جدیدی اضافه کنه کامند باتون Add new رو بزنه تا اول خصوصیت Allow Addition رو True کنه و بعد رکورد جدید اضافه کنه یا اینکه با استفاده از Recordset Clone بهش بگی اگه eof شد عمل movelast رو انجام بده .

moustafa
یک شنبه 09 دی 1386, 20:33 عصر
سلام
مهدی جان متاسفانه در فرمم بر رویدادcurrent یه سری کد ودستور گذاشتم که هر جور ترفندی میذارم یه جورائی نواقصی دراون یا سایر رویدادها یا کدها ظاهر میشه
بر قسمت اخر:

ا استفاده از Recordset Clone بهش بگی اگه eof شد عمل movelast رو انجام بده .

اگه ممکنه یه نمونه بذار ببینم همخوانی داره با اون چیزای که می خوام
ممنون

مهدی قربانی
یک شنبه 09 دی 1386, 21:56 عصر
علیک سلام و اطلاعات امر
این نمونه تو رخدادهای On Load‌ و After Insert با خصوصیت Allow Addition سر و کله میزنه و کاربر فقط زمانی می تونه به رکورد جدید بره که کامند باتون رو کلیک کنه البته به محضی تکمیل اطلاعات باز وضعیت به حالت قبلی بر میگرده .

moustafa
یک شنبه 09 دی 1386, 23:31 عصر
ممنون
همانطور که عرض کردم بعلت کدهای مربوط به رویداد رکورد جاری که وابسته به یک سری تکس باکسهای غیر وابسته به فرم هستند جواب نمیده
بعللی هم نمیشه اپلود کرد ناچار باید در الگوریتم تغیراتی بدم