首页 > 开发 > 综合 > 正文

ACCESS中Field对象的标题属性

2024-07-21 02:13:54
字体:
来源:转载
供稿:网友

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中多走弯路。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表