powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / наиональные буквы в юникоде и VBA ACCESS
11 сообщений из 11, страница 1 из 1
наиональные буквы в юникоде и VBA ACCESS
    #37475324
Varuzhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотел использовать программу "Сумма прописью" столкнулся с проблемой написания национальных букв в VBA. Как можно написать в VBA национальными буквами в юникоде?
...
Рейтинг: 0 / 0
наиональные буквы в юникоде и VBA ACCESS
    #37475399
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Varuzhan,

Какие проблемы?

в VBA строки уникодные(utf-16)
...
Рейтинг: 0 / 0
наиональные буквы в юникоде и VBA ACCESS
    #37475490
Varuzhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,
я пытаюсь написать цифрв армянскими буквами, но вместо букв отображаются вопросительные знаки. заменяю шрифт на sylfaen, то же самое.
...
Рейтинг: 0 / 0
наиональные буквы в юникоде и VBA ACCESS
    #37475563
Varuzhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в Option при выборе шрифта предлагается выбрать не весь шрифт, а ее выриант, т.е. кириллица, западный и т.д. Скорее всего проблема в этом. Но как ее обойти не знаю.
...
Рейтинг: 0 / 0
наиональные буквы в юникоде и VBA ACCESS
    #37475652
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Varuzhan,

действительно есть проблема.
...
Рейтинг: 0 / 0
наиональные буквы в юникоде и VBA ACCESS
    #37476360
Varuzhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как можно представить таблицу в виде array?
...
Рейтинг: 0 / 0
наиональные буквы в юникоде и VBA ACCESS
    #37478484
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Varuzhanкак можно представить таблицу в виде array?А для чего?
Дабы прямо взаимодействовать?
Скачать содержимое таблицы в массив?
Залить содержимое массива в таблицу?

Вообще, смысл непонятен... если есть таблица - зачем нужен массив?
...
Рейтинг: 0 / 0
наиональные буквы в юникоде и VBA ACCESS
    #37479619
Varuzhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

идея такая. так как национальными буквами не могу писать в vba, a в таблице базы данных с этим проблем нет, то взять цифры написанные в базе национальными буквами и использовать для написания суммы прописью.
...
Рейтинг: 0 / 0
наиональные буквы в юникоде и VBA ACCESS
    #37479660
Varuzhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Varuzhan,

эту программку я использую в Excel, правда название цифр прописью я беру из конкретных ячеек в таблице.
программа также работает в Access. Проблема только в армянских буrвах, которые не могу писать в тексте VBA.
...
Рейтинг: 0 / 0
наиональные буквы в юникоде и VBA ACCESS
    #37479683
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Varuzhan,

соберите строку из юникодных кодов при помощи chrw()
маразм конечно
...
Рейтинг: 0 / 0
наиональные буквы в юникоде и VBA ACCESS
    #37480103
Varuzhan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропил,
спасибо! Ваш совет мне очень помог. в этом варианте получилось.

Public f(1 To 14) As Byte
Public b, str As String
Public b1, b2, b3, b0

Function Propis(SUMA, Optional pokazat_nol_kopeek As Boolean)

zro = ChrW(1382) + ChrW(1408) + ChrW(1400)
mek = ChrW(1396) + ChrW(1381) + ChrW(1391)
erku = ChrW(1381) + ChrW(1408) + ChrW(1391) + ChrW(1400) + ChrW(1410)
ereq = ChrW(1381) + ChrW(1408) + ChrW(1381) + ChrW(1412)
chors = ChrW(1401) + ChrW(1400) + ChrW(1408) + ChrW(1405)
hing = ChrW(1392) + ChrW(1387) + ChrW(1398) + ChrW(1379)
vec = ChrW(1406) + ChrW(1381) + ChrW(1409)
jot = ChrW(1397) + ChrW(1400) + ChrW(1385)
ut = ChrW(1400) + ChrW(1410) + ChrW(1385)
iny = ChrW(1387) + ChrW(1398) + ChrW(1384)
tas = ChrW(1407) + ChrW(1377) + ChrW(1405) + ChrW(1384)
tasn = ChrW(1407) + ChrW(1377) + ChrW(1405) + ChrW(1398)
qsan = ChrW(1412) + ChrW(1405) + ChrW(1377) + ChrW(1398)
eresun = ChrW(1381) + ChrW(1408) + ChrW(1381) + ChrW(1405) + ChrW(1400) + ChrW(1410) + ChrW(1398)
qarasun = ChrW(1412) + ChrW(1377) + ChrW(1404) + ChrW(1377) + ChrW(1405) + ChrW(1400) + ChrW(1410) + ChrW(1398)
hisun = ChrW(1392) + ChrW(1387) + ChrW(1405) + ChrW(1400) + ChrW(1410) + ChrW(1398)
vatsun = ChrW(1406) + ChrW(1377) + ChrW(1385) + ChrW(1405) + ChrW(1400) + ChrW(1410) + ChrW(1398)
jotanasun = ChrW(1397) + ChrW(1400) + ChrW(1385) + ChrW(1377) + ChrW(1398) + ChrW(1377) + ChrW(1405) + ChrW(1400) + ChrW(1410) + ChrW(1398)
utsun = ChrW(1400) + ChrW(1410) + ChrW(1385) + ChrW(1405) + ChrW(1400) + ChrW(1410) + ChrW(1398)
innsun = ChrW(1387) + ChrW(1398) + ChrW(1398) + ChrW(1400) + ChrW(1410) + ChrW(1398)
harur = ChrW(1392) + ChrW(1377) + ChrW(1408) + ChrW(1397) + ChrW(1400) + ChrW(1410) + ChrW(1408)
hazar = ChrW(1392) + ChrW(1377) + ChrW(1382) + ChrW(1377) + ChrW(1408)
milion = ChrW(1396) + ChrW(1387) + ChrW(1388) + ChrW(1387) + ChrW(1400) + ChrW(1398)
miliard = ChrW(1396) + ChrW(1387) + ChrW(1388) + ChrW(1387) + ChrW(1377) + ChrW(1408) + ChrW(1380)


b1 = Array("", mek, erku, ereq, chors, hing, vec, jot, ut, iny)
b0 = Array(tas, tasn + mek, tasn + erku, tasn + ereq, tasn + chors, tasn + hing, tasn + vec, tasn + jot, tasn + ut, tasn + iny)
b2 = Array("", tasn, qsan, eresun, qarasun, hisun, vatsun, jotanasun, utsun, innsun)
b3 = Array("", harur, erku + " " + harur, ereq + " " + harur, chors + " " + harur, hing + " " + harur, vec + " " + harur, jot + " " + harur, ut + " " + harur, iny + " " + harur)

b = ""
poz_razdelitelya = 0
'poz_razdelitelya = InStr(1, SUMA, "=", 1) + InStr(1, SUMA, "-", 1) + InStr(1, SUMA, ".", 1) + InStr(1, SUMA, ",", 1)
If poz_razdelitelya = 0 Then
luma = "00"
poz_razdelitelya = Len(SUMA) + 1
Else
luma = Left(Mid(SUMA, poz_razdelitelya + 1, 2) & "00", 2)
End If

str = Right("000000000000" & Mid(SUMA, 1, poz_razdelitelya - 1), 12)

If Val(str) < 0 Or Val(str) > 999999999999.99 Then
Propis = "больше>999999999999.99)."
Exit Function
End If
For i = 1 To 12 ' dram
f(i) = Val(Mid(str, i, 1))
Next i
For i = 13 To 14 ' luma
f(i) = Val(Mid(luma, i - 12, 1))
Next i
If Razbor(0) Then
b = b & " " & miliard
End If
If Razbor(3) Then
b = b & " " & milion
End If
If Razbor(6) Then
b = b & " " & hazar
End If
Razbor (9)
If b <> "" Then b = b
'b = UCase(Mid(Trim(b), 1, 1)) & Mid(Trim(b), 2)
If Not pokazat_nol_kopeek And luma = "00" Then Else _
b = b & " " & luma
Propis = b
End Function

Function Razbor(sdvig) As Boolean
If Val(Mid(str, 1 + sdvig, 3)) <> 0 Then
b = b & " " & b3(f(1 + sdvig))
If f(2 + sdvig) = 1 Then
b = b & " " & b0(f(3 + sdvig))
Else
b = b & " " & b2(f(2 + sdvig)) & b1(f(3 + sdvig))
End If
Razbor = True
Else
Razbor = False
End If
End Function
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / наиональные буквы в юникоде и VBA ACCESS
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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