ACCESS数据库中Field对象的caption属性读写
来源:程序员人生 发布时间:2013-12-11 05:30:20 阅读次数:3533次
本文章说明如何用VBA读写该属性可惜Field对象的CAPTION属性并不是ADO原生对象而是可由ADO访问的ACCESS属性在帮助文档中介绍了两种访问这个属性的方法一种利用ADO一种利用DAO在这里我直接说出结果由于在ACCESS及以前的版本中Field对象并不是ACCESSObject对象因而也就没有AccessObjectProperties属性所以我们也就别想在ADO中去解决这个问题吧现在给出DAO的代码解决办法
SubSetProperty(dbsTempAsDAOFieldstrNameAsString_ booTempAsString) DimprpNewAsDAOProperty DimerrLoopAsError Attempttosetthespecifiedproperty
OnErrorGoToErr_Property dbsTempProperties(strName)=booTemp OnErrorGoTo ExitSub Err_Property:
Errormeansthatthepropertywasnotfound IfDBEngineErrors()Number=Then
Createpropertysetitsvalueandappendittothe Propertiescollection
SetprpNew=dbsTempCreateProperty(strName_ dbTextbooTemp)
dbsTempPropertiesAppendprpNew ResumeNext Else
Ifdifferenterrorhasoccurreddisplaymessage ForEacherrLoopInDBEngineErrors
MsgBoxErrornumber:&errLoopNumber&VBCr&_ errLoopDescription NexterrLoop End EndIf
EndSub SubDisplayClumCaption(ByValtbnameAsStringByValfldIndexAsInteger)
DimdsetAsDAOTableDef) //*****必须使用TableDef对象
DimiAsIntegerDimtmpPropAsDAOProperty //强制使用DAO类型
DimfldAsDAOField //强制使用DAO类型DimtmpTxtAsStringOnErrorResumeNext
DimmsgAsStringDimcdbAsDAODatabase //*****强制使用DAO类型
Setcdb=CurrentDb //****关键确定对当前数据库的静态引用
Setdset=cdbTableDefs(tbname)//*****必须使用TableDef对象
ForEachfldIndsetFields tmpTxt=fldName SetPropertyfldCaptiontmpTxt msg=msg fldProperties(Caption)
msg=msg Chr() Chr() Nextfld MsgBoxmsgEndSub
这里代码中有两个SUB一个是SetProperty用来判断一个字段是否有指定的属性如果没有设置有就将相应的数值赋给该属性这段代码几乎完全是照搬MS的帮助文档另一个是DisplayClumCaption这是对指定表中的字段按字段名设置其CAPTION属性的演示代码如果有需要大家可以对SetProperty进行修改使他变成一个只读的函数用来枚举指定表中每个字段的CAPTION属性 DisplayClumCaption代码中我打星号的地方是要重点注意的因为我在这里曾走过弯路浪费了一个下午的时间在MSDN中游荡
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠