将字段标签(Field Label)名称存入变量的VBA代码问题排查
代码存在的问题
- Caption属性默认不存在的报错风险:Access表字段的
Caption属性不是系统默认生成的,只有你手动给对应字段设置过标签之后,这个属性才会被创建,直接访问不存在的属性会抛出「运行时错误3270:找不到属性」。 db变量未初始化的风险:代码中的db对象变量需要提前正确赋值,如果你没有提前写类似Set db = CurrentDb(针对当前打开的Access数据库)的初始化语句,会抛出「对象变量或With块变量未设置」的错误。- 名称匹配问题:需要确认你引用的表名
data、字段名text11真实存在、拼写完全匹配,否则会抛出找不到对应表/字段的错误。
修复参考代码
你可以增加属性存在性判断逻辑,避免运行时报错:
Dim db As DAO.Database Dim fld As DAO.Field Dim FieldCaptionName As String ' 初始化数据库对象 Set db = CurrentDb Set fld = db.TableDefs("data").Fields("text11") ' 兼容Caption属性不存在的场景 On Error Resume Next FieldCaptionName = fld.Properties("Caption").Value If Err.Number <> 0 Then ' 属性不存在时默认返回字段名,也可以自行修改为其他默认值 FieldCaptionName = fld.Name End If On Error GoTo 0
内容的提问来源于stack exchange,提问作者Dummie
相关产品推荐
相关产品推荐

