VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)
首页 - 经验之谈 - 如何抓出 Access 的 Table 表中的【敘述】部份呢
发表评论(0)作者:, 平台:, 阅读:10355, 日期:2000-04-02




主題: 如何抓出 Access 的 Table 欄位中的【敘述】部份呢?

來源:不詳 (小紀代為整理)

版本:VB6 / VB5 / VB4-32 / VB4-16 / VB3






不知道大家是否使用過 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