app教程网 学习教程 access filter属性(access 数据库对象)

access filter属性(access 数据库对象)

这篇文章解释了如何用VBA读写这个属性。遗憾的是,Field对象的CAPTION属性不是ADO原生对象,而是一个“ADO可访问的ACCESS属性”。在帮助文档中,介绍了访问该属性的两种方法,一种是使用ADO,

一种是使用DAO,在这里我直接说出结果。因为Field对象不是ACCESS2003和早期版本中的ACCESSObject对象,所以没有AccessObjectProperties属性。

所以我们先不要试图用ADO来解决这个问题,现在给出DAO的代码解决方案。

SubSetProperty(dbsTempAsDAO.Field,strNameAsString,_ booTempAsString) DimprpNewAsDAO.Property DimerrLoopAsError 'Attempttosetthespecifiedproperty.

OnErrorGoToErr_Property dbsTemp.Properties(strName)=booTemp OnErrorGoTo0 ExitSub Err_Property:

'Error3270meansthatthepropertywasnotfound. IfDBEngine.Errors(0).Number=3270Then

'Createproperty,setitsvalue,andappendittothe 'Propertiescollection.

SetprpNew=dbsTemp.CreateProperty(strName,_ dbText,booTemp)

dbsTemp.Properties.AppendprpNew ResumeNext Else

'Ifdifferenterrorhasoccurred,displaymessage. ForEacherrLoopInDBEngine.Errors

MsgBox'Errornumber:'errLoop.NumberVBCr_ errLoop.Description NexterrLoop End EndIf

EndSub SubDisplayClumCaption(ByValtbnameAsString,ByValfldIndexAsInteger)

DimdsetAsDAO .TableDef) //*****必须使用TableDef对象

DimiAsIntegerDimtmpPropAsDAO .属性//strong制使用数据访问对象(数据访问对象)类型

DimfldAsDAO .Field //strong制使用数据访问对象(数据访问对象)类型DimtmpTxtAsString ' onerrorresumenext

DimmsgAsStringDimcdbAsDAO。数据库//***** Erzwingen des DAO-Typs

设置CDB=当前数据库//* * *键来确定对当前数据库的静态引用。

setdset=cdb .TableDefs(tbname)//*****必须使用关于表格对象

ForEachfldIndset.Fields tmpTxt=fld.Name SetPropertyfld,'Caption',tmpTxt msg=msg fld.Properties('Caption')

msg=msg Chr(10) Chr(13) Nextfld MsgBoxmsgEndSub

这里的代码中有两个子项,一个是SetProperty,用来判断一个字段是否有指定的属性。如果没有设置,相应的值将被赋给该属性。这段代码几乎完全复制了MS的帮助文档。

另一个是DisplayClumCaption,是根据字段名设置指定表中字段的Caption属性的演示代码。如有必要,可以修改SetProperty,使其成为只读函数。

用于枚举指定表中每个字段的标题属性。在DisplayClumCaption代码中,我要注意我标记“星号”的地方,因为我在这里走了弯路,浪费了一个下午在MSDN闲逛。

本文来自网络,不代表本站立场,转载请注明出处:https: