Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разбить одну строку на несколько / 21 сообщений из 21, страница 1 из 1
25.07.2014, 15:19:51
    #38706072
Maxess
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
Здравствуйте,

Не могли бы вы подсказать со следующей задачей:

есть таблица с двумя полями:

ID и Info

В них содержатся такие данные:

1 aaaaa | bbbbb | cccc | ddd
2 rrrrr | ffff | vvvvvvvv | ppppppp

и т.д.

Нужно вывести это в таком формате:

1 aaaaa
1 bbbbb
1 cccc
1 ddd
2 rrrr
2 ffff
2 vvvvvvvv
2 ppppppp

Поискал по форуму, но не нашел ничего похожего.

Спасибо.
...
Рейтинг: 0 / 0
25.07.2014, 15:25:49
    #38706081
ПЕНСИОНЕРКА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
Maxess,

модулем,10 строчек на основе
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
dim xmas,j1,j1k
xmas=split(stroka,"|")
j1=lbound(xmas,1)
j1k=ubound(xmas,1)
do while j1<=j1k
''''''обработка
j1=j1+1
loop
...
Рейтинг: 0 / 0
25.07.2014, 15:30:49
    #38706092
Maxess
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
ПЕНСИОНЕРКА,

А можно чуть поподробнее, а то составить модуль пока для меня будет непосильная задача.
...
Рейтинг: 0 / 0
25.07.2014, 16:17:07
    #38706164
Разбить одну строку на несколько
MaxessНужно вывести это в таком формате:

1 aaaaa
1 bbbbb
1 cccc
1 ddd
2 rrrr
2 ffff
2 vvvvvvvv
2 ppppppp Вывести где? Это важно.
...
Рейтинг: 0 / 0
25.07.2014, 16:27:52
    #38706178
Maxess
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
Анатолий ( Киев ),

Вывести или в этой же таблице или в новой, в принципе не важно, важен результат.
...
Рейтинг: 0 / 0
25.07.2014, 16:36:00
    #38706184
Прогер_самоучка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
MaxessАнатолий ( Киев ),

Вывести или в этой же таблице или в новой, в принципе не важно, важен результат.
...
Рейтинг: 0 / 0
25.07.2014, 16:54:06
    #38706213
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
Maxess,
"О сколько раз твердили миру..." про многозначные поля
сами создаем трудности и преодолеваем их (не всегда успешно)
16348485
...
Рейтинг: 0 / 0
25.07.2014, 17:19:02
    #38706247
полином
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
Прогер_самоучкаMaxessАнатолий ( Киев ),

Вывести или в этой же таблице или в новой, в принципе не важно, важен результат.

debug.print :)
...
Рейтинг: 0 / 0
25.07.2014, 18:47:19
    #38706310
nord-woolf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
sdku..."О сколько раз твердили миру..." про многозначные поля...
"многозначные поля" это фейк.
Значение поля всегда одно.
Вотъ.
:)
...
Рейтинг: 0 / 0
25.07.2014, 18:53:32
    #38706316
полифем
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
nord-woolf"многозначные поля" это фейк.
нетъ!
...
Рейтинг: 0 / 0
25.07.2014, 19:06:07
    #38706323
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
...
Рейтинг: 0 / 0
25.07.2014, 19:07:17
    #38706326
nord-woolf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
полифем,

Я попрошу не надругиваться над моим головным мозгом в особо извращенной форме.
...
Рейтинг: 0 / 0
25.07.2014, 19:09:29
    #38706328
полинорм
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
sdkunord-woolf,
в accdb есть многое, чего не было в mdb

это никак не опровергает высказанный N-W тезис
...
Рейтинг: 0 / 0
25.07.2014, 19:10:05
    #38706329
nord-woolf
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
sdku,

Я знаю. Я НЕ говорю, что их нет. Я говорю, что они - фейк.
...
Рейтинг: 0 / 0
25.07.2014, 19:15:47
    #38706335
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
nord-woolf,
вот и ладушки, разобрались: я говорю то-же самое
...
Рейтинг: 0 / 0
26.07.2014, 09:18:27
    #38706472
Maxess
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
Да нет там никаких многозначных полей, есть простая таблица с данными, которые я привел выше и описал, что нужно получить из неё. Приложил образец данных, буду благодарен, кто посмотрит и поможет. Нужно разбить поле AnalogParts.
...
Рейтинг: 0 / 0
26.07.2014, 13:01:15
    #38706516
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
MaxessАнатолий ( Киев ),
Вывести или в этой же таблице или в новой, в принципе не важно, важен результат.
...
Рейтинг: 0 / 0
26.07.2014, 14:18:10
    #38706543
Maxess
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
sdku,

Да, конечно в новую. Это возможно?
...
Рейтинг: 0 / 0
26.07.2014, 15:22:54
    #38706567
Разбить одну строку на несколько
Решение в лоб. Можно оптимальнее, но не охота возиться
Запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
SELECT *
FROM (SELECT id, Splt(analogparts,a) AS Data
FROM tbl_sample, 
(SELECT 1 as a from msysobjects  
UNION SELECT 2 from msysobjects 
UNION SELECT 3 from msysobjects 
UNION SELECT 4 from msysobjects
UNION SELECT 5 from msysobjects
UNION SELECT 6 from msysobjects
UNION SELECT 7 from msysobjects
UNION SELECT 8 from msysobjects
UNION SELECT 9 from msysobjects
UNION SELECT 10 from msysobjects
UNION SELECT 11 from msysobjects
UNION SELECT 12 from msysobjects
UNION SELECT 13 from msysobjects
UNION SELECT 14 from msysobjects
UNION SELECT 15 from msysobjects
UNION SELECT 16 from msysobjects
UNION SELECT 17 from msysobjects
UNION SELECT 18 from msysobjects
UNION SELECT 19 from msysobjects
UNION SELECT 20 from msysobjects
UNION SELECT 21 from msysobjects 
UNION SELECT 22 from msysobjects 
UNION SELECT 23 from msysobjects
UNION SELECT 24 from msysobjects
UNION SELECT 25 from msysobjects
UNION SELECT 26 from msysobjects
UNION SELECT 27 from msysobjects
UNION SELECT 29 from msysobjects
UNION SELECT 30 from msysobjects
UNION SELECT 31 from msysobjects
UNION SELECT 32 from msysobjects
UNION SELECT 33 from msysobjects
UNION SELECT 34 from msysobjects
UNION SELECT 35 from msysobjects
UNION SELECT 36 from msysobjects
UNION SELECT 37 from msysobjects
UNION SELECT 38 from msysobjects
UNION SELECT 39 from msysobjects
UNION SELECT 40 from msysobjects)
) tt
WHERE tt.data is not null
ORDER BY 1,2


Функция Splt() в общем модуле
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Public Function Splt(s$, i)
    On Error Resume Next
    Static curr_str$
    Static a
    If s <> curr_str Then
        a = Split(s, "|")
        curr_str = s
    End If
    Splt = a(i - 1)
End Function

...
Рейтинг: 0 / 0
26.07.2014, 17:22:46
    #38706597
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
Maxess,
создаете таблицу "tmp" с полями id_t-счетчик,id_s-числовой,mytext-текст(100) и выполняете процедуру:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub my()
Dim rs As DAO.Recordset, rs1 As DAO.Recordset, a, i
Set rs = CurrentDb.OpenRecordset("select id,AnalogParts from tbl_Sample")
Set rs1 = CurrentDb.OpenRecordset("tmp")
Do Until rs.EOF
a = Split(rs!AnalogParts, "|")
For i = 0 To UBound(a)
rs1.AddNew
rs1!id_s = rs!id
rs1!mytext = LTrim(a(i))
rs1.Update
'Debug.Print rs!id, LTrim(a(i))
Next
rs.MoveNext
Loop
Set rs = Nothing
End Sub

в дальнейшем используете таблицу "tmp" как написано в 16360730 Установите ссылку на библиотеку DAO
...
Рейтинг: 0 / 0
28.07.2014, 11:37:51
    #38707103
Maxess
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разбить одну строку на несколько
"Можно вывести запросом" и "sdky" спасибо большое, оба ваши варианта работают.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разбить одну строку на несколько / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]