powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / конкатенация строк
5 сообщений из 5, страница 1 из 1
конкатенация строк
    #39626849
Hermiona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! С пятницей!
Поставила меня в тупик ошибка, посмотрите, пожалуйста!

Access2003. Таблица "Договоры". На форме в шапке есть свободное поле, которое при двойном нажатии склеивает данные из каждой записи по договорам. Например:
"ООО Айболит,22/к,14.01.2017,в полном объёме;Стройканава ОАО,345/л,01.01.2018, частично...."
И таких записей для склеивания, например, 8 штук.

склеивает записи запрос и модуль

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Public Function unic12(fild, tabl, nam)
Dim db As DAO.Database
Dim rst1 As DAO.Recordset
Set db = CurrentDb
Set rst1 = db.OpenRecordset("select [" & fild & "] from [" & tabl & "] where Cstr(код_плана)='" & nam & "' ;")
If rst1.RecordCount <> 0 Then
    rst1.MoveFirst
    Do While Not rst1.EOF
        r = r & "=" & rst1.Fields(fild)
        rst1.MoveNext
    Loop
    unic12 = Trim(r)
Else
    unic12 = ""
End If
rst1.Close
Set rst1 = Nothing
End Function



Промежуточная табличка, куда пишется результат, содержит поле memo, но данные "обкусываются" функцией unic12 ещё на подходе! То есть, в результате запроса

в запросе:
все_дог: Last(unic12("рекв";"ПолеД1";CStr([код_плана])))

как только длина выводимого в запросе поля достигает 255 знаков, он отбрасывает остаток!
Как быть?
HELP!
...
Рейтинг: 0 / 0
конкатенация строк
    #39626883
Это стандартное поведение JET. Если в вычисляемом поле запроса используется конкатенация строк )даже двух МЕМО полей) или функция, возвращающая строку (есть и другие причины), то он считает это поле текстовым со всеми вытекающими.
Варианты решения есть, но сначала объясните, для чего нужна промежуточная таблица и как вы присваиваете значение полю в шапке?

ИМХО, если в форме доступно значение поля "код_плана", то проще сделать поле в шапке вычисляемым на основе вашей функции.
...
Рейтинг: 0 / 0
конкатенация строк
    #39626944
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никогда не применяю эти запросы с подобными функциями. На чуть более-менее значимом количестве данных запросы начинают умирать. Использую запросы Insert/Update (в известной статье названы "по Митину")
...
Рейтинг: 0 / 0
конкатенация строк
    #39627366
Hermiona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий,
Есть главная форма (план-код-это ключ), на ней информация по объекту: наименование района, источник т/с, код статьи затрат, наименование работ.
При нажатии на поле код_договора пользователь проваливается в подчиненную форму, в которой возможно заполнение инф-ии по договорам (здесь автоматически проставляется план-код (для связки): № договора, дата договора, Наименование Подрядчика, стадии выполнения работ, тип договора и ещё куча данных. Но вот эти перечисленные поля интересуют пользователя в виде подсказки на главной форме.
У меня на подчиненной форме в шапке есть свободное поле. Если на него встать и щёлкнуть 2 раза мышкой, то выполняются запросы, и "склеивается" нужная инф-ия по всем договорам в форме (пока максимум, что было, 7 договоров по выбранному объекту). Свободное поле заполняется, но не всё убирается, как ни пыталась я сократить.
...
Рейтинг: 0 / 0
конкатенация строк
    #39627367
Hermiona
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург, спасибо, поищу!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / конкатенация строк
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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