ACCESS數(shù)據(jù)庫中Field對象的caption屬性讀寫
來源:程序員人生 發(fā)布時間:2013-12-11 05:30:20 閱讀次數(shù):3768次
本文章說明如何用VBA讀寫該屬性可惜Field對象的CAPTION屬性并不是ADO原生對象而是可由ADO訪問的ACCESS屬性在幫助文檔中介紹了兩種訪問這個屬性的方法一種利用ADO一種利用DAO在這里我直接說出結果由于在ACCESS及以前的版本中Field對象并不是ACCESSObject對象因而也就沒有AccessObjectProperties屬性所以我們也就別想在ADO中去解決這個問題吧現(xiàn)在給出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 //****關鍵確定對當前數(shù)據(jù)庫的靜態(tài)引用
Setdset=cdbTableDefs(tbname)//*****必須使用TableDef對象
ForEachfldIndsetFields tmpTxt=fldName SetPropertyfldCaptiontmpTxt msg=msg fldProperties(Caption)
msg=msg Chr() Chr() Nextfld MsgBoxmsgEndSub
這里代碼中有兩個SUB一個是SetProperty用來判斷一個字段是否有指定的屬性如果沒有設置有就將相應的數(shù)值賦給該屬性這段代碼幾乎完全是照搬MS的幫助文檔另一個是DisplayClumCaption這是對指定表中的字段按字段名設置其CAPTION屬性的演示代碼如果有需要大家可以對SetProperty進行修改使他變成一個只讀的函數(shù)用來枚舉指定表中每個字段的CAPTION屬性 DisplayClumCaption代碼中我打星號的地方是要重點注意的因為我在這里曾走過彎路浪費了一個下午的時間在MSDN中游蕩
生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈