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