![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.08.2012
Сообщений: 19
|
![]() ![]() Дано: tblUsers.Russian (список Русских имен) Андрей Василий Дмитрий Сергей tblUsers.English (список Английских имен, перевод значений из tblUsers.Russian) Andrey Vasiliy Dmitriy Sergey tblBase.RusSum - содержит выборку пользователем из tblUsers.Russian в виде Андрей,Дмитрий Василий,Дмитрий,Сергей ![]() т.е. tblBase.EngSum должна содержать соответствующие значения из tblUsers.English в виде Andrey,Dmitriy Vasiliy,Dmitriy,Sergey
"Можно ли простить врага? Бог простит! Наша задача организовать их встречу..." Аль Капоне
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 20.05.2012
Сообщений: 311
|
![]()
Нужно написать (или найти) достаточно несложную функцию, использующую правила побуквенной транскрипции - так наз транслитерации.
Например, с использованием конструкции SELECT CASE, в цикле по каждой букве слова. Так как некоторые буквы могут иметь несколько иностранных соответствий, можно ограничиться переводом части слова, например, с его начала (половины всех букв, две третьих...) |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 20.05.2012
Сообщений: 311
|
![]()
Примерный алгоритм (=пошагово) такой.
1. Цикл по каждой букве. For i=1 To Len(Имя)/2 Select Case Mid(Имя,i,1) Case "m": s = s & "м" Case "r": s = s & "р" ... End Select Next i 2. Проверяем получившуюся строку-"маску" на вхождение, например, функцией InStr. Находим первое же соответствие. (Писал "на коленке" - пусть меня поправят...) |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 20.05.2012
Сообщений: 311
|
![]()
Важное замечание:
тип сравнения символов - двоичный (с учетом прописных-строчных букв) |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 25.08.2012
Сообщений: 19
|
![]()
Спасибо за ответ!
Вы сейчас говорите о транслитерации, это также очень интересно, но на данном этапе уже существует переведенное поле tblUsers.English. И это поле необходимо сложить по образцу как не переведенное поле tblBase.RusSum -это поле составляет оператор в ручном режиме. Рядом стоящее поле tblBase.EngSum должно повести себя точно также (по маске, по образцу, по шаблону - не знаю как обозвать). Мне не хватает образования самостоятельно составить подобный запрос. Не смотря на то что лет 10 назад был отличником в этом направлении. Надеюсь на помощ сообщества.
"Можно ли простить врага? Бог простит! Наша задача организовать их встречу..." Аль Капоне
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 20.05.2012
Сообщений: 311
|
![]()
Taurus_UA, можете выложить пример (в формате .mdb)?
(Не могу сейчас пообещать очень быстрый ответ, обязательно посмотрю, но, кажется, что вашу задачу можно решить ещё проще; поиск: Конкатенация) ЗЫ. Моя "Маска" - в кавычках - адресовалась не вам ![]() ![]() |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 25.08.2012
Сообщений: 19
|
![]()
Вечером. Сейчас нет доступа
"Можно ли простить врага? Бог простит! Наша задача организовать их встречу..." Аль Капоне
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 19.07.2012
Сообщений: 520
|
![]()
Как-то не понятно: что именно не получается?
Вот этот запрос выводит имена латинскими буквами: SELECT tblBase.RusSum, tblUsers.English FROM tblBase, tblUsers WHERE (((tblBase.RusSum) Like "*" & [tblUsers].[Russian] & "*")) ORDER BY tblBase.RusSum; Далее - нужно эти имена в своей функции обработать, чтобы соединить записи таблицы в строку. Или проблема в этом? Тогда сообщите, в какой технологии (ADO, DAO и т.д.) нужно открівать запрос для обработки.
Окупант, руки прочь от Украины!!! Слава Героям!
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 25.08.2012
Сообщений: 19
|
![]()
Рядом стоящее поле tblBase.EngSum должно повести себя точно также как поле tblBase.RusSum - автоматически
"Можно ли простить врага? Бог простит! Наша задача организовать их встречу..." Аль Капоне
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 19.07.2012
Сообщений: 520
|
![]()
Я работаю только с mdb-базами в формате MS Access 97 - 2003... Ваш формат не распознаётся.
Окупант, руки прочь от Украины!!! Слава Героям!
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по шаблону | Seratanin | JavaScript, Ajax | 0 | 02.06.2012 15:50 |
Вопрос по шаблону | Richmon-d | JavaScript, Ajax | 0 | 11.07.2011 14:27 |
Выборка выборка с таблицы с отношением многие-ко-многим | 8alig8 | БД в Delphi | 2 | 24.06.2010 12:21 |
Печать по шаблону | Klayman | Фриланс | 6 | 22.08.2008 10:10 |
Итератор к шаблону | Crucian | Общие вопросы C/C++ | 5 | 29.10.2007 16:52 |