Эта проблема
Я работаю над базой данных в MS Access 2010, содержащей в основном текст.
Каждая из моих около 4000 записей имеет поле для заметок, содержащее фрагмент текста размером около 2000-4000 символов. В течение длительного периода времени я выделял различные части этих текстов, применяя к ним в поле формы такие вещи, как "жирный шрифт", "выделение желтым" или "подчеркивание" и т.д. Это работало нормально.
Теперь проблема: внезапно в старых записях форматирование больше не отображается так, как задумано. Вместо этого я вижу соответствующие HTML-теги, такие как <b>, <u>, <BACKGROUND COLOR =...>, <div></div>
и так далее.
Итак, разметка не потеряна. Это даже выглядит здоровым (все закрывающие теги есть). Но Access больше не отображает его правильно (жирный, желтый, маркированный список и т.д.)
С другой стороны, те записи, с которыми я работал недавно, все еще хорошо отформатированы в RTF, как и должны.
Вопрос
Мне нужен совет, что я мог бы сделать, чтобы Access правильно распознал HTML и использовал его для отображения графических функций. Некоторая форма строковых операций? Некоторая форма реимпорта?
Документация
Вот пример одной такой записи, которая не отображается правильно:
Важная деталь: то, что они называют "RTF", на самом деле является HTML
Обратите внимание, что я делал все исключительно в MS Access 2010. Вся разметка установлена мной лично (нет импортированной разметки), и вся эта разметка на самом деле HTML. Тем не менее, установка поля таблицы и свойств поля формы для использования HTML означает установку для них того, что они по-прежнему называют "RTF". Очевидно, они не удосужились переименовать его. Из всего, что я знаю, никакой "настоящий" RTF не задействован, это все HTML.
Недавние изменения
Я понятия не имею, что вызвало это. В последнее время я проделал много операций, особенно импортировал еще 1000 записей из внешнего источника, и некоторую дополнительную работу по программированию базы данных на VBA. Я не думаю, что импорт или программирование на VBA вызвало у него проблемы.
Возможный виновник
Однако, одна вещь, которая вполне может быть связана с этим: во время моих различных недавних действий в базе данных я узнал, что в таблице, содержащей все записи (t01_main), одно поле, которое должно было иметь форматированный текст (fiedl с именем [SummaryRTF]), не было установить в "RTF" (см. примечание выше; означает HTML), но в "обычный текст".
Как ни странно, до сих пор это не было проблемой. Поле формы, которое отображает текст и где я делаю форматирование было установлено в "RTF" (то есть HTML) в любом случае. У меня не было проблем с форматированием в то время.
Затем я настроил свойство поля таблицы на "RTF" (читай: HTML).
Я решительно полагаю, что именно это сейчас вызывает проблемы. Я полагаю, что на этом этапе в текст были внесены определенные изменения.
Итак, снова вопрос
Вопрос в том, что теперь я могу сделать, чтобы восстановить хорошее форматирование на основе HTML, который, очевидно, все еще хранится в поле.
Возможно, полезно знать
- У меня есть резервные копии фаз моей работы, и я могу, если это поможет, импортировать оттуда более старые "здоровые" данные - (из поля таблицы со свойством: plain) в то же поле в последней версии моей таблицы (с теперь "плохие" данные, где то же поле "rtf")
- Я могу работать с VBA для выполнения строковых операций или чего-либо еще, или делать запросы SQL через VBA
- Но, конечно, чем быстрее решение, тем лучше
Addenda
1) Я сейчас проверил в резервной версии базы данных (с полем в таблице, установленным как "обычный текст"). Здесь в табличном представлении текст также имеет HTML-теги; однако в поле формы (установленном как "RTF") он отображается в хорошем формате (жирный, желтый и т. д.)
2) Я проверил - в резервной версии - что происходит, когда вы меняете настройку поля таблицы с «Текстовый формат: обычный текст» на «Текстовый формат: RTF». Access 2010 затем отображает предупреждение следующим образом: