ستون توضیحات جدول را
تنظیم كنید
برای
نمایش فرآیند تخصیص یك مقدار به یك صفت،
مثالی از دنیای واقعی، كه ممكن است واقعا به آن
نیاز پیدا كنید، میآورم. در این مثال، صفت توضیحات
تمام فیلدهای جدول موردنظر به یك نسخه سازگار[7]
از نام ستون تنظیم شدهاند. توجه كنید كه در شكل زیر، هر
فیلد جدول دارای صفت توضیحاتی است كه با نسخهای از
نام ستون كه برای انسان خواناتر است، با فاصلههایی میان كلمات،
تنظیم شده است. ممكن است این كار هنوز چندان پخته نباشد، ولی به هر
حال یكی از قابلیتهای بهبود دهنده من است.
به علاوه، ممكن
است تغییر صفات جالب به نظر برسد، زیرا هنگامی كه از
ویزارد برای ایجاد یك فرم از یك جدول استفاده
میكنید، اكسس از مقدار صفت توضیحات جهت بهروزرسانی
اتوماتیك متن نوار وضعیت (كه در مثال بعد آن را پیادهسازی
خواهیم كرد) استفاده میكند. این كار "غذای سگ خود
را خوردن"[8] خوانده
میشود و مایكروسافت این كار را به خوبی انجام میدهد.
بنابراین، اگر این كد را برای مجهز كردن هر فیلد به
توضیحات به كار ببرید، این مقادیر در فرمهایی
كه با ویزارد فرم ایجاد شدهاند منتشر خواهند شد.

Public Function
SetTableColumnDescriptions(sTable As String) As Boolean
On Error Resume Next
Dim dbs As DAO.Database
Dim tdf As DAO.TableDef
Dim fld As DAO.Field
Dim prp As DAO.Property
Dim strValue As String
Dim strOut As String
Set dbs = CurrentDb
Set tdf =
dbs.TableDefs(sTable)
' Loop through all the
fields (columns)
For Each fld In
tdf.Fields
' Grab the field name and
add spaces to make it human readable
strValue = fld.Name
' See the AddSpacesToName
function below. (see download file)
strValue =
AddSpacesToName(strValue)
' Attempt to read and set
the property
If
fld.Properties("Description") = "" Then
fld.Properties("Description")
= strValue
End If
' If the property didn't
exist, there will have been an error and
' it needs to be added.
If Err.Number = 0 Then
' No problem. Property
existed and the value was set.
ElseIf Err.Number = 3270
Then
' This error means the
property was not found.
' We need to create it.
Err.Clear
Set prp = fld.CreateProperty("Description",
dbText, strValue)
fld.Properties.Append prp
If Err.Number <> 0
Then
MsgBox Err.Description,
vbExclamation, "Error"
End If
Else
' Not sure what the error
was. Report to user.
MsgBox Err.Description,
vbExclamation, "Error"
End If
Next
Set prp = Nothing
Set tdf = Nothing
Set dbs = Nothing
End Function
در این
مثال ترفندی نهفته است، زیرا هنگامی كه مقدار اولیهای
برای توضیحات در نظر گرفته نشده باشد، در واقع صفت اصلا وجود ندارد
[بنابراین، نمیتوان مقداری به آن نسبت داد. -ویراستار]. چندی پیش
مثالی در گروه خبری دیدم كه از مثال فوق بسیار جالبتر
بود، ولی در عین حال با همین روش كار میكرد. با
روشی ساده صفت را مقداردهی میكند و اگر خطایی با
شماره 3270 رخ دهد، آنگاه متوجه میشوید كه نیاز به ایجاد
صفت میباشد.
برای
ایجاد یك صفت، باید هنگام ایجاد شی صفت متد Field.CreateProperty
را فراخوانی كنید و سپس به روش گفته شده آن را به مجموعه Field.Properties
اضافه كنید. من از تابعی اضافه استفاده میكنم كه كد آن در
هیچ جای این مقاله آورده نشده است، اما در فایل این مقاله وجود
دارد.
[8] ترجمه eating your own dog
food میباشد.
این اصطلاح بیشتر برای شركتهایی استفاده میشود كه از محصولات تولیدی خودشان
استفاده میكنند.(به علت تنوع محصولات یا امكانات تمام كارها را با محصولات خودشان
انجام میدهند) - ویراستار