بهترین روش برای ثبت تغییرات در رکورد
سلام
ماه عزای سیدالشهدا سلام الله علیه تسلیت
میخواستم بهترین راه به نظر دوستان برای ثبت تغییرات (ویرایش و حذف) یک رکورد که در فرمهای متصل صورت میگیره، چی هست؟!
میخوام به نوعی آرشیو تغییرات رکوردها رو داشته باشم
در حال حاضر از روشی ابتکاری استفاده میکنم که به نظر خودم استاندارد نیست و مشکلات ساختاری داره.
از دوستان کسی اگر راهی اصولی دارن ممنون میشم به اشتراک بذارند.
نقل قول: بهترین روش برای ثبت تغییرات در رکورد
سلام
پيشنهاد من ايجاد يه جدول هست با حداقل سه فيلد. يك فيلد كد يا شناسه ركورد رو ذخيره مي كنه يك فيلد مقدار قبلي رو ذخيره مي كنه و فيلد سوم تاريخ تغيير رو .
..................
موفق باشيد
نقل قول: بهترین روش برای ثبت تغییرات در رکورد
تشکر آقای میرزازاده
اینی که فرمودین از ملزومات کار هست!
من جدولی برای اینکار اختصاص دادم که اصلا کارش ثبت زمان ورود و خروج و بازدید از فرمهای مختلف توسط کاربر جاری سیستم هست.
ولی قصد دارم تا فعالیت دقیقتری از کاربر که شامل ویرایش و حذف رکوردها هست رو هم در این جدول ثبت کنم (قابلیت ثبت رکورد قبلا اجرا شده هست)
حالا برای این کار چه پیشنهادی دارین که بر اساس چه اصولی کدنویسی کنم و حتی کمی هم در نوشتن کدها کمک کنید
بازم از توجهتون ممنونم
نقل قول: بهترین روش برای ثبت تغییرات در رکورد
اگر امكانش هست نمونه خودتون رو يا حداقل قسمتي از اون رو اپلود كنيد تا به كمك دوستان تكميلش كنيم.
نقل قول: بهترین روش برای ثبت تغییرات در رکورد
امکان قرار دادن نمونه فعلا برام نیست!
ولی یه توضیحی در موردش میدم
نحوه ثبت اطلاعات اصلی:
در یک فانکشن یک کوئری اپند برای جدول مذکور آماده شده که مقادیری رو به عنوان ارزش یا Value که شامل تاریخ و زمان و نام کاربر و موقعیت انجام عمل توسط کاربر رو به کوئری میده و در جدول ذخیره سازی میکنه!
برای ثبت ویرایش و حذف هم روی فرم یک تکست باکس ایجاد کردم که تمامی اطلاعات رکورد رو داخلش نمایش میده!
برای حذف رکورد هم کدنویسی جداگانه شده که قبل از حذف رکورد مقدار اون تکست باکس رو به کوئری ارسال میکنه و قبل از حذف اطلاعات مورد نظر در جدول مربوطه ثبت میشه!
ولی برای ثبت تغییرات یه مشکل کوچیک هست
اینکه در رویداد بیفور آپدیت، مجددا مقدار همین تکست باکس رو به کوئری ارسال میشه و ذخیره سازی انجام میشه، ولی چیزی که ذخیره میکنه همین اطلاعات جاری هست، به عبارتی چیزی که ذخیره میشه همین اطلاعات جدید هست نه اطلاعات ویرایش شده قبلی!
این مشکل رو میخوام حلش کنم
اگر راهی مدنظرتون هست بفرمایید
نقل قول: بهترین روش برای ثبت تغییرات در رکورد
سلام
به جاي رويداد before update از رويداد On Dirty استفاده كنيد و نتيجه رو اعلام بفرماييد.در صورت امكان قطعه كد مورد استفاده رو اپلود كنيد.
نقل قول: بهترین روش برای ثبت تغییرات در رکورد
بکارگیری data macro برای ساخت audit trail گزینه بهتری هست
نقل قول: بهترین روش برای ثبت تغییرات در رکورد
نقل قول:
نوشته شده توسط
amirzazadeh
سلام
به جاي رويداد before update از رويداد On Dirty استفاده كنيد و نتيجه رو اعلام بفرماييد.در صورت امكان قطعه كد مورد استفاده رو اپلود كنيد.
یک فانکشن عمومی ایجاد شده
Function UserLogs(FormName As String, Activity As String, AfterEditing As String)
...
End Function
توی فرم و رویداد بیفور آپدیت اینجوری صداش میزنم
UserLogs Me.Form.Caption , "Open Form" , Me.txtAllFiled
ولی خب به دلیل اینکه تکست باکس txtAllFiled همزمان اطلاعات رو فیلدها میگیره، بازم چیزی که ذخیره میشه همین اطلاعات جاری هست!
نقل قول:
نوشته شده توسط
mazoolagh
بکارگیری data macro برای ساخت audit trail گزینه بهتری هست
سلام و خوش آمد به استاد عزیز
مدتی بود که از راهکارهای شما دور بودم (مخصوصا اون ریزه کاریها که مختص کدنویسی خودتونه! :لبخند:)
اینبار هم ممنون میشم یا زیر دیپلم تشریحش کنید تا حداقل نمونه ای بفرمایید تا مبحث به صورت آموزشی پیش بره.
بازم متشکرم
نقل قول: بهترین روش برای ثبت تغییرات در رکورد
سلام
يك مطلب اموزشي كوتاه بر اساس استفاده از ديتا ماكرو تو اين لينك اومده اميدوارم به دردتون بخوره:
https://scottgem.wordpress.com/2012/...data-macros-2/
يك نمونه فايل هم در انتهاي مطلب قرار داده شده
نقل قول: بهترین روش برای ثبت تغییرات در رکورد
آقای مهربان
این نمونه که آقای میرزازاده گذاشتن خیلی خوبه - شما با همین فرمون برین جلو و insert و delete رو هم پیاده کنین.
فقط برای delete بهتره بجای اینکه رکورد رو فیزیکی حذف کنین و بجاش یک کپی در جدول تغییرات بسازین، اصلا حذفش نکنین - کافی هست یک فیلد boolean مثلا بنام IsDeleted داشته باشین و فقط اون رو true کنین.
البته اطلاعات مورد نیاز مثل اسم کاربر و اسم ماشین و timestamp و ... رو در جدول تغییرات بریزین.