談ACCESS中Field對象的標題屬性_Access數據庫教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:如何在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數據庫教程/更新時間:2009-08-25
      相關Access數據庫教程