Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как разделить строку на несколько?
 
 автор: OlegEk   (16.05.2010 в 10:00)   личное сообщение
 
 

Есть описание товара в одном поле в одной строке:
1. Описание: Лазерный принтер
2. Формат: A4
3. Разрешение: 1200х1200dpi
.......
Хочется его поправить, а точнее добавить некоторое количество промежуточных пунктов. Можно конечно вручную поле редактировать, но хотелось бы это оптимизировать. Вижу это как разбивку поля на несколько строк и запись во временную таблицу. И дальнейщую обработку. И последующее обратное обьединение.
Только не могу понять как это одно поле разбить на несколько строк. Точнее вижу конечно способ с вычислением вхождения chr(13), запись значения во временную таблицу, нахождением следующего вхождения, снова запись, и т.д.
Подскажите, может есть какое-нибудь более прозрачное решение?

  Ответить  
 
 автор: akkorn   (16.05.2010 в 11:22)   личное сообщение
 
 

По приведенному примеру все просто- разделение перед A4(Ax) и дальше после первого пробела.. Для точного ответа нужен массив данных, как он есть, и побольше разношерстных примеров...

Про другое, более прозрачное решение: Если кол-во будующих полей заранее не известно (именно такое создается впечатление)- то отредактировать существующую строку, вставив какой-нибудь разделитель (например перевод строки), а поле сделать типа Мемо или иже с ним. Но при таком подходе данные ЭТОЙ ЯЧЕЙКИ таблицы будут выводиться в ЕДИНСТВЕННОМ поле, растянутом по вертикали, и, возможно, с бегунком.... Внешне же это будет как у Вас в примере, только, вероятно, без пунктов 1,2,3.. Мне этот подход видится как наиболее простой выход. Все зависит от предпочтений "конечного генератора мыслей и идей" . Дело за "генератором функций" я думаю не встанет, тут довольно много профессионалов

Как то так...

  Ответить  
 
 автор: OlegEk   (16.05.2010 в 12:38)   личное сообщение
 
 

Задача как раз уйти от одного растянутого поля к раздельным строкам. Это даст возможность добавлять строки параметров и выбирать значение из списка

  Ответить  
 
 автор: Lukas   (16.05.2010 в 12:27)   личное сообщение
 
 

Split

  Ответить  
 
 автор: akkorn   (16.05.2010 в 12:35)   личное сообщение
 
 

to Lukas
Split это здорово. Но результат этой команды будет в массиве.. А нужна текст. строка. В цикле можн вытащить, но это шибко сложно получается. Нет? Плюс разделитель не пробел (т.к. пробел встречается и в описании товара)...

  Ответить  
 
 автор: Lukas   (16.05.2010 в 12:41)   личное сообщение
 
 

1. Разделитель могет быть vbCrLf, например. Нужны исходные данные для предметного разговора.
2. Split -> обработка -> сборка в строку через vbCrLf, например.

  Ответить  
 
 автор: OlegEk   (16.05.2010 в 12:54)   личное сообщение
9 Кб.
 
 

Вот, исходные данные в tbl_in, нужный результат в tbl_out

  Ответить  
 
 автор: OlegEk   (16.05.2010 в 12:43)   личное сообщение
 
 

как раз судя по всему мне и нужен массив.
Разделитель строк в исходном поле chr(13), chr(10), разделитель полей chr(9).
На выходе я хочу получить из поля:
Производитель Epson
Модель AcuLaser C9100
Тип печати Лазерный электрографический.

именно табличку вида
zn1 zn
Производитель Epson
Модель AcuLaser C9100
Тип печати Лазерный электрографический.

Сейчас сделал тупо, через экспорт импорт текстового файла, но этож криво

  Ответить  
 
 автор: Lukas   (16.05.2010 в 14:04)   личное сообщение
18 Кб.
 
 

Ну вот так как-то можно попробовать =>
В модуле1 функция Add
Результат в табличках и в запросе qdfEAV.

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList