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

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

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

Что подправить в коде?
...
Рейтинг: 0 / 0
Как быстро заменить всю кириллицу в проекте на латиницу?
    #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
Как быстро заменить всю кириллицу в проекте на латиницу?
    #39475146
Фотография гурД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nebo,

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

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

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

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

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

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


Подскажите ещё пожалуйста как сделать транслитерацию StatusBarText Property у контрола в форме?
...
Рейтинг: 0 / 0
Как быстро заменить всю кириллицу в проекте на латиницу?
    #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
Как быстро заменить всю кириллицу в проекте на латиницу?
    #39475829
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimport,


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




Почему в этой строчке не изменяется значение. Может я туплю в чём-то?
...
Рейтинг: 0 / 0
Как быстро заменить всю кириллицу в проекте на латиницу?
    #39475840
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nebo Может я туплю в чём-то?
вероятно... у меня всё изменяется :)
...
Рейтинг: 0 / 0
Как быстро заменить всю кириллицу в проекте на латиницу?
    #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
Как быстро заменить всю кириллицу в проекте на латиницу?
    #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
Как быстро заменить всю кириллицу в проекте на латиницу?
    #39475854
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimport,


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

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

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

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

Спасибо за помощь) Спасибо за код! Попробую)
...
Рейтинг: 0 / 0
Как быстро заменить всю кириллицу в проекте на латиницу?
    #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
Как быстро заменить всю кириллицу в проекте на латиницу?
    #39478784
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как быстро заменить всю кириллицу в проекте на латиницу?
    #39480764
Nebo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_rusimportNebo,
Подсказка
http://www.sql.ru/forum/12806/mozhno-li-programmno-upravlyat-uslovnym-formatirovaniem

Если честно не совсем то, мне кажется)
Все условные на полях уже определены. Ничего удалять не хочу.
Как-то это грубовато будет)
...
Рейтинг: 0 / 0
Как быстро заменить всю кириллицу в проекте на латиницу?
    #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
Как быстро заменить всю кириллицу в проекте на латиницу?
    #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
Как быстро заменить всю кириллицу в проекте на латиницу?
    #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
25 сообщений из 25, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как быстро заменить всю кириллицу в проекте на латиницу?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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