说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

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

HTML文档下载 WORD文档下载 PDF文档下载
VB如何抓出 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


备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘