Мы импортируем XML-файлы в базу данных Access. Эти данные включают в себя столбец описания, который может содержать специальные символы, такие как ä и т. Д. Мы используем эту базу данных для экспорта таблицы в нашу финансовую программу. Эта программа не может обрабатывать эти специальные символы. Поэтому я хотел бы сделать функцию VBA, которая может заменить любой специальный символ в конкретной таблице / столбце.
Я довольно новичок в использовании VBA, поэтому я много использовал Google, чтобы попытаться найти некоторую предысторию по этой теме. Я нашел этот код для Excel и думаю, что его можно использовать и в Access. Однако я не могу установить соединение с функцией обновления таблицы.
Function RemovePunctuation(Txt As String) As String
With CreateObject("VBScript.RegExp")
.Pattern = "[^A-Z0-9 ]"
.IgnoreCase = True
.Global = True
RemovePunctuation = .Replace(Txt, "")
End With
End Function
Функция выше (RemovePunctuation) работает с Query in Access и возвращает список со значениями исходной таблицы без пунктуации. Я использовал следующий запрос:
SELECT RemovePunctuation([ColumnName]) AS [Add]
FROM TableName;
Однако это возвращает новую таблицу вместо замены значений в исходной таблице. Можно ли поделиться информацией в другом запросе, который использует функцию для обновления исходной таблицы?
Потому что я действительно новичок в этом, я не могу много показать. Я ожидаю, что код будет выглядеть так:
Function UpdateTable(Table As String, Column As String) As String
Update Table Set Column =
With CreateObject("VBScript.RegExp")
.Pattern = "[^A-Z0-9 ]"
.IgnoreCase = True
.Global = True
RemovePunctuation = .Replace(Txt, "")
End With
End Function
Но это ничего не возвращает.
Ожидаемый результат должен возвращать пробелы, где в выбранном столбце есть специальные символы
Как уже упоминалось, код ничего не возвращает, поскольку эта функция вообще не является допустимой. Пожалуйста, сообщите.