Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
АндрейКур
Member

Откуда: Москва
Сообщений: 78
как его разложить на 4 поля ( на четыре IDшника)??
9 май 21, 23:34    [22319970]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
АндрейКур, в запросе можно использовать встроенные функции для работы со строками - Mid, Left, Right, Len, InStr, InStrRev. С помощью этих функций можно вычленить из строки значения в нужном порядке и преобразовать в длинное с помощью опять таки встроенной функции Clng.

Другой вариант. Написать пользовательскую функцию и в ней уже преобразовывать полученное значение и выводить по порядку требуемый результат.

Сообщение было отредактировано: 10 май 21, 05:52
10 май 21, 06:00    [22319998]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Synoptic
Member

Откуда:
Сообщений: 207
АндрейКур
как его разложить на 4 поля ( на четыре IDшника)??

Проще всего через регулярку.
Описание функции: https://docs.microsoft.com/en-us/previous-versions//yfy6y4h1(v=vs.85)?redirectedfrom=MSDN
Нужный паттерн: \d+
10 май 21, 08:50    [22320010]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
Synoptic
Проще всего через регулярку.
создавать объект RegExp для каждого поля помноженное на количество записей? И не по одному разу? Ну ни разу не проще... имхо

проще в пользовательской функции сплитом получать массив и брать нужное значение

Сообщение было отредактировано: 10 май 21, 10:00
10 май 21, 10:04    [22320024]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
АндрейКур
Member

Откуда: Москва
Сообщений: 78
встроенными функциями не годится, т.к. количество полей может варьироваться, где то одно, а где то 8, я с акцессом несколько лет не активно работал, думал, может его двинули, и научили работать с json, сериализованными полями....
10 май 21, 10:52    [22320045]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Synoptic
Member

Откуда:
Сообщений: 207
Панург
создавать объект RegExp для каждого поля помноженное на количество записей? И не по одному разу? Ну ни разу не проще... имхо
Зачем?
Одно поле (см. первый пост), одна функция, с одной регуляркой.

Сообщение было отредактировано: 10 май 21, 10:44
10 май 21, 10:53    [22320047]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Synoptic
Member

Откуда:
Сообщений: 207
АндрейКур
встроенными функциями не годится, т.к. количество полей может варьироваться, где то одно, а где то 8, я с акцессом несколько лет не активно работал, думал, может его двинули, и научили работать с json, сериализованными полями....
Пример по ссылке выше можно использовать для любого, в том числе неизвестного заранее, количества ID в поле.
10 май 21, 10:55    [22320048]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7350
Многозначные поля....
О сколько раз твердили миру.....
Не надо их применять. Подобные вопросы в ACCESS решаются очень просто-созданием еще одной таблицы и подчиненной формы
А по существу-использовать во всех записях единый разделитель+пользовательская функция с использованием SPLIT и UBOUND
10 май 21, 11:51    [22320069]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
Synoptic
Зачем?
Одно поле (см. первый пост), одна функция, с одной регуляркой.
продемонстрируй.
10 май 21, 12:39    [22320076]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
sdku
Многозначные поля...
это не многозначное поле.
10 май 21, 12:40    [22320077]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Synoptic
Member

Откуда:
Сообщений: 207
Панург
продемонстрируй.
В смысле?
По ссылке даже код написан, куда ещё наглядней?
10 май 21, 14:26    [22320099]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
Synoptic, так я тебе выше тоже написал
Панург
создавать объект RegExp для каждого поля помноженное на количество записей? И не по одному разу? Ну ни разу не проще... имхо
т.е вызов функции происходит для каждой строки и каждого поля где есть на неё ссылка, при каждом вызове организуется объект RegExp, ну и тд.

Сообщение было отредактировано: 10 май 21, 14:41
10 май 21, 14:49    [22320107]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
уточню
Панург
Synoptic, так я тебе выше тоже написал
Панург
создавать объект RegExp для каждого поля помноженное на количество записей? И не по одному разу? Ну ни разу не проще... имхо
т.е вызов функции происходит для каждой строки и каждого поля где есть на неё ссылка, при каждом вызове организуется экземпляр объекта RegExp, ну и тд.
10 май 21, 14:53    [22320108]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7350
Панург
это не многозначное поле.
а разве 4 значения через разделитель это не многозначное поле
или я чего-то не понимаю
в заголовке топика спрашивается как работать с таким ПОЛЕМ

Сообщение было отредактировано: 10 май 21, 15:23
10 май 21, 15:26    [22320113]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Synoptic
Member

Откуда:
Сообщений: 207
Панург, понял о чем ты.
Тут зависит от того, как используют это поле.
Если из поле получаем значение и потом его как-то используем, то проще регулярка.
Если же это нужно вставить в какой-нибудь отчёт, то да, это может быть проблемой.
10 май 21, 15:36    [22320118]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
Synoptic, полей может быть 8 (ТС указал), таким образом будет создано 8 экземпляров на запись. Гораздо проще строку в той же пользовательской функции разбить сплитом и взять нужное значение из массива по индексу. Не нужны тут регулярки.
10 май 21, 15:52    [22320121]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
sdku
а разве 4 значения через разделитель это не многозначное поле
не всё то золото, что блестит...
10 май 21, 15:53    [22320122]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7350
Панург
Synoptic,....пользовательской функции разбить сплитом и взять нужное значение из массива по индексу. Не нужны тут регулярки.
Так и предлогалось:
sdku
...+пользовательская функция с использованием SPLIT и UBOUND (если число значений переменное,если же постоянно только SPLITа достаточно)
Панург
sdku
а разве 4 значения через разделитель это не многозначное поле
не всё то золото, что блестит...
А вот это не понял (от слова совсем) поле либо многозначно,либо нет-а какой вариант Вы имеете ввиду?
10 май 21, 17:00    [22320127]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
sdku
Так и предлогалось:

Панург
проще в пользовательской функции сплитом получать массив и брать нужное значение
10 май 21, 17:10    [22320131]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
sdku
А вот это не понял (от слова совсем) поле либо многозначно,либо нет-а какой вариант Вы имеете ввиду?
А что не понятно? Если в поле видится что-то через запятую, это не значит что это поле обязательно многозначное
10 май 21, 17:12    [22320132]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
DarkMan
Member

Откуда:
Сообщений: 923
Панург
sdku
А вот это не понял (от слова совсем) поле либо многозначно,либо нет-а какой вариант Вы имеете ввиду?
А что не понятно? Если в поле видится что-то через запятую, это не значит что это поле обязательно многозначное
Ну да ,если не учитывать текст в поле , который очень напоминает id из другой таблицы . Интерессно послушать версию ТС .
10 май 21, 17:38    [22320136]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 7350
DarkMan
..... Интерессно послушать версию ТС .
Хотелось бы послушать начальника транспортного цеха

Сообщение было отредактировано: 10 май 21, 17:52
10 май 21, 17:58    [22320143]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27574
Если правильно помню, то в интерфейсе многозначных полей разделителем служит точка с запятой. А не запятая. Так что скорее всего показано обычное текстовое поле.

Сообщение было отредактировано: 10 май 21, 20:04
10 май 21, 18:26    [22320153]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5230
sdku
Хотелось бы послушать начальника транспортного цеха

АндрейКур
думал, может его двинули, и научили работать с json, сериализованными полями....
10 май 21, 18:55    [22320157]     Ответить | Цитировать Сообщить модератору
 Re: [68722, 68729, 68733, 68727] как работать с таким полем?  [new]
DarkMan
Member

Откуда:
Сообщений: 923
mds_world
Если правильно помню, то в интерфейсе многозначных полей разделителем служит точка с запятой. А не запятая. Так что скорее всего показано обычное текстовое поле.

Вроде как через запятую ,многозначные поля Правда здесь как всегда поля подстановки. Неизвестно как ИД хранится .
12 май 21, 21:06    [22321207]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить