powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Объединение строк в столбцы
7 сообщений из 7, страница 1 из 1
Объединение строк в столбцы
    #36453668
Tatiana_V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые форумчане
Помогите пожалуйста, если можите.
Нужна програмка , чтобы таблицу 1, имеющую 2 столбца:
1-1313214,1245525,2453566
2-4378535,4589485

Преобразовать в таблицу 2:
1-1313214
1-1245525
1-2453566
2-4378535
2-4589485

Разделителем служит запятая.
...
Рейтинг: 0 / 0
Объединение строк в столбцы
    #36453760
Tatiana_V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tatiana_VУважаемые форумчане
Помогите пожалуйста, если можите.
Нужна програмка , чтобы таблицу 1, имеющую 2 столбца:
1-1313214,1245525,2453566
2-4378535,4589485

Преобразовать в таблицу 2:
1-1313214
1-1245525
1-2453566
2-4378535
2-4589485

Разделителем служит запятая.
См. файл.
Нужно из таблицы результат получить таблицу данные.
помогите кто сможет.
...
Рейтинг: 0 / 0
Объединение строк в столбцы
    #36453808
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В файле, насколько я понимаю, разделителем служит не запятая, а запятая с пробелом.

А на каком языке требуется писать? И в чем вообще сложность? Открываете исходную таблицу, делаете цикл по всем записям, разбиваете командой Split строку с запятыми, делаете внутренний цикл по полученному массиву, записывая результат в целевую таблицу.
...
Рейтинг: 0 / 0
Объединение строк в столбцы
    #36453838
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Proразбиваете командой Split строку с запятыми, делаете внутренний цикл по полученному массивуShocker.Pro Вам объяснил, а я нарисую. И решение эксперта, в разделе www.sql.ru/MS Access стоит внимательно изучить. А пока так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Dim i As Integer, n, nomer
Do Until d.EOF()
    n = Split("" & d![Номер КП], ",")
    
    If UBound(n) >  0  Then
        nomer = d![Номер]
        r.AddNew
        r![Номер] = nomer
        r![Номер КП] = n( 0 )
        r.Update
        
        For i =  1  To UBound(n)
            r.AddNew
            r![Номер] = nomer
            r![Номер КП] = n(i)
            r.Update
        Next
    
    End If
    
    d.MoveNext
Loop
d.Close
r.Close
MsgBox "ГОТОВО"
С уважением
...
Рейтинг: 0 / 0
Объединение строк в столбцы
    #36453879
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klen_,

Спасибо, а то я уж совсем забыл синтаксис Аксесса, все больше по VB.
Но два вопроса:
1) Где открытие таблиц?
2) Зачем нужен фрагмент кода:
Код: plaintext
1.
2.
3.
        r.AddNew
        r![Номер] = nomer
        r![Номер КП] = n( 0 )
        r.Update
...
Рейтинг: 0 / 0
Объединение строк в столбцы
    #36453881
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klen_,

А "решение эксперта" безусловно красивее, хотя при ОЧЕНЬ длинных строках может оказаться менее оптимальным.
...
Рейтинг: 0 / 0
Объединение строк в столбцы
    #36454432
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro1) Где открытие таблиц?
2) Зачем нужен фрагмент кода:
Исправляюсь. Благодарю.
Код: plaintext
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.
Private Sub Кнопка0_Click()
On Error GoTo err1

    Dim d As Recordset
    Dim r As Recordset
    
    Set d = CurrentDb.OpenRecordset("SELECT Номер, [Номер КП] FROM Данные ORDER BY Номер, [Номер КП]")
    Set r = CurrentDb.OpenRecordset("Результат")
    
    DoCmd.RunSQL "DELETE Результат.* FROM Результат"
    
    Dim i As Integer, n, nomer
    Do Until d.EOF()
        n = Split("" & d![Номер КП], ",")
        
        If UBound(n) >  0  Then
            nomer = d![Номер]
            
            For i =  0  To UBound(n)
                r.AddNew
                r![Номер] = nomer
                r![Номер КП] = n(i)
                r.Update
            Next
        
        End If
        
        d.MoveNext
    Loop
    d.Close:    Set d = Nothing
    r.Close:    Set r = Nothing
    MsgBox "Готово"
    Exit Sub
err1:
    MsgBox Err.Description
End Sub
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Объединение строк в столбцы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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