Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Поле со списком с разрешением нескольких значений. Как его использовать в текстовой строке  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
Приветствую всех! Может кто сталкивался с проблемой преобразования данных из поля со списком (с разрешением нескольких значений) в составной текстовой строке? Есть поле со списком "Причины_отказа" (можно выбрать несколько), поле "Результат", надо в поле "Сообщение" составить текст [Результат] & " по причинам: " & [Причины_отказа]. Причины_отказа не вставляются.

К сообщению приложен файл. Размер - 81Kb
12 янв 19, 18:07    [21783682]     Ответить | Цитировать Сообщить модератору
 Re: Поле со списком с разрешением нескольких значений. Как его использовать в текстовой строке  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288


К сообщению приложен файл. Размер - 30Kb
12 янв 19, 18:08    [21783683]     Ответить | Цитировать Сообщить модератору
 Re: Поле со списком с разрешением нескольких значений. Как его использовать в текстовой строке  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5902
wladimirrr,
не рекомендую,думаю многие участники форума тоже,использовать многозначные поля (с ними в дальнейшем обычно много геморра - гораздо удобней тривиальная подчиненная форма)
12 янв 19, 18:41    [21783698]     Ответить | Цитировать Сообщить модератору
 Re: Поле со списком с разрешением нескольких значений. Как его использовать в текстовой строке  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
sdku
wladimirrr,
не рекомендую,думаю многие участники форума тоже,использовать многозначные поля (с ними в дальнейшем обычно много геморра - гораздо удобней тривиальная подчиненная форма)

sdku, А если использовать подчиненную форму, как сложить несколько строк этой формы в одну текстовую строку?
12 янв 19, 18:50    [21783708]     Ответить | Цитировать Сообщить модератору
 Re: Поле со списком с разрешением нескольких значений. Как его использовать в текстовой строке  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5902
wladimirrr,
Про слияние полей из разных строк запроса
Или рекордсетом (запросом попроще будет-хотя и так не сложно)
Dim rs As Recordset, rs1 As Recordset, str
Set rs = CurrentDb.OpenRecordset("select [name] from table1 group by [name]")
Do Until rs.EOF
    Set rs1 = CurrentDb.OpenRecordset("select zn from table1 where [name]='" & rs![Name] & "'")
    str = ""
          Do Until rs1.EOF
            str = str & ", " & rs1!zn
            rs1.MoveNext
          Loop
    Debug.Print rs![Name], Mid(str, 3)
rs.MoveNext
Loop
13 янв 19, 01:42    [21783889]     Ответить | Цитировать Сообщить модератору
 Re: Поле со списком с разрешением нескольких значений. Как его использовать в текстовой строке  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5902
вернее по-любому запрос:

К сообщению приложен файл (tmp.rar - 15Kb) cкачать
13 янв 19, 08:15    [21783922]     Ответить | Цитировать Сообщить модератору
 Re: Поле со списком с разрешением нескольких значений. Как его использовать в текстовой строке  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
sdku, сделал как у Вас таблицу и запрос, что-то не срабатывает. Посмотрите своим опытным взглядом, что не так?

К сообщению приложен файл (tmp2.rar - 39Kb) cкачать
13 янв 19, 11:59    [21783956]     Ответить | Цитировать Сообщить модератору
 Re: Поле со списком с разрешением нескольких значений. Как его использовать в текстовой строке  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5902
wladimirrr,
запрос
SELECT Reasons.Deal_ID, my([deal_id]) AS Выражение1
FROM Reasons
GROUP BY Reasons.Deal_ID;
функция
Function my(mName) 'аргумент mName= полю запроса Deal_ID
Dim rs As Recordset
Set rs = CurrentDb.OpenRecordset("select Reasons from Reasons where Deal_ID=" & mName & " order by Reasons") 'поле Deal_ID числовое
'поэтому другой синтаксис (без апострофов),сортировка нужна или нет решите сами (она необязательна)
    Do Until rs.EOF
        my = my & ", " & rs!Reasons
        rs.MoveNext
    Loop
my = Mid(my, 3)
End Function
13 янв 19, 13:00    [21783971]     Ответить | Цитировать Сообщить модератору
 Re: Поле со списком с разрешением нескольких значений. Как его использовать в текстовой строке  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 5902
Короче:в открытии рекордсета уберите апострофы обрамляющие аргумент и все заработает....
13 янв 19, 13:44    [21783985]     Ответить | Цитировать Сообщить модератору
 Re: Поле со списком с разрешением нескольких значений. Как его использовать в текстовой строке  [new]
wladimirrr
Member

Откуда: Калужская обл.
Сообщений: 288
sdku, отлично! большое спасибо!
13 янв 19, 13:57    [21783988]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить