MyTetra Share
Делитесь знаниями!
Преобразование к русским кавычкам (из "..." в « ...»)
Время создания: 16.03.2019 23:43
Раздел: Разные закладки - VBA - Access - msa.polarcom.ru - 13 Преобразование Строк
Запись: xintrea/mytetra_db_adgaver_new/master/base/1532018186n8wf9zzokz/text.html на raw.githubusercontent.com

Преобразование к русским кавычкам (из "..." в « ...»)

(c) Максименко Юрий: http://db-maker.narod.ru

Function russianQuoting(ByVal strForQuote As String) As String

'(c) Максименко Юрий http://db-maker.narod.ru

'На клавиатуре нет русских кавычек, аксессовский хелп ничего умнее копирования из таблицы Символов не предлагает.

'Это исключает возможность авитозаполнения в комбобоксах, усложняет ввод названий.

'Нижеприведённая простая функция решает эту проблему. То есть Вы можете вводить названия с обычными кавычками,

'а в отчётах Вы можете использовать поле =russianQuoting([ПолеНазвания])

'--------------------------------------------------------------------

strForQuote = Trim(strForQuote)

'Заменим кавычку-начало слова

If (Left(strForQuote, 1)) = Chr(34) Then strForQuote = Chr(171) & Mid(strForQuote, 2)


'заменим кавычку-конец слова

If (Right(strForQuote, 1)) = Chr(34) Then strForQuote = Mid(strForQuote, 1, Len(strForQuote) - 1) & Chr(187)

'заменим кавычку с пробелом перед ней

strForQuote = strReplace(strForQuote, " " & Chr(34), " " & Chr(171))


'заменим кавычку с пробелом после неё

strForQuote = strReplace(strForQuote, Chr(34) & " ", Chr(187) & " ")


russianQuoting = strForQuote


End Function



Function strReplace(ByVal strSubject As String, ByVal forSearsh As String, ByVal forReplace As String) As String

'Дублирует Replace(): эта функция работает как-то странно и в запросах бастует

'Возвращает строку, в которой в исходной строке strSubject подстрока forSearsh заменена на подстроку forReplace

'--------------------------------------------------------------------

Dim p, l As Integer

p = InStr(strSubject, forSearsh)

l = Len(forSearsh)

Do Until p = 0

strSubject = Left(strSubject, p - 1) & forReplace & Mid(strSubject, p + l)

p = InStr(strSubject, forSearsh)

Loop

strReplace = strSubject


End Function



Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования