|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
Добрый вечер, коллеги! Создаю БД для учебного заведения. Прототип делаю в Access, но с перспективой переезда на MS SQL сервер. Возникла проблема - в текстовом поле описания профессии применяются русские буквы, знаки препинания и ДВОЙНЫЕ КАВЫЧКИ. Проблему русских букв и знаков пунктуации решил выражением Not Like "*[!0-9 а-я,.; :]*" в Validation rules поля таблицы. Проблему кавычек никак не могу решить, как разрешить ввод символа "? Если экранирую символ " аналогичными, access ругается на синтаксис строки проверки. Была мысль заменить двойные кавычки одинарными - руководитель против. Как можно разрешить ввод двойных кавычек в поле таблицы? Ограничение надо установить на уровне столбца таблицы, т.к. неизвестно, на каком языке будет написан интерфейс к БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2020, 18:01 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
Вот так: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2020, 21:43 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
Спасибо, Akina за ответ. Самое интересное, что пытался проделать то же самое ранее. Но, видимо, звезды не так расположились ... Сжал БД и повторил еще раз - все получилось. Теперь возник другой вопрос - кавычек бывает несколько типов ", «, верхние и нижние и т.д. Осталось решить, как при копи-пасте защититься от них и приводить все к единому знаменателю. Еще раз спасибо за ответ! ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2020, 07:24 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
Столкнулся с еще одной проблемой в этом выражении. Надо было добавить знак тире - Access упорно ругался на него, решилось заключением символа тире в квадратные скобки [-]. Видимо, access считал этот символ как указатель множества. А заключение его в квадратные скобки экранировало его. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2020, 08:03 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
Не получился фокус :( После этого стали пролезать английские буквы. Пока решилось перемещение тире в самую последнюю позицию. Итоговый вариант стал Not Like "*[!0-9а-я, :""-]*" Теперь осталось научиться писать многострочные сообщения об ошибках типа: "Введен неверный символ" "Допускаются символы (такие-то)" ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2020, 08:26 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
Тире в маске - служебный символ диапазона (Вы же его используете!). Так что помещение его в конец списка допустимых символов - самое простое из правильных решений. edward_sh кавычек бывает несколько типов ", «, верхние и нижние и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2020, 09:56 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
edward_sh осталось научиться писать многострочные сообщения об ошибках типа: "Введен неверный символ" "Допускаются символы (такие-то)" Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2020, 09:56 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
edward_sh А заключение его в квадратные скобки экранировало его. Нет. Если нужно указать символ "дефис", то он должен быть в первой позиции внутри квадратных скобок. В остальных местах он будет указывать на диапазон. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2020, 10:02 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
Что-то я не догоняю этот топик от слова совсем... edward_sh Возникла проблема - в текстовом поле описания профессии применяются русские буквы, знаки препинания и ДВОЙНЫЕ КАВЫЧКИ. По моему, если вообще ничего не делать, то в текстовое поле можно ввести что угодно, причем если кавычки вводить руками, то они будут однотипные, зачем все эти лайки, условия и т.д. ? Ну я бы еще понял, если бы нужно было что-то запретить к вводу, например английский шрифт - дак и то проще на поле установить язык ввода русский и всё... Так со стороны посмотреть, то задача стоит типа нужно написать условия, которые позволят ввести всё что угодно, так может их и писать не нужно эти условия? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2020, 11:05 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
vmag , да видишь - товарищ пытается сформировать CHECK CONSTRAINT на поле для применения на MS SQL, причём смоделировать это средствами Access. Если бы он делал как все - ввод исключительно через формы,- так и вопроса бы не возникло, там через Validate можно слона протащить. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2020, 12:06 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
Akina, Мдя... имхо сначала нужно сделать рабочий макет, оттестировать его вдоль и поперек, а потом уже делать защиту от дураков и прочие мелочи, причем делать это лучше уже на реальной связке БД-Интерфейс... а так похоже на балансировку колес при отсутствии автомобиля... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2020, 12:32 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
vmag, Так я и делаю рабочий макет :) Те, кто сразу не думает о защите от дураков, потом долго и нудно латает код. Проще сразу в макете сказать что тебе надо, а от остального защищаться кодом. To Akina про MsgBox я знаю, мне было интересно вывести стандартными средствами вывода ошибок Accessa из строки Ошибки на значения (Validation Text). Просто текстовое сообщение вытягивается некрасиво. Но походу этого сделать нельзя... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2020, 16:53 |
|
Знаки пунктуации в условии на значение
|
|||
---|---|---|---|
#18+
edward_sh ....мне было интересно вывести стандартными средствами вывода ошибок Accessa из строки Ошибки на значения (Validation Text). Просто текстовое сообщение вытягивается некрасиво. Но походу этого сделать нельзя... Отчего же нельзя? Введите в ValidationText то, что нужно - хоть в две, хоть в пять, хоть в семь строк. Перевод строки - Ctrl-Enter. Или сформируйте многострочный текст в окне Область ввода (вызывается Shift-F2). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2020, 17:40 |
|
|
start [/forum/topic.php?fid=45&fpage=22&tid=1610290]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 9ms |
total: | 129ms |
0 / 0 |