Доступ к тексту слияния из разных строк - PullRequest
0 голосов
/ 19 марта 2019

У меня есть БД Access со следующей схемой:

+---------+---------+-----------+------------+-------------------------------------------+
| BrandNr |  TextNr |  LangCode |  OngoingNr |                    Text                   |
+---------+---------+-----------+------------+-------------------------------------------+
|       1 | AB      |         1 |          1 | Text beginns here but it doesn't end here |
|       1 | AB      |         1 |          2 | Text isn't finished so need second row    |
|       1 | AC      |         2 |          1 | New text                                  |
|       2 | hg2     |         1 |          1 | New brand new text                        |
+---------+---------+-----------+------------+-------------------------------------------+

Теперь мне нужно объединить текст, где BrandNR, TextNr и LangCode одинаковы. Текст должен быть заказан по OngoingNr.

Некоторые идеи?

1 Ответ

0 голосов
/ 23 марта 2019

Полагаю, для этого потребуется VBA.

Один из возможных методов - вызвать функцию VBA, которая определяет статическую переменную строкового типа, которая инициализируется пустой строкой для каждой новой комбинации BrandNR, TextNr и LangCode, иначе объединяется сама с собой.

  • Откройте VBA IDE, используя Alt + F11
  • Вставить новый общедоступный модуль Alt + I , M
  • Скопируйте следующий базовый код в новый модуль:

    Function Concat(strInp As String, lngOrd As Long) As String
        Static strTmp As String
        If lngOrd = 1 Then strTmp = strInp Else strTmp = strTmp & " " & strInp
        Concat = strTmp
    End Function
    
  • В MS Access создайте новый запрос со следующим SQL, заменив MyTable на имя вашей таблицы:

    select q.BrandNr, q.TextNr, q.LangCode, Concat(q.Text,q.OngoingNr) as Merged
    from
    (
        select t.* from MyTable t 
        order by t.BrandNr, t.TextNr, t.LangCode, t.OngoingNr
    ) q
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...