Петля по всем полям и изменение типа данных

Не знаю, чего мне не хватает. Я пытаюсь выполнить цикл по всем полям в таблице, и если какой-либо тип данных <> text, то измените его на text. У нас есть несколько полей, поступающих в виде числа, но нужно преобразовать в текст, прежде чем экспортировать как a .формат txt. Я не могу добавлять цитаты в поле — каждое поле должно содержать только цифры и буквы.

Я попробовал следующее и использовал db.выполните alter line для каждого поля, но я получаю запись времени выполнения 3047 слишком большую синтаксическую ошибку после 6-го поля. Я предполагаю, что было бы лучше каким-то образом зацикливаться, чтобы проверить каждое поле и только изменить на текст, если это еще не так?

Dim table As DAO.TableDef
Dim db As DAO.Database
Set db = CurrentDb

db.Execute "ALTER TABLE ImportFromExcel " _
        & "ALTER COLUMN RPT_SPLIT_ID CHAR;"

1 ответ

  1. Самый простой способ-привести поле в виде строки в инструкции SELECT. Используйте функцию CStr () для приведения любого нетекстового поля к тексту. По возможности всегда старайтесь собирать данные с помощью исправного SQL-запроса, а не циклически просматривать наборы данных. Это может не быть заметной разницей в меньших таблицах, но это делает огромную разницу с большими наборами записей. Попробовать это:

    SELECT CStr(field1), CStr(field2), CStr(field3)
    FROM ImportFromExcel