PDA

View Full Version : ثبت تغییرات



Masoud.eh
جمعه 23 تیر 1402, 15:29 عصر
سلام دوستان گرامی
کد زیر جهت ویرایش یک رکورد هست
میخواستم با حلقه For در صورتی که مقدار یکی از کنترل ها تغییر کرد پیغام ذخیره تغییرات داده بشه و تغییرات ذخیره بشه
در غیر اینصورت نادیده بگیره
ممنون میشم کد را ویرایش کنید


Dim ctl As Control
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
If ctl.OnChange= True Then

vbOK Then = ("ثبت تغییرات", vbOKCancel + vbMsgBoxRight, "تغییرات ذخیره شود؟") If MsgBox

Rs.Edit

End If
End If

amirzazadeh
شنبه 24 تیر 1402, 06:53 صبح
سلام دوستان گرامی
کد زیر جهت ویرایش یک رکورد هست
میخواستم با حلقه For در صورتی که مقدار یکی از کنترل ها تغییر کرد پیغام ذخیره تغییرات داده بشه و تغییرات ذخیره بشه
در غیر اینصورت نادیده بگیره
ممنون میشم کد را ویرایش کنید


Dim ctl As Control
For Each ctl In Me.Controls
If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Then
If ctl.OnChange= True Then

vbOK Then = ("ثبت تغییرات", vbOKCancel + vbMsgBoxRight, "تغییرات ذخیره شود؟") If MsgBox

Rs.Edit

End If
End If



سلام، اگر فرم شما باند شده هست می تونید از رودیداد OnDirty استفاده کنید. در غیر اینصورت میتونید از رویداد AfterUpdate استفاده کنید.

Masoud.eh
یک شنبه 25 تیر 1402, 11:25 صبح
ممنون از پاسختون
میشه نمونه بزارید
یه مقدار واسم گنگه

amirzazadeh
یک شنبه 25 تیر 1402, 17:51 عصر
ممنون از پاسختون
میشه نمونه بزارید
یه مقدار واسم گنگه

سلام
نمونه خودتون رو بارگذاری بکنید تا روی همون کار کنیم .

Masoud.eh
دوشنبه 26 تیر 1402, 18:14 عصر
در فرم frmStudentRS فایل ضمیمه کد نوشته شده روی باتن ذخیره، هم ذخیره اطلاعات جدید و هم ذخیره ویرایش رو انجام میده.میخوام پیغام ذخیره ویرایش اطلاعات رو زمانی اعلام کنه که مقدار یکی از تکست باکس ها تغییر کرده باشه در غیر اینصورت نادیده بگیره.
ممنون
154812

amirzazadeh
سه شنبه 27 تیر 1402, 08:15 صبح
در فرم frmStudentRS فایل ضمیمه کد نوشته شده روی باتن ذخیره، هم ذخیره اطلاعات جدید و هم ذخیره ویرایش رو انجام میده.میخوام پیغام ذخیره ویرایش اطلاعات رو زمانی اعلام کنه که مقدار یکی از تکست باکس ها تغییر کرده باشه در غیر اینصورت نادیده بگیره.
ممنون
154812

سلام

نمونه شما رو تغییر دادم امیدوارم به دردتون بخوره:
کاری که انجام شده تعریف یک متغیر True/False در قسمت کدنویسی فرمتون هست که بعد از تغییر فیلدهای فرم در رویداد AfterUpdate مقدار True رو برمی گردونه و دراین حالت دکمه ذخیره Enable شده و عملیات ذخیره با تایید کاربر انجام میشه.
همینطور یک جدول تغییرات به بانک شما اضافه کردم که به عنوان نمونه به تغییر نمره دانش آموز حساس هست اگر نمره تغییر داده بشه با استفاده از یک دیتاماکرو که با رویداد Update در جدول دانش آموزان ست شده Id دانش آموز، نمره قبلی و تاریخ تغییر رو ذخیره میکنه.(یه چیزی مثل تریگر اس کیو ال سرور)

154815

Masoud.eh
سه شنبه 27 تیر 1402, 21:27 عصر
دوست عزیز
اینکه توی AfterUpdate تک تک تکست باکس ها کد نوشته بشه، خب طبیعتا زمانی که تعداد تکست باکس ها زیاد باشه کد نویسی شلوغ، زمان بر و پیچیده میشه
اگر امکانش هست با حلقه For دستوری نوشته بشه که در صورت تغییر مقدار یکی از تکست باکس ها دکمه ذخیره Enable بشه یا اینکه این قابلیت توی Event های خود فرم باشه. (فرم آنباند هستش)
ممنونم

amirzazadeh
چهارشنبه 28 تیر 1402, 07:09 صبح
دوست عزیز
اینکه توی AfterUpdate تک تک تکست باکس ها کد نوشته بشه، خب طبیعتا زمانی که تعداد تکست باکس ها زیاد باشه کد نویسی شلوغ، زمان بر و پیچیده میشه
اگر امکانش هست با حلقه For دستوری نوشته بشه که در صورت تغییر مقدار یکی از تکست باکس ها دکمه ذخیره Enable بشه یا اینکه این قابلیت توی Event های خود فرم باشه. (فرم آنباند هستش)
ممنونم
سلام ، برای اینکه کار اصولی تر باشه پیشنهاد می کنم که رکورد های جداول در فرم ها داخل یک لیست باکس به صورت ساب فرم نمایش داده و هر موقع نیاز به ویرایش بود،داخل یک فرم لود بشه .
برای گرفتن ایده از لینک زیر(برنامه دفتر تلفن) کمک بگیرید:

(https://barnamenevis.org/archive/index.php/t-558870.html)https://barnamenevis.org/showthread.php?558870-%D8%AF%D9%81%D8%AA%D8%B1%DA%86%D9%87-%D8%AA%D9%84%D9%81%D9%86-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%DB%8C%D8%A7%D8%AF%D8%A2%D9%88%D8%B1%DB%8C%D9%87%D 8%A7%DB%8C-%D8%B1%D9%88%D8%B2%D8%A7%D9%86%D9%87-%D9%88-%D8%AA%D9%82%D9%88%DB%8C%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D9%85%D8%AA%D9%86-%D8%A8%D8%A7%D8%B2
(https://barnamenevis.org/showthread.php?558870-%D8%AF%D9%81%D8%AA%D8%B1%DA%86%D9%87-%D8%AA%D9%84%D9%81%D9%86-%D8%A8%D9%87-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%DB%8C%D8%A7%D8%AF%D8%A2%D9%88%D8%B1%DB%8C%D9%87%D 8%A7%DB%8C-%D8%B1%D9%88%D8%B2%D8%A7%D9%86%D9%87-%D9%88-%D8%AA%D9%82%D9%88%DB%8C%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D9%85%D8%AA%D9%86-%D8%A8%D8%A7%D8%B2)
برای ورود از نام کاربری Barzegar و پسورد 1 استفاده کنید.

لینک کوتاه
https://barnamenevis.org/archive/index.php/t-558870.html