PDA

View Full Version : پیغام در هنگام تغییر رکورد



look20
شنبه 22 اسفند 1388, 22:22 عصر
با سلام و خسته نباشید کسی می دونه چطور میشه کدی نوشت که اگر رکورد تغییر کرد پیغام بده و بوسیله یه دکمه بشه تغییرات رو تایید و یا به حالت قبل برگردوند

البته چون با اکسس زیاد کار کردم می دونم از چیزی مثل Me. Dirty استفاده می کنند ولی توی ویژوال چطور این کارو انجام بدم بلد نیستم دوستان لطف کنند و بنده رو راهنمایی کنند با تشکر

rd.net
شنبه 22 اسفند 1388, 23:58 عصر
از یه msg box قبل از کد ویرایش استفاده کن.

polisoftco
یک شنبه 23 اسفند 1388, 00:05 صبح
اگه فیلدهات کمه خب، تمام اطلاعات رو بریز توی متغیر (هر فیلد یک متغیر) سپس اگه کاربر پنجره رو خواست ببنده ببینه آیا مقدار فیلد(تکست) با مقدار متغیر فرق داره یا نه اگه فرق داشت بگه که آیا مایل به ذخیره هستید اگه اوکی کرد مقدار فیلد(تکست) رو ذخیره کن. واسه حالت قبل رفتن نیز مقدار فیلد(تکست) رو برابر مقدار متغیر قرار بده.

موفق باشین

look20
یک شنبه 23 اسفند 1388, 10:12 صبح
اگه فیلدهات کمه خب، تمام اطلاعات رو بریز توی متغیر (هر فیلد یک متغیر) سپس اگه کاربر پنجره رو خواست ببنده ببینه آیا مقدار فیلد(تکست) با مقدار متغیر فرق داره یا نه اگه فرق داشت بگه که آیا مایل به ذخیره هستید اگه اوکی کرد مقدار فیلد(تکست) رو ذخیره کن. واسه حالت قبل رفتن نیز مقدار فیلد(تکست) رو برابر مقدار متغیر قرار بده.

موفق باشین

ببخشید میشه بعضی جاها رو با کد توضیح بدید چون من ویژوال رو تازه یاد گرفتم

polisoftco
یک شنبه 23 اسفند 1388, 21:31 عصر
مثلا شما دوتا فیلد بانامهای fID - fName دارین :


dim strID as integer
dim strName as string
....
strID = Ado.Recordset.Fields("fID")
strName = Ado.Recordset.Fields("fName")
...
if Trim(txtID) <> strID or Trim(txtName) <> strName Then
msgbox "اطلاعات تغییر کرده"
end if
...
end sub


شما ابتدا باید متغیرهارو تعریف کنین سپس سه نقطه (اتصال به دیتابیس و جدول) و بعدش اطلاعات فیلدهارو بریز توی متغیر بعدش انجام عملیات دیتابیس (درصورت لزوم) بعدش چک کن ببین آیا اطلاعات فیلد با مقدار متغیر برابره یا نه اگه نبود پیغام بده.
البته من اینجا درحد فهمیدن، نوشتم شما بجای مسیج باکس معمولی باید سوال پرسشی بپرسین تا طرف حق انتخاب داشته باشه اگه اوکی زد اطلاعات جدید رو ثبتش کن.

ALIMAHDE54
یک شنبه 17 مرداد 1389, 18:55 عصر
سلام
من تو این توضیحی که دادین مشکل دارم البته من برای msg box شرط میذارم ولی درست وماکل بلد نیستم این کار رو انجام بدم مثلا شما یه کد برای آشنایی بذارین تا بهتر بتونیم یاد بگیریم مثلا اگه تو بانک تغییراتی ایجاد شد البته من تعداد فیلدام زیاده یه راه دیگه که با همین msg box همراه بشه واگه ما بخوایم تو بانک ذخیره شود ok رو کلیک کنیم و اگه نخوایم ذخیره شه رویno کیلی کنیم
اگه زحمت بکشین با کد توضیح بدیم ممنون میشم بازم ممنون اگه زود راهنمایی کنید البته با کد چون با کد من خوب یاد میگیرم همچنین دیگر عزیزان :خجالت::خجالت::بامزه::چشمک::ا سرده:

returnx
یک شنبه 17 مرداد 1389, 23:35 عصر
این برنامه رو دانلود کنید حتما بدردتون میخوره:
http://up.iranblog.com/Files/76a3d18b7459494f86f3.zip
این برنامه رو اصلا اقای M.T.P درست کردن من یکم تغیرات توش دادم و قسمتی که لازم داشتید رو بهش اضافه کردم.
روش کار به این صورته که زمانی که Form_load میشه یا به رکورد بعدی یا قبلی میرین اطلاعات هر Textbox در یک متغیری ذخیره میشه اگه زمانی که شما دکمه Exit رو میزنید textbox ها با متغیر ها مقایسه میشن اگه تغییر داشت پس یک پرسش صورت میگیره و اگه جواب مثبت بود رکورد مورد نظر update میشه در غیر اینصورت برنامه بسته می شه.
موفق باشید.

polisoftco
سه شنبه 19 مرداد 1389, 13:29 عصر
با سلام
همین روشی که گفته بودم خوبه فقط واسه فیلدهای خیلی زیاد یکم گیره ...!
شایدم با آرایه بشه درستش کرد.

شما الان دقیقا کجا مشکل دارین، تاکجاها تونستین بنویسین، اگه فیلدات خیلی زیاد نیستن بهتره همین روشو انجام بدین، که هم سادس هم اینکه جواب میده.

موفق باشین

Rocker
سه شنبه 19 مرداد 1389, 13:35 عصر
بهترین روش Rais کردن یک Event هستش