通过VBA更改访问列标签

通过VBA更改访问列标签,vba,ms-access,label,ms-access-2007,title,Vba,Ms Access,Label,Ms Access 2007,Title,我已经为这个问题寻找了一段时间的解决方案,但似乎找不到任何相关的解决方案。是否可以通过VBA更改表中的列标签(标题)。我找到的唯一方法是基于表创建查询,并将参数作为SQL别名。然而,它为我已经很复杂的数据库添加了更多的元素,这是我想要避免的。我不想更改列名。这个问题有什么解决办法吗?或者我应该保持现状吗 感谢您花时间阅读本文并提供答案 我想这正是您想要的,但我从来都不太赞成向表中添加可能会让未来用户感到困惑的信息 Option Compare Database Option Explicit

我已经为这个问题寻找了一段时间的解决方案,但似乎找不到任何相关的解决方案。是否可以通过VBA更改表中的列标签(标题)。我找到的唯一方法是基于表创建查询,并将参数作为SQL别名。然而,它为我已经很复杂的数据库添加了更多的元素,这是我想要避免的。我不想更改列名。这个问题有什么解决办法吗?或者我应该保持现状吗


感谢您花时间阅读本文并提供答案

我想这正是您想要的,但我从来都不太赞成向表中添加可能会让未来用户感到困惑的信息

Option Compare Database
Option Explicit

Sub Usage()
    SetProperty "Table1", "ID", "Caption", "This is an ID"
End Sub

Sub SetProperty(TableName As String, Fieldname As String, _
    PropertyName As String, PropertyValue As Variant, _
    Optional PropertyType As Variant = dbText)

Dim db As DAO.Database
Dim fld As DAO.Field
Dim prp As DAO.Property

    On Error GoTo Err_Property

    Set db = CurrentDb
    Set fld = db.TableDefs(TableName).Fields(Fieldname)
    fld.Properties(PropertyName) = PropertyValue

    ''Debug.Print fld.Properties(PropertyName)

    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 prp = fld.CreateProperty(PropertyName, _
            PropertyType, PropertyValue)
        fld.Properties.Append prp
        Resume Next
    Else
        MsgBox Err.Description
    End If

End Sub

如果您的意思是在临时基础上动态更改列名,我强烈建议您不要这样做。正如我所写的,我不想更改它们的名称,只是更改它们向用户显示的方式。我可以通过在“表项目”选项卡中更改它们的标题手动执行此操作。我想知道我是否能动态地完成这项工作。恐怕我没有完全得到你想要的。什么是表项目选项卡?是否正在使用表单?如果输入表格并选择“项目视图”,则可以更改列的选项。其中一个选项是标题(或标签,我不使用英文版本,所以我不知道它是如何翻译的)。您可以将有人打开表时显示的列的标签放在那里。它不会更改列的名称,只会更改列的显示方式。我想知道我是否可以通过VBA更改列的此属性。如果您想避免查询,因为它将
[1][添加]
到您的
[2][已经很复杂的数据库]
,我只能说您必须解决
[2]
,然后忙于
[1]
。另一种选择是在不久的将来经历麻烦。