برای اطلاع از آخرین مقالات و به روزرسانی‌های سایت در کانال تلگرام اکسل فرساران و یا صفحه ایسنتاگرام اکسل عضو شوید.  smiley

نگهداری تغییرات ستونی از یک جدول اکسس

اگر در یک جدول Access همکار بودجه ای پروژه ای را تغییر دهد و بعدها شما بخواهید بفهمید که مقدارهای قبلی بودجه چه چیزی بوده است معمولا یک ستون به نام توضیحات در جدول قرار می دهید و به همه همکاران می گویید که باید در این ستون توضیحات مقداری را که تغییر داده اند را بنویسند.

بدیهی است که ممکن است کسی یادش برود آپدیت کند، اشتباه کند یا تاریخ را اشتباه وارد نماید.

در Access 2007 ویژگی جدیدی اضافه شده است به نام Column History که دقیقا برای اینکار در نظر گرفته شده است.

در هنگام طراحی یک جدول باید Field ی از نوع Memo را اضافه کنید و سپس Append Only آنرا به حالت Yes تغییر دهید.

 

از این به بعد تمامی تغییرات این ستون را خواهید داشت. برای مشاهده تغییرات این ستون شما باید در جدول خود بر روی سلول مورد نظر Right Click کنید و سپس از Show Column History را انتخاب نمایید. تا پنجره ای مانند زیر ظاهر گردد:

 

برای نشان دادن تغییرات در Form ها یا Query ها شما باید با VBA یک Function جدید تعریف کنید. در ادامه شما این تابع را که از یکی از کتابهای مرجع Access انتخاب شده را مشاهده می نمایید:

Function modApp_ColumnHistory(strTableName As String, _
strColumnName As String, _
strKeyName As String, _
strKeyValue As Variant) As String

rem returns the memo history data
Dim strQueryString As String
strQueryString = "[" & strKeyName & "] = "
If Not IsNumeric(strKeyValue) Then
    rem this could be extended for other data types
    strQueryString = strQueryString & "'" & strKeyValue & "'"
    Else
    strQueryString = strQueryString & strKeyValue
End If

 

   modApp_ColumnHistory = Application.ColumnHistory(strTableName, _
    strColumnName, _
    strQueryString)

End Function

نحوه استفاده از این تابع  در Query/Form (در مثال زیر نام جدول ما tbl_www_farsaran_ir است و نام ستونی که تغییر داده شده است Budget)

 

 modApp_ColumnHistory("tbl_www_farsaran_ir","budget","id",[id])

به این مطلب پاسخ دهید