知道大家是否使用過 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") '資料庫
不知道大家是否使用過 Microsoft Office 的 Access 來列印過 Access 資料庫的檔案架構?也就是 Access 的【文件產生器】。如果您沒有使用過,現在可以試看看!在 Access 的 Menu 中選擇【工具】【分析】【文件產生器】,稍待一會兒就會出現【文件產生器】視窗。
如果您在設計 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