|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Возникла следующая проблема. Вставляю в подготовленный шаблон Excel формата 97-2009 содержимое запроса, где есть поля типа MEMO. Вставляю командой CopyFromRecordset Код: plaintext
rs - рекордсет. Содержимое полей MEMO урезается до 256 символов. Вручную можно внести гораздо больше символов. Кто-нибудь с таким сталкивался? И что делать? Версия Access 2010? но думаю это не принципиально. ------------------------------------------------------------- А ты вложил уже свой кровный рубль в 50-ти миллиардное состояние Билла Гейтса? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 11:57 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 12:25 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
В офисе 2003 метод CopyFromRecordset обрезал МЕМО поля, в офисе 2010 - нет. Сейчас проверил и с XLSX, и с XLS файлом. Правда, только одну запись с текстом вашего сообщения. Результат - весь текст, 799 символов. У вас в Recordset-е действительно МЕМО поле или какая-то сборка из нескольких строк? Или у вас Акс 2010, а Excel 2003? Вы в коде Excel.Application какой версии получаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 14:03 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
У меня рекордсет на основе 1 таблицы. Там два МЕМО поля. На запрос Код: plaintext 1.
И как тут узнать версию? Как я уже писал. Раблотаю я в Access 2010, а файл шаблона от Excel 97-2003. ROI , спасибо, Вы мне скинули ссылки на более чем 500 постов. Могли бы просто написать, "Поищите по сайту" Это сарказм, ежели что. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 16:53 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Joss Код: vbnet 1.
Вы используете референс на библиотеку? Это точно свежая библиотека? Joss На запрос Код: plaintext 1.
И как тут узнать версию? Debug.Print XL.Version иначе Debug.Print XL.Application.Version В запросе точно нет группировок или DISTINCT? Я проверял таким кодом: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Попробуйте и вы. Файл может быть закрыт или открыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.02.2020, 17:22 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Я применяю позднее связывание Код: vbnet 1. 2. 3.
Так что версия та же, что и у Access А какой (даже не соображу как назвать) Вы используете? DAO 3.6 или ACEDAO 14.0 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 10:09 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Joss, читал моё сообщение на другом форуме? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2020, 10:28 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Joss А какой (даже не соображу как назвать) Вы используете? DAO 3.6 или ACEDAO 14.0 ? Joss Код: vbnet 1. 2. 3.
Так что версия та же, что и у Access Насчет вашего кода: XL.Workbooks.Open FileName:=strPathFileXLS здесь вы создаете объект Workbook, но не присваиваете его отдельной переменной. XL.Worksheets(1).Cells(13, 1).CopyFromRecordset rs Здесь вместо XL надо бы объект Workbook, а у вас получается неявное использование метода XL. ActiveWorkBook. Worksheets(1) Ваш вариант работает, но при доступе к Excel извне это неправильно и может привести к неуничтожению процесса Exce. Кстати, а как вы выполняете Save или SaveAs? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2020, 13:00 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Кривцов Анатолий Насчет версии, это так на 90%, но бывает всякое. Насчет вашего кода: XL.Workbooks.Open FileName:=strPathFileXLS здесь вы создаете объект Workbook, но не присваиваете его отдельной переменной. XL.Worksheets(1).Cells(13, 1).CopyFromRecordset rs Здесь вместо XL надо бы объект Workbook, а у вас получается неявное использование метода XL. ActiveWorkBook. Worksheets(1) Ваш вариант работает, но при доступе к Excel извне это неправильно и может привести к неуничтожению процесса Exce. Кстати, а как вы выполняете Save или SaveAs? Правильно! процесс у меня остаётся в памяти. Лечится только выгрузкой программы. А сохраняю файл я вот так Код: vbnet 1. 2. 3. 4.
Панург , Ваше сообщение на другом форуме читал. Кривцов Анатолий , а у меня DAO 3,6 режет по 256 символов. ACEDAO не режет, но после 256 символа выводит всякий мусор. При прямой записи в ячейку листа Excel этого не происходит. Можно записать информацию большего размера. Тестовый пример на работе Постараюсь выложить. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2020, 20:21 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Joss Панург , Ваше сообщение на другом форуме читал. Joss При прямой записи в ячейку листа Excel этого не происходит. Можно записать информацию большего размера. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2020, 21:08 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Joss, третий раз прошу - выполните мой код из второго поста и скажите результат. Покажите текст своего запроса. У меня подозрение на него. А насчет "процесс у меня остаётся в памяти" - подправьте код с использованием переменной типа WorkBook. Если наслаждение оператора от наблюдением за живой таблицей не входило в вашу задачу, то никогда не используйте метод Select и объект Selection. Ну и вместо XL.ActiveWindow.Close надо XL.Quit. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 12:39 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Анатолий. Завтра обязательно сделаю и отпишусь. Сегодня не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.02.2020, 11:47 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Кривцов Анатолий , провел эксперимент, что Вы и хотели. Вот текст примера Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Использовался ACEDAO 14.0 Текст режется до 255 символов. Для контроля рядом вывожу длину текста в запросе. Вот что получилось. В первой строке не хватает буква "а", во второй там нет названия района и нас. пункта ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 10:41 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Кривцов АнатолийУ вас в Recordset-е действительно МЕМО поле или какая-то сборка из нескольких строк? Ответ JossУ меня рекордсет на основе 1 таблицы. Там два МЕМО поля по факту - сборка из нескольких строкSELECT ..., Wrk_309_04.НаимОКПО & chr(10), Wrk_309_04.Наим & chr(10) , ... Вот в добавлении & chr(10) собака и порылась. Это уже не чистое МЕМО. Думаю, без него будет работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 11:12 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Joss, а так попробуй Код: vbnet 1. 2. 3. 4. 5.
или тоже самое с Trim ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 11:31 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Убрал знак LF - chr(10) начал выводиться весь текст. Предложение Константина не прошло. Текст режется до 255 символов. Проблема в том, что иногда в ячейке не видна последняя строчка, для этого и добавил chr(10), т.к. автоматическое расширение по высоте не всегда корректно отрабатывает. И как теперь быть? Ни одно, так другое... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 11:54 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Попробовал ещё спецсимволы с кодами 11, 12 и 13 . Наличие любого спецсимвола режет строку до 255 знаков. Пробовал так же заменить chr на chr$ Результат аналогичный. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 12:07 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Joss, а если текст собирать функцией, и в ней уже добавлять нужные символы (или просто пробелы). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 13:28 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
JossИ как теперь быть? Ни одно, так другое... Дело не в спецсимволах. В запросе вы создаете вычисляемое поле с конкатенацией строк. JET понимает это поле как тип ТЕКСТ. То, что на экране запрос может показывать полный текст - обманка. Для решения подобных проблем нужна любая таблица с MEMO полем (есть такие и в системных) и запрос UMION. Для вашего случая (если Идентиф - длинное целое): Код: plsql 1. 2. 3.
Здесь типы полей берутся из 1-й секции (не возвращающей записи). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 13:36 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Кривцов Анатолий, проверил Ваше предложение. В этом случае текст не режется, но вместо chr(10) выводится квадратик с вопросом внутри. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 15:24 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
На другом форуме предложили следующее. Перед выводом выполнить обновление таблицы Код: sql 1. 2.
А потом делать вывод Код: sql 1. 2. 3. 4.
Проверил. В этом случае выводится без обрезания информации и без вывода непечатных символов. Задача решена. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 15:38 |
|
Вставка содержимого поля MEMO в Excel. Режет до 256 символов
|
|||
---|---|---|---|
#18+
Joss, решили и ладно. Хотя это не решение, а костыль. Но я проверил у себя - перевод строки на месте. Никаких квадратиков. Если не лень, то проверьте код последнего символа (например =КОДСИМВ(ПРАВСИМВ(АдресЯчейки;1)). У меня - 10. Попробуйте еще chrw(10). У меня тот же результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 16:07 |
|
|
start [/forum/topic.php?fid=45&msg=39927904&tid=1610212]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 164ms |
0 / 0 |