2015-05-05 3 views
4

Я переношу данные из одной модели данных в другую, и при этом мне нужно объединить несколько разных полей Memo в один, чтобы предотвратить потерю данных.Как объединить поля Memo в Access с помощью VBA?

Я не очень хорошо знаком с VBA, но я понимаю, что использование запроса Update ограничивает мои поля Memo 255 символами.

Может кто-то, пожалуйста, дать некоторое представление о том, как я должен заниматься этим с помощью VBA.

Пример того, что я хотел бы достичь:

комментарии к каждой записи будет результатом конкатенации 3 Memo поля: [комментарии] = [Memo1] & [Memo2] & [Memo3]

ответ

3

Загрузите таблицу как DAO.Recordset и обновите Комментарии Поле в каждой строке.

Несмотря на то, что это подход RBAR (row by agonizing row), поскольку он предназначен для миграции, мы надеемся, что это будет то, что вам нужно сделать только один раз. Главное преимущество заключается в том, что он не будет задыхаться с текстовыми суммами, превышающими 255 символов.

Dim db As DAO.Database 
Dim rs As DAO.Recordset 
Set db = CurrentDb 
Set rs = db.OpenRecordset("YourTable", dbOpenTable) 
With rs 
    Do While Not .EOF 
     .Edit 
     !Comments.Value = !Memo1.Value & !Memo2.Value & !Memo3.Value 
     .Update 
     .MoveNext 
    Loop 
    .Close 
End With 
+0

Спасибо! Я потратил больше времени, чем хотел бы признать, как это решить. Очень ценится. –

+0

Добро пожаловать. И добро пожаловать в переполнение стека. :-) – HansUp

+0

Я хотел бы добавить некоторый уточняющий текст (т. Е. Метод обнаружения: _Memo1_) и пробелы в поле Мои комментарии, но только если в моих полях 1, 2 и 3 есть текст. Каков наилучший способ справиться с этим? –

Смежные вопросы