分享:ACCESS資料庫中Field對象的caption屬性讀寫

來源:互聯網
上載者:User
文章中打“星號”的地方是要重點注意的,因為筆者在這裡曾走過彎路,浪費了一個下午的時間在MSDN中遊盪。現在分享給大家

本文章說明如何用VBA讀寫該屬性。 可惜Field對象的CAPTION屬性並不是ADO原生對象,而是“可由ADO訪問的ACCESS屬性”,在協助文檔中介紹了兩種訪問這個屬性的方法,一種利用ADO,一種利用DAO,在這裡我直接說出結果,由於在ACCESS2003及以前的版本中Field對象並不是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.Number&VBCr&_ errLoop.Description NexterrLoop End EndIf

EndSub SubDisplayClumCaption(ByValtbnameAsString,ByValfldIndexAsInteger)

DimdsetAsDAO.TableDef) //*****必須使用TableDef對象

DimiAsIntegerDimtmpPropAsDAO.Property //強制使用DAO類型

DimfldAsDAO.Field //強制使用DAO類型DimtmpTxtAsString'OnErrorResumeNext

DimmsgAsStringDimcdbAsDAO.Database //*****強制使用DAO類型

Setcdb=CurrentDb //****關鍵,確定對當前資料庫的靜態引用

Setdset=cdb.TableDefs(tbname)//*****必須使用TableDef對象

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

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

這裡代碼中有兩個SUB,一個是SetProperty,用來判斷一個欄位是否有指定的屬性,如果沒有設定,有就將相應的數值賦給該屬性,這段代碼幾乎完全是照搬MS的協助文檔。另一個是DisplayClumCaption,這是對指定表中的欄位按欄位名設定其CAPTION屬性的示範代碼。如果有需要,大家可以對SetProperty進行修改,使他變成一個唯讀函數,用來枚舉指定表中每個欄位的CAPTION屬性。DisplayClumCaption代碼中



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.