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


知道大家是否使用过 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 中选择【工具】【分析】【文件产生器】,稍待一会儿就会出现【文件产生器】视窗。

将资料库档案架构印出来,可以方便我们在程式设计时对於资料库的存取,及资料库栏位的比对。不过 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

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3