如何抓出 Access 的 Table 栏位中的【叙述】部份呢?

如何抓出 Access 的 Table 栏位中的【叙述】部份呢? - 应用软件 - 电脑教程网

如何抓出 Access 的 Table 栏位中的【叙述】部份呢?

日期:2006-11-26   荐:
  不知道大家是否使用過 Microsoft Office 的 Access 來列印過 Access 資料庫的檔案架構?也就是 Access 的【文件產生器】。如果您沒有使用過,現在可以試看看!在 Access 的 Menu 中選擇【工具】【分析】【文件產生器】,稍待一會兒就會出現【文件產生器】視窗。

將資料庫檔案架構印出來,可以方便我們在程式設計時對於資料庫的存取,及資料庫欄位的比對。不過 Access 雖然有中文版,但是它終究是國外的人開發的產品,我在使用時,就一直有個麻煩,那就是在簡式列印時,它對於每一個欄位,只會列印出欄位名稱、資料類型及欄位大小。 (缺【敘述】的中文說明)

如果您在設計 Table 時,使用中文為欄位名稱,那就沒有問題,每一個欄位,只要列印出欄位名稱、資料類型及欄位大小就夠了,不過據我所知,由於習慣及其他因素(例如:需和其他不同類型的資料庫做轉移,像 Oracle/SQLServer),許多人還是使用英文來命名欄位,然後在【敘述】中輸入中文說明,那樣的話【文件產生器】產生的文件就有點不符合需求了,因為它不會印出【敘述】的中文部份!

既然【文件產生器】不太符合某些人的實際需求,而又不想自己做文件,那就只能自己寫程式來做了!要如何抓出 Access 的 Table 欄位中的【敘述】部份呢?

以下是一個實際範例,您只要在 Form 中放一個 CommandButton (Command1) 即可:

Dim db As Database

'以下 Function 需要二個參數,sTable 是 Table 名稱,sField 是欄位名稱

Function Getdescription(sTable As String, sField As String) As String

Dim Sna As Recordset

Dim i As Integer

Dim existDescr As Boolean

Set Sna = db.OpenRecordset(sTable, dbOpenTable)

existDescr = False

For i = 0 To Sna(sField).Properties.Count - 1

If Sna(sField).Properties(i).Name = "Description" Then

existDescr = True: Exit For

End If

Next

If existDescr Then

Getdescription = Sna(sField).Properties("Description")

Else

Getdescription = ""

End If

End Function

Private Sub Command1_Click()

Dim x As String

MsgBox Getdescription("AABLE_L", "AABLE_LNO")

End Sub

Private Sub Form_Load()

Set db = opendatabase("c:\hris\ability.mdb") '資料庫

End Sub

标签: