我需要更新8個表中的Access數據庫中的所有列名稱。總之,列名中的每個下劃線都應該用空格替換。你能推薦一個快速的方法嗎?MS Access:以編程方式重命名列
2
A
回答
2
我上週剛寫代碼,這對於一個應用程序:
Public Sub RenameFields(ByRef tdf As DAO.TableDef)
Dim fld As DAO.Field
Dim strFieldName As String
Dim strNewName As String
Debug.Print "==============================================" & vbCrLf & UCase(tdf.Name)
For Each fld In tdf.Fields
strFieldName = fld.Name
strNewName = Mid(strFieldName, 4)
Select Case Left(strFieldName, 3)
Case "boo", "byt", "cur", "dat", "hyp", "int", "mem", "obj", "txt"
fld.Name = strNewName
Debug.Print tdf.Name & "." & strFieldName & "=>" & strNewName
End Select
Next fld
Set fld = Nothing
End Sub
在這種情況下,以前的開發商有點傻裏使用字段名稱的VBA變量命名約定(例如,應該是LastName的txtLastName),我需要刪除所有這些。該代碼被稱爲是這樣的:
Dim tdf As DAO.TableDef
For Each tdf in CurrentDB.TableDefs
If Left(tdf.Name,3) = "tbl" Then ' <= this line may differ for you
Call RenameFields(tdf)
End If
Next tdf
Set tdf = Nothing
你可以很容易地適應RenameFields()子使用REPLACE()的新名稱,像這樣:
Public Sub RenameFields(ByRef tdf As DAO.TableDef)
Dim fld As DAO.Field
Dim strFieldName As String
Dim strNewName As String
Debug.Print "==============================================" & vbCrLf & UCase(tdf.Name)
For Each fld In tdf.Fields
strFieldName = fld.Name
strNewName = Replace(strFieldName, "_"," ")
If strFieldName <> strNewName Then
fld.Name = strNewName
Debug.Print tdf.Name & "." & strFieldName & "=>" & strNewName
End If
Next fld
Set fld = Nothing
End Sub
所有這一切說,我d真的,非常強烈地建議你用而不是用空格替換下劃線,因爲這使得它更加難以使用SQL和代碼中的字段名稱。我會用CAMEL情況下,沒有下劃線或空格或破折號,以便將替換代碼()線以上將成爲:
strNewName = Replace(StrConv(Replace(strFieldName, "_"," "), vbProper)," ", vbNullString)
這將轉換「姓氏」或「姓氏」,以「姓氏」。只要我在Access中進行編程(自1996年以來),字段名稱可讀性的駝峯案例就成爲Access開發人員的標準,並且避免了由特殊字符或空格造成的問題(即必須用方括號包圍字段名稱)。
4
你有沒有嘗試使用TableDefs
DatabaseName.TableDefs("TableName").Fields("FieldName").Name = "NewName"
相關問題
- 1. 以編程方式重命名Access查詢中的表格
- 2. 以編程方式重命名plist值?
- 3. 重命名Android apk以編程方式
- 4. 以編程方式重命名mpp文件列
- 5. MS Access,命名參數和列名稱
- 6. 以編程方式重命名沒有API的Excel工作表
- 7. 以編程方式重命名或排除C#類和方法
- 8. 如何以編程方式從MS Access最大化瀏覽器?
- 9. MS Access:如何以編程方式添加子表格
- 10. MS Access:以編程方式複製/粘貼選定的記錄?
- 11. 以編程方式在Mac上將MS Access導入到CSV
- 12. 如何以編程方式更改的QueryDef SQL在MS Access
- 13. 以編程方式將MS Access查詢結果導出到CSV
- 14. 如何以編程方式在C#中創建MS Access表?
- 15. 在ms-access中使用vba以編程方式複製表格
- 16. 以編程方式命名ScatterViewItem
- 17. Javascript:以編程方式命名數組
- 18. 如何以編程方式重命名Android應用程序?
- 19. 使用C#動態重命名MS Access中的列
- 20. 如何以編程方式刪除或重命名Azure Active Directory?
- 21. 以編程方式重命名TFS分支c#(TFS2017)
- 22. 是否可以通過編程方式重命名Outlook類別?
- 23. 以編程方式重命名Azure存儲表
- 24. 以編程方式重命名Windows上的打開文件
- 25. 以編程方式重命名計算機c#.net
- 26. 如何以編程方式重命名Sharepoint目錄(SPFolder或SPListItem)?
- 27. 如何以編程方式重命名eclipse插件菜單
- 28. 以編程方式重新排列圖
- 29. 以編程方式重新排列RelativeLayout
- 30. 以編程方式訪問Access Gateway