PDA

View Full Version : راهی برای دسترسی به Extended Property های یک فیلد



Sub Zero
سه شنبه 11 دی 1386, 15:55 عصر
سلام.
سوالم رو انجوری شروع میکنم که من دیتا بیس اکسسم رو به SQl تبدیل کردم ( با استفاده از یه برنامه کانورتور ) اما بعد ازتبدیل متوجه شدم که Description های مربوط به هر فیلد در دیتابیس جدید وجود نداره با کلی جستجو تونستم یه سری دستورات رو برای کار با Extended Property ها در SQl پیدا کنم :

select objname as ColName, value as Description _ &
From ::fn_listextendedproperty(NULL, 'user', 'dbo', 'table',' & 'TableName' & , 'column', default)

من دنبال کد معادل این دستورات در اکسس میگردم تا بتونم با استفاده از یه Query به Description های هر فیلد دسترسی پیدا کنم . ممنون می شم اگه دوستان در این ضمینه اطلاعاتی رو در اختیارم قرار بدن .
در ضمن من از اکسس پروچکت استفاده نمیکنم و دیتابیسم هم یک فایل اکسس عادیه . اینو گفتم چون توی سایتی که لینکش رو گذاشتم راهی براش پیدا کردم اما ظاهرا در اکسس پروچکت جواب میده .
Access 2002 Data Projects for Developers (http://msdn2.microsoft.com/en-us/library/aa217647(office.11,printer).aspx)

مهدی قربانی
چهارشنبه 12 دی 1386, 08:04 صبح
سلام
دوست گرامی این کد می تونه Properties کوئری رو تغییر بده .
برای اجرای این کد حتماً در VBA از طریق منوی Tools\References گزینه Microsoft DAO 3.6 Object Library رو فعال کنید .

Dim qdef As QueryDef
Set qdef = CurrentDb.querydefs("QueryName")
qdef.Fields("FieldName").Properties("description") = "ABCDEFG..."

Sub Zero
یک شنبه 30 دی 1386, 20:23 عصر
با تشکر از جوابتون مشکلم رو با طراحی یه فرم و با کمک کدهای زیر حل کردم :

Private Sub Form_Load()
Set cat.ActiveConnection = CurrentProject.Connection
Dim tbl As Table
Dim fld As Field

For Each tbl In cat.Tables
tblname.AddItem (tbl.Name)
Next
End Sub

Private Sub tblname_Click()
flname.RowSource = ""
Dim tbl As New ADOX.Table, fld As ADOX.Column
Set tbl = cat.Tables(tblname.Value)
For Each fld In tbl.Columns
flname.AddItem fld.Name & ";" & fld.Properties(2).Value
Next
End Sub