LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Какие мет...
 Тема: Какие методы есть в Access 97 для решения проблемы
 
 15.06.2007 19:52:20
Андрей9
2 сообщения


Тема: Какие методы есть в Access 97 для решения проблемы
Всем привет!
А проблема состоит вот в чем:
Есть справочник сплавов, в него добавляются новые сплавы, при услолвии, что сплав уникальный, но
TI6AL4V, TI-6AL-4V, ТI6АL4V, для нас совершенно одно и тоже, особенно первое и последнее написание,(разница T-латынь, Т-руская)как с этим боротся, НЕЗНАЮ. ПОДСКАЖИТЕ БУДУ ОЧЕНЬ ПРИЗНАТЕЛЕН.


P.S.
Автор: Андрей от 01.09.2001 6:42:46 Источник ...
 15.06.2007 19:52:20
Федор1
2 сообщения


RE: Какие методы есть в Access 97 для решения проблемы
Мне кажется, что лучше все же не допускать подобной путаницы, сделав эти поля уникальными.
Пользователь просто не сможет ввести не такое значение.
А если уж никак без этого нельзя, то пиши функцию
"СТРОКА" примерно равна "СТРОКА2", но вариантов слишком много.


P.S.
Автор: Федор от 01.09.2001 17:58:12 Источник ...
 15.06.2007 19:52:20
All
4316 сообщения
1-ый


RE: Какие методы есть в Access 97 для решения проблемы
Сделайте шаблон (см. примеры для даты или телефона), тогда ошибок при вводе сплавов не будет


P.S.
Автор: Виктор Конюков от 0:00:00 Источник ...
 15.06.2007 19:52:20
Сергей Слесарев
8 сообщения


RE: Какие методы есть в Access 97 для решения проблемы
Андрей, я встречался с подобной проблемой: требуется сравнивать строки в которых русские и латинские буквы с одинаковым начертанием эквивалентны и существуют символы которые требуется игнорировать ("-", ".", "," [пробел] и т.д.)
Существует именно эти два подхода, о которых говорит Фёдор:
1) Определить правила записи строк (например: только латинскими заглавными буквами, без символов, которые игнорируются). После этого написать функцию приведения к "правильной" записи
MakeStringRules(S as string) as string
и сравнивать так
MakeStringRules(S1) = MakeStringRules(S2).
2) Создать таблицу SPLAVY с уникальным полем SPLAV_ABBREVIATURA. Пусть эту таблицу заполняет ответственный пользователь, который не будет ошибаться (заносить сплав, который уже занесён с другой, похожей аббревиатурой). А всех остальных пользователей заставить выбирать из списка.

Если Вы создаёте новую систему, то предпочтительней 2-й вариант. Но первый вариант также можно реализовать. Один из возможных алгоритмов примерно такой:
function MakeStringRules(byval S as string) as string
dim badSym as string
dim fromSym as string
dim toSym as string
dim S_new as string
badSym = "., -"
fromSym = "АВЕКМНОРСТ" 'и т.д.
toSym = "ABEKMHOPCT" 'и т.д.

S=UCase(S)
for i = 1 to len(S)
if instr(badSym,mid$(S,i,1))=0 then
__pos=instr(fromSym,mid$(S,i,1))
__if pos>0 then
____S_new = toSym(pos)
__else
____S_new = fromSym(pos)
__endif
endif
next
MakeStringRules=S_new
end function



P.S.
Автор: Сергей Слесарев от 03.09.2001 19:01:18 Источник ...
 15.06.2007 19:52:20
Сергей Слесарев
8 сообщения


RE: Какие методы есть в Access 97 для решения проблемы
...Последние 8 строк вот так:
____S_new = S_new & mid$(toSym,pos,1)
__else
____S_new = S_new & mid$(fromSym,pos,1)
__endif
endif
next
MakeStringRules=S_new
end function






P.S.
Автор: Сергей Слесарев от 03.09.2001 19:23:26 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Какие мет...
ПоискПоиск  Список форумовСписок форумов  
right