Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Знаки пунктуации в условии на значение / 14 сообщений из 14, страница 1 из 1
13.01.2020, 18:01
    #39913342
edward_sh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
Добрый вечер, коллеги!
Создаю БД для учебного заведения.
Прототип делаю в Access, но с перспективой переезда на MS SQL сервер.
Возникла проблема - в текстовом поле описания профессии применяются русские буквы, знаки препинания и ДВОЙНЫЕ КАВЫЧКИ.
Проблему русских букв и знаков пунктуации решил выражением Not Like "*[!0-9 а-я,.; :]*" в Validation rules поля таблицы.
Проблему кавычек никак не могу решить, как разрешить ввод символа "?
Если экранирую символ " аналогичными, access ругается на синтаксис строки проверки.
Была мысль заменить двойные кавычки одинарными - руководитель против.
Как можно разрешить ввод двойных кавычек в поле таблицы?
Ограничение надо установить на уровне столбца таблицы, т.к. неизвестно, на каком языке будет написан интерфейс к БД.
...
Рейтинг: 0 / 0
13.01.2020, 21:43
    #39913397
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
Вот так:
Код: vbnet
1.
Like "[0-9 а-я!,.;:""]*"
...
Рейтинг: 0 / 0
14.01.2020, 07:24
    #39913457
edward_sh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
Спасибо, Akina за ответ.
Самое интересное, что пытался проделать то же самое ранее. Но, видимо, звезды не так расположились ...
Сжал БД и повторил еще раз - все получилось.
Теперь возник другой вопрос - кавычек бывает несколько типов ", «, верхние и нижние и т.д. Осталось решить, как при копи-пасте защититься от них и приводить все к единому знаменателю.
Еще раз спасибо за ответ!
...
Рейтинг: 0 / 0
14.01.2020, 08:03
    #39913463
edward_sh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
Столкнулся с еще одной проблемой в этом выражении.
Надо было добавить знак тире -
Access упорно ругался на него, решилось заключением символа тире в квадратные скобки [-].
Видимо, access считал этот символ как указатель множества. А заключение его в квадратные скобки экранировало его.
...
Рейтинг: 0 / 0
14.01.2020, 08:26
    #39913470
edward_sh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
Не получился фокус :(
После этого стали пролезать английские буквы.
Пока решилось перемещение тире в самую последнюю позицию. Итоговый вариант стал
Not Like "*[!0-9а-я, :""-]*"
Теперь осталось научиться писать многострочные сообщения об ошибках типа:
"Введен неверный символ"
"Допускаются символы (такие-то)"
...
Рейтинг: 0 / 0
14.01.2020, 09:56
    #39913504
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
Тире в маске - служебный символ диапазона (Вы же его используете!). Так что помещение его в конец списка допустимых символов - самое простое из правильных решений.
edward_sh
кавычек бывает несколько типов ", «, верхние и нижние и т.д.
Ну их придётся разрешить - внести в список допустимых символов. А уже после ввода - выполнять нормализацию (тупо Replace).
...
Рейтинг: 0 / 0
14.01.2020, 09:56
    #39913505
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
edward_sh
осталось научиться писать многострочные сообщения об ошибках типа:
"Введен неверный символ"
"Допускаются символы (такие-то)"


Код: vbnet
1.
MsgBox "Введен неверный символ" & vbNewLine & "Допускаются символы (такие-то)"
...
Рейтинг: 0 / 0
14.01.2020, 10:02
    #39913509
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
edward_sh
А заключение его в квадратные скобки экранировало его.

Нет. Если нужно указать символ "дефис", то он должен быть в первой позиции внутри квадратных скобок. В остальных местах он будет указывать на диапазон.
...
Рейтинг: 0 / 0
14.01.2020, 11:05
    #39913540
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
Что-то я не догоняю этот топик от слова совсем...
edward_sh
Возникла проблема - в текстовом поле описания профессии применяются русские буквы, знаки препинания и ДВОЙНЫЕ КАВЫЧКИ.


По моему, если вообще ничего не делать, то в текстовое поле можно ввести что угодно, причем если кавычки вводить руками, то они будут однотипные, зачем все эти лайки, условия и т.д. ?
Ну я бы еще понял, если бы нужно было что-то запретить к вводу, например английский шрифт - дак и то проще на поле установить язык ввода русский и всё...

Так со стороны посмотреть, то задача стоит типа нужно написать условия, которые позволят ввести всё что угодно, так может их и писать не нужно эти условия?
...
Рейтинг: 0 / 0
14.01.2020, 12:06
    #39913576
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
vmag , да видишь - товарищ пытается сформировать CHECK CONSTRAINT на поле для применения на MS SQL, причём смоделировать это средствами Access. Если бы он делал как все - ввод исключительно через формы,- так и вопроса бы не возникло, там через Validate можно слона протащить.
...
Рейтинг: 0 / 0
14.01.2020, 12:32
    #39913600
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
Akina,

Мдя... имхо сначала нужно сделать рабочий макет, оттестировать его вдоль и поперек, а потом уже делать защиту от дураков и прочие мелочи, причем делать это лучше уже на реальной связке БД-Интерфейс... а так похоже на балансировку колес при отсутствии автомобиля...
...
Рейтинг: 0 / 0
14.01.2020, 16:53
    #39913824
edward_sh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
vmag, Так я и делаю рабочий макет :)
Те, кто сразу не думает о защите от дураков, потом долго и нудно латает код.
Проще сразу в макете сказать что тебе надо, а от остального защищаться кодом.

To Akina про MsgBox я знаю, мне было интересно вывести стандартными средствами вывода ошибок
Accessa из строки Ошибки на значения (Validation Text).
Просто текстовое сообщение вытягивается некрасиво.
Но походу этого сделать нельзя...
...
Рейтинг: 0 / 0
14.01.2020, 17:40
    #39913851
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
edward_sh
....мне было интересно вывести стандартными средствами вывода ошибок Accessa из строки Ошибки на значения (Validation Text).
Просто текстовое сообщение вытягивается некрасиво.
Но походу этого сделать нельзя...

Отчего же нельзя?

Введите в ValidationText то, что нужно - хоть в две, хоть в пять, хоть в семь строк.
Перевод строки - Ctrl-Enter.
Или сформируйте многострочный текст в окне Область ввода (вызывается Shift-F2).
...
Рейтинг: 0 / 0
14.01.2020, 18:12
    #39913883
edward_sh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Знаки пунктуации в условии на значение
__Michelle,
Спасибо, Ctrl+Enter сработало! А Shift+F2 в конструкторе таблиц у меня не сработал ... Ну и ладно!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Знаки пунктуации в условии на значение / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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