2014-04-09 119 views
1

我已經爲此問題搜索了一段時間的解決方案,似乎無法找到任何相關的內容。是否可以通過VBA更改表格中的列標籤(標題)。我發現要做到這一點的唯一方法是創建基於表的參數作爲SQL別名的查詢。但是,它爲我已經複雜的數據庫添加了更多元素,這是我想避免的。我不想更改列名稱。有沒有解決這個問題的方法,或者我現在應該離開它嗎?通過VBA更改訪問列標籤

感謝您花時間閱讀本文併爲答案!

+0

如果您是指在臨時基礎上動態更改列名,我強烈建議您不要這樣做。 – Fionnuala

+0

正如我寫的,我不想改變他們的名字,只是他們顯示給用戶的方式。我可以通過在表格項目選項卡中更改它們的標題來手動完成。我想知道我是否可以動態地做到這一點。 – iwek

+0

恐怕我不太明白你想要什麼。什麼是表格項目選項卡?你在使用表單嗎? – Fionnuala

回答

1

我認爲這就是你想要的,但我從不大大讚成將信息添加到可能會混淆未來用戶的表格。

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