Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как быстро заменить всю кириллицу в проекте на латиницу? / 25 сообщений из 25, страница 1 из 1
18.07.2016, 21:23
    #39275928
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
Как быстро найти все русские символы (в запросах, формах, комментарии в модулях, отчётах) и заменить их клером (латиницей) ?
...
Рейтинг: 0 / 0
18.07.2016, 21:29
    #39275933
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
...
Рейтинг: 0 / 0
18.07.2016, 21:46
    #39275940
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimport,

Спасибо) Похоже то, что надо. Попробую)
...
Рейтинг: 0 / 0
20.06.2017, 16:09
    #39474894
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimportNebo,
http://am.rusimport.ru/msaccess/topic.aspx?ID=702

Всё хорошо работает. Но есть один момент.
Описания запросов, форм, модулей остаются на кириллице.

Что подправить в коде?
...
Рейтинг: 0 / 0
20.06.2017, 23:04
    #39475112
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
Neboguest_rusimportNebo,
http://am.rusimport.ru/msaccess/topic.aspx?ID=702

Всё хорошо работает. Но есть один момент.
Описания запросов, форм, модулей остаются на кириллице.

Что подправить в коде?

на примере транслитерации описаний форм (для остального можно сделать по аналогии)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Public Function translit(s As String) As String
Dim lat As String
Dim rus As String
lat = "a  b  v  g  d  e  e  zh z  i  j  k  l  m  n  o  p  r  s  t  u  f  h  c  ch sh sch'  y  `  '' ju ja "
rus = "а  б  в  г  д  е  ё  ж  з  и  й  к  л  м  н  о  п  р  с  т  у  ф  х  ц  ч  ш  щ  ь  ы  ъ  э  ю  я  "
If Len(s) = 0 Then Exit Function
For i = 1 To Len(s)
        If Mid(s, i, 1) = " " Then j = 0 Else j = InStr(1, rus, Mid(s, i, 1))
        If j <> 0 Then p = p & Trim(Mid(lat, j, 3)) Else p = p & Mid(s, i, 1)
Next i
translit = p
End Function

Sub TranslitDescription()
Dim i%, db As Object
On Error Resume Next
    Set db = CurrentDb
 With db.Containers("Forms")
  For i = 0 To .Documents.Count - 1
     .Documents(i).Properties("Description").Value = translit(.Documents(i).Properties("Description").Value)
  Next i
 End With
End Sub
...
Рейтинг: 0 / 0
21.06.2017, 03:14
    #39475146
гурД
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
Nebo,

распространёнными подручными средствами...
Моментально (и отходов не остаётся... :-)) )
...
Рейтинг: 0 / 0
21.06.2017, 12:51
    #39475404
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimport,

Спасибо) Но похоже, что код просто проходит по коллекции форм, меняет описание формы, но не сохраняет его)

Что нужно сделать?
...
Рейтинг: 0 / 0
21.06.2017, 13:11
    #39475424
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimport,

Всё работает! Спасибо! Формы, модули - сделал.

Не пойму как к запросам обратиться.
...
Рейтинг: 0 / 0
21.06.2017, 13:15
    #39475426
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
К запросам - tables

Спасибо. Всё работает! )
...
Рейтинг: 0 / 0
21.06.2017, 15:59
    #39475600
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimport,


Подскажите ещё пожалуйста как сделать транслитерацию StatusBarText Property у контрола в форме?
...
Рейтинг: 0 / 0
21.06.2017, 17:29
    #39475667
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
Neboguest_rusimport,


Подскажите ещё пожалуйста как сделать транслитерацию StatusBarText Property у контрола в форме?

попробуйте так
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Dim ff as Object
On Error Resume Next
For Each ff In CurrentProject.AllForms
    DoCmd.OpenForm ff.name, acDesign
    For i =0 to Forms(ff.name).Controls.Count - 1
        Forms(ff.name).Controls(i).StatusBarText = translit(Forms(ff.name).Controls(i).StatusBarText)
    Next i
    DoCmd.Close acForm, ff.name, acSaveYes
Next
...
Рейтинг: 0 / 0
21.06.2017, 23:50
    #39475829
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimport,


Код: vbnet
1.
        Forms(ff.name).Controls(i).StatusBarText = translit(Forms(ff.name).Controls(i).StatusBarText)




Почему в этой строчке не изменяется значение. Может я туплю в чём-то?
...
Рейтинг: 0 / 0
22.06.2017, 00:13
    #39475840
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
Nebo Может я туплю в чём-то?
вероятно... у меня всё изменяется :)
...
Рейтинг: 0 / 0
22.06.2017, 00:37
    #39475847
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimportNebo Может я туплю в чём-то?
вероятно... у меня всё изменяется :)

)

Интересно)

Вот здесь мне нужно глянуть в чём проблемка)


Код: vbnet
1.
2.
3.
4.
For i = 1 To Len(s)
        If Mid(s, i, 1) = " " Then j = 0 Else j = InStr(1, rus, Mid(s, i, 1))
        If j <> 0 Then p = p & Trim(Mid(lat, j, 3)) Else p = p & Mid(s, i, 1)
Next i
...
Рейтинг: 0 / 0
22.06.2017, 00:48
    #39475850
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
NeboВот здесь мне нужно глянуть в чём проблемка)


Код: vbnet
1.
2.
3.
4.
For i = 1 To Len(s)
        If Mid(s, i, 1) = " " Then j = 0 Else j = InStr(1, rus, Mid(s, i, 1))
        If j <> 0 Then p = p & Trim(Mid(lat, j, 3)) Else p = p & Mid(s, i, 1)
Next i



не думаю... в предыдущем случае не было проблем, а в этом возникли ... это врядли
...
Рейтинг: 0 / 0
22.06.2017, 00:52
    #39475854
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimport,


согласен) посмотрю в чём дело)
...
Рейтинг: 0 / 0
22.06.2017, 01:02
    #39475859
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimport,

Если всё это сделать, проект запустится без проблем в английской версии Windows ?
...
Рейтинг: 0 / 0
22.06.2017, 01:24
    #39475871
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
Neboguest_rusimport,

Если всё это сделать, проект запустится без проблем в английской версии Windows ?

а вы попробуйте... может этого 19424895 было бы и вполне достаточно
...
Рейтинг: 0 / 0
22.06.2017, 01:26
    #39475874
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimport,

Спасибо за помощь) Спасибо за код! Попробую)
...
Рейтинг: 0 / 0
28.06.2017, 00:50
    #39478751
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimport,

Всё сделал.

Применил такой код:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub TranslitDescription()
Dim i As Long

Dim ff As Object
On Error Resume Next
For Each ff In CurrentProject.AllForms
    DoCmd.OpenForm ff.name, acDesign, , , , acHidden
    For i = 0 To Forms(ff.name).Controls.Count - 1
    
        Forms(ff.name).Controls(i).DefaultValue = translit(Forms(ff.name).Controls(i).DefaultValue)
        Forms(ff.name).Controls(i).ValidationRule = translit(Forms(ff.name).Controls(i).ValidationRule)
        Forms(ff.name).Controls(i).ValidationText = translit(Forms(ff.name).Controls(i).ValidationText)
        Forms(ff.name).Controls(i).ControlTipText = translit(Forms(ff.name).Controls(i).ControlTipText)
        Forms(ff.name).Controls(i).Tag = translit(Forms(ff.name).Controls(i).Tag)
        Forms(ff.name).Controls(i).StatusBarText = translit(Forms(ff.name).Controls(i).StatusBarText)
    Next i
    
    DoCmd.Close acForm, ff.name, acSaveYes
Next
 
End Sub




Вопрос есть: а можно как-то добраться до условного форматирования контролов?
Возможно там в условиях есть кириллица.

Что-то типа такого: Forms(ff.name).Controls(i).FormatConditions.Item(1).Expression1

Но справка говорит, что только чтение:
You can use the Expression1 property to return the values of a conditional format within a FormatCondition object. Read-only String.
...
Рейтинг: 0 / 0
28.06.2017, 08:54
    #39478784
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
...
Рейтинг: 0 / 0
01.07.2017, 00:31
    #39480764
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimportNebo,
Подсказка
http://www.sql.ru/forum/12806/mozhno-li-programmno-upravlyat-uslovnym-formatirovaniem

Если честно не совсем то, мне кажется)
Все условные на полях уже определены. Ничего удалять не хочу.
Как-то это грубовато будет)
...
Рейтинг: 0 / 0
01.07.2017, 12:09
    #39480858
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
Neboguest_rusimportNebo,
Подсказка
http://www.sql.ru/forum/12806/mozhno-li-programmno-upravlyat-uslovnym-formatirovaniem

Если честно не совсем то, мне кажется)
Все условные на полях уже определены. Ничего удалять не хочу.
Как-то это грубовато будет)
ну, не хочется через удаление-добавление, можно через модификацию, например
Код: vbnet
1.
Forms!Форма.Controls(i).FormatConditions.Item(j).Modify acExpression, acEqual, expr1, expr2
...
Рейтинг: 0 / 0
05.07.2017, 07:00
    #39482888
Nebo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
guest_rusimportNeboпропущено...


Если честно не совсем то, мне кажется)
Все условные на полях уже определены. Ничего удалять не хочу.
Как-то это грубовато будет)
ну, не хочется через удаление-добавление, можно через модификацию, например
Код: vbnet
1.
Forms!Форма.Controls(i).FormatConditions.Item(j).Modify acExpression, acEqual, expr1, expr2




Делаю так. Но не сохраняются почему-то изменения. Под отладчиком всё меняется, всё ок, но не сохраняются при записи формы.

вот код:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
Sub ChangeFormatConditions()
Dim i As Long
Dim ff As Object
Dim fc As Object

'On Error Resume Next

For Each ff In CurrentProject.AllForms
    
    If ff.name = "bookForm" Then
    
        DoCmd.OpenForm ff.name, acDesign, , , , acHidden
        
        
        For i = 0 To Forms(ff.name).Controls.Count - 1
        
            If Forms(ff.name).Controls(i).name = "BookName" Then
                
                
                For Each fc In Forms(ff.name).Controls(i).FormatConditions
                    If fc.Type = acExpression Then
                        
                        fc.Modify acExpression, acEqual, "[ID]=1"
                    
                    End If
                Next
    
            
            End If
        
    
        Next i
        
        DoCmd.Close acForm, ff.name, acSaveYes
    
    End If
    
Next
 
End Sub
...
Рейтинг: 0 / 0
05.07.2017, 08:09
    #39482901
guest_rusimport
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро заменить всю кириллицу в проекте на латиницу?
Nebo,
вот так, наверное, как-то (во всяком случае, у меня работает)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub ChangeFormatConditions()
Dim i As Long
Dim ff As Object
Dim fc As FormatCondition
On Error Resume Next
For Each ff In CurrentProject.AllForms
        DoCmd.OpenForm ff.Name, acDesign
        For i = 0 To Forms(ff.Name).Controls.Count - 1
        Forms(ff.Name).Controls(i).Visible = Forms(ff.Name).Controls(i).Visible
                For Each fc In Forms(ff.Name).Controls(i).FormatConditions
                        fc.Modify acExpression, acEqual, "[ID]=1"
                Next
        Next i
        DoCmd.Close acForm, ff.Name, acSaveYes
Next
End Sub
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как быстро заменить всю кириллицу в проекте на латиницу? / 25 сообщений из 25, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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