Мне нужно обновить все имена столбцов в базе данных Access из 8 таблиц. Короче говоря, каждое подчеркивание в имени столбца должно быть заменено пробелом. Можете ли вы рекомендовать быстрый способ для этого?MS Access: программно переименовывать столбцы
ответ
Я написал код для этого для приложения только на прошлой неделе:
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 для имен полей (txtLastName для того, что должно быть LastName, например), и мне нужно было удалить все из них. Код называется так:
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() к югу использовать Заменить() для нового имени, что-то вроде этого:
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)
Это было бы преобразовать «Last_name» или «last_name» на «LastName». Случай верблюда для удобочитаемости имен полей был стандартным для разработчиков Access, если я программировал в Access (с 1996 года) и избегаю проблем, вызванных специальными символами или пробелами (т. Е. Чтобы окружать имя поля квадратными скобками).
ли вы попробовать использовать TableDefs
DatabaseName.TableDefs("TableName").Fields("FieldName").Name = "NewName"
- 1. Конкатенация столбцы одной строки в MS Access
- 2. MS Access: как программно добавить подформацию
- 3. MS Access: копировать/вставлять выбранную запись программно?
- 4. SQL присоединяется и переименовывать столбцы
- 5. MS Access guide
- 6. MS-Access .mdb компилятор?
- 7. Расщепление Dataframe Строки и переименовывать столбцы
- 8. Typo3 6.0.x переименовывать столбцы в backend
- 9. Дублирование строки SQL и переименовывать дублированные столбцы
- 10. для цикла добавить столбцы, используя SQL в MS Access
- 11. добавляющим столбцы из двух таблиц в MS Access
- 12. Как объединить и отсортировать столбцы? MySQL, CF8, MS Access 2003
- 13. Как сопоставить столбцы postgres money в MS Access?
- 14. Разделить столбцы по полям и объединить записи MS Access 2007
- 15. MS ACCESS SQL-запрос, чтобы найти все столбцы типа Datatime
- 16. MS Access: Объединить столбцы и строки уникальных строк
- 17. Я хочу преобразовать строки в столбцы в ms-access
- 18. MS Access 2007: Использование SQL для переноса строк в столбцы
- 19. MS Access/MS SQL Query
- 20. MS Access, автоматическое обновление запросов
- 21. Ms Access - VBA - Создавать метки программно с размером
- 22. Как изменить QueryDef SQL программно в MS Access
- 23. MS Access программно редактирует значение ячейки таблицы данных
- 24. Импорт MS Access в CSV на Mac программно
- 25. Обновление связанных таблиц в MS Access Database с C# программно
- 26. Экспорт результатов запроса MS Access к CSV программно
- 27. Ошибка ввода строки в MS Access DB программно (C#)
- 28. ms access pivot column names
- 29. Необычное поведение в MS Access
- 30. Слишком много полей - Ms Access