談ACCESS中Field對象的標題屬性_Access數據庫教程
推薦:如何在ACCESS中壓縮當前數據庫ACCESS只能壓縮已關閉的ACCESS數據庫,因此,不能在代碼中直接對當前的數據庫進行。但可以調用ACCESS菜單的方法解決這個問題。accDoDefaultAction是一個Office Object Library沒有公布的調用菜
ACCESS數據庫中Field對象的caption屬性(也就是標題)是用來設置數據字段的標題,在正常的數據庫設計中為了保持維護的便利性,許多開發者都將字段名與標題做了分別設置,標題往往比字段名更友好,更能說明字段的用途。本篇從另一個角度來說明如何用VBA讀寫該屬性。
Field對象的CAPTION屬性并不是ADO原生對象,而是“可由ADO訪問的ACCESS屬性”,在幫助文檔中介紹了兩種訪問這個屬性的方法,一種利用ADO,一種利用DAO,由于在ACCESS2003及以前的版本中Field對象并不是ACCESSObject對象,因而也就沒有AccessObjectProperties 屬性,所以我們也就不能在ADO中去解決這個問題,現在用另一種方式來解決DAO的代碼。
以下為引用的內容: Sub SetProperty(dbsTemp As DAO.Field, strName As String, _ booTemp As String) Dim prpNew As DAO.Property Dim errLoop As Error ' Attempt to set the specified property. On Error GoTo Err_Property dbsTemp.Properties(strName) = booTemp On Error GoTo 0 Exit Sub Err_Property: ' Error 3270 means that the property was not found. If DBEngine.Errors(0).Number = 3270 Then ' Create property, set its value, and append it to the ' Properties collection. Set prpNew = dbsTemp.CreateProperty(strName, _ dbText, booTemp) dbsTemp.Properties.Append prpNew Resume Next Else ' If different error has occurred, display message. For Each errLoop In DBEngine.Errors MsgBox "Error number: " & errLoop.Number & vbCr & _ errLoop.Description Next errLoop End End If End Sub Sub DisplayClumCaption(ByVal tbname As String, ByVal fldIndex As Integer) Dim dset As DAO.TableDef) //*****必須使用TableDef對象 Dim i As Integer Dim tmpProp As DAO.Property //強制使用DAO類型 Dim fld As DAO.Field //強制使用DAO類型 Dim tmpTxt As String 'On Error Resume Next Dim msg As String Dim cdb As DAO.Database //*****強制使用DAO類型 Set cdb = CurrentDb //****關鍵,確定對當前數據庫的靜態引用 Set dset = cdb.TableDefs(tbname)//*****必須使用TableDef對象 For Each fld In dset.Fields tmpTxt = fld.Name SetProperty fld, "Caption", tmpTxt msg = msg fld.Properties("Caption") msg = msg Chr(10) Chr(13) Next fld MsgBox msg End Sub |
在以上部分的代碼中有兩個SUB,一個是SetProperty ,用來判斷一個字段是否有指定的屬性,如果沒有設置,就將相應的數值賦給該屬性。另一個是DisplayClumCaption,這是對指定表中的字段按字段名設置其CAPTION屬性的演示代碼。如果有需要,大家可以對SetProperty進行修改,使他變成一個只讀的函數,用來枚舉指定表中每個字段的CAPTION屬性。DisplayClumCaption代碼中,打“星號”的地方是要重點注意的,不然可能會在MSDN中多走彎路。
分享:用Access創建簡單MIS管理系統你家中的CD、VCD一定很多吧?是不是常遇到為找一張CD把一抽屜的碟子翻得亂七八糟的情況,你一定沒少受埋怨——你不想整理它們一下?如:影片是國產的、還是國外的,是言情的、還是槍
- 相關鏈接:
- 教程說明:
Access數據庫教程-談ACCESS中Field對象的標題屬性。