powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Формат числового поля с отображением денежного знака в VBA
18 сообщений из 18, страница 1 из 1
Формат числового поля с отображением денежного знака в VBA
    #39999368
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте!

Это выражение
Код: vbnet
1.
Format(PriceEU, '# ##0.00 €')

возвращает число с разделителем разрядов и со знаком евро, которое копирую в Excel и оно вставляется вместе со знаком евро как число.

Это выражение
Код: vbnet
1.
Format(PriceEU, '# ##0.00 тг')

при копировании вставляется как текст.
Сам знак нашей валюты тенге в код VBA не вставляется, думал как с евро получится )).

Подскажите, пж, возможно ли как-то отображать денежный знак, чтобы потом копировалось как число?
Первоначально был у меня формат 'Currency', но из-за того, что там разделитель разряда, копировалось как текст.
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #39999373
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga,
250 тг вегда будет текстом. Кроме как иметь два поля [сумма] числовое и [валюта]
текст вариантов не вижу
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #39999602
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вдогонку:
Читайте HELP-про Format написано:" Возвращает значение типа Variant (String )...."
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #39999624
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku
Вдогонку:
Читайте HELP-про Format написано:" Возвращает значение типа Variant (String )...."

Для того и придумали денежный формат или decimal , чтобы не извращаться со стрингами. :))
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #39999635
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan
не извращаться со стрингами. :))

Извращаться со стрингами????
Двусмысленно звучит)))))
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #39999649
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за советы,

будем подумать )
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #39999709
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Думаю зайти с другой стороны )

у меня источником в подчиненной форме запрос из vba (SELECT....) где условие отбора такое:
Код: vbnet
1.
WHERE IDData=" & Mid(Node.Key, 2)



Хочу этот запрос сделать как обычный, с конструктором, через него у меня реализуется как надо.
Подскажите, пж, как в обычном конструкторе запроса, оформить это на условие отбора? Просто поставить Mid(Node.Key, 2) не получается, меняю запятую на ; тоже получается такое Mid([Node].[Key];2).. это сработает?
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #39999739
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMan

Для того и придумали денежный формат ...))
Это всего лишь представление числового типа.А значки доллара и евро это исключения. Вы можете сделать что-то подобное пользовательской функцией,отбрасывая текст и взяв VAL от числовой части,после проведения операций/вычислений присоединить текстовую часть к результату.Да и по номеру счета запросто определяется валюта-кажись с 6 по 8 цифру
И поясните что имеется ввиду в функции MID под Node.Key
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #39999797
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

автор что имеется ввиду в функции MID под Node.Key

это вот с этого кода (БД в виде дерева):
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub treeReqs_NodeClick(ByVal Node As Object)
 Me.ctrlSubForm.Form.RecordSource = "SELECT *, ID, " & _
 "IIF(IsNull([Forms]![frmData_b]![Kurs]), IIF([PriceTg] =true, Format(PriceEU, '# ###.##'), Format(PriceEU, '# ###.## €')), " & _
 "IIF([PriceTg]=true, Format(PriceEU, '# ###.##'), Format([Forms]![frmData_b]![Kurs]*[PriceEU], '# ###.##')))" & _
 "AS Price, IIF (IsNull([Country]),[Producer],[Producer]  +"","" & "" "" +[Country]) AS Origin " & _
 "FROM tblBranchPipes_b WHERE IDData=" & Mid(Node.Key, 2) & " ORDER BY [Model], IIF(IsNull([Info]), 0, Val([Info])), [Texinfo]"
 
Me.ctrlSubForm.Form.IDData.DefaultValue = Mid(Node.Key, 2)



я подумал, если перенесу в запрос, то сделаю
Код: vbnet
1.
Me!ctrlSubForm.Form.RecordSource = "Запрос"

, а с ним копировать получается числовые значения с любым дензнаком.

Еще, если возможно, подскажите, пж, как "спрятать" запятую, если нет десятичных в этом случае?
Код: vbnet
1.
Format(PriceEU, '# ###.## €')


Если ставить # ###.00, то в прайс-листе сильное "мельтешение" нулей, а если вместо нулей ставлю решетки, то отображается запятая при отсутствующих десятичных )
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #39999955
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga,
А Вы в обработке NodeClick добавьте строчку
Код: vbnet
1.
Debug.Print Mid(Node.Key, 2)

и покажите что напечатается
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #39999981
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku
Это всего лишь представление числового типа.

Это как поля подстановок. Я такого авангардизма не понимаю.
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #40000123
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku
в обработке NodeClick


я извиняюсь, но честно говоря не понял куда вставить строку. Вставил где Private sub, но ничего не произошло, форма открылась "молча" )
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #40000264
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga,
Из рабочей БД.Я о том что возвращает Node.Key
Посмотрите-может что сгодится 22197823
(самое простое,на мой взгляд,добавить поле [валюта],создать БД в ACCESS и пользоваться только ей-если уж очень надо-создать отчет и экспортировать его в EXCEL)
Код: vbnet
1.
2.
3.
4.
5.
6.
Private Sub ctltvw1_NodeClick(ByVal Node As Object)
Dim a As Long, b As Long, c As Long
a = Replace(Node.Key, "_", "")
...............
Debug.Print a; Node.Key; Mid(Node.Key, 2)
End Sub

Immediaite Window
Код: vbnet
1.
17 17_7_


EXCEL такое тоже не просуммирует:
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #40000272
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #40000449
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

Большое спасибо за советы!

Я тут подумал про другой подход к решению )
Думаю зайти "с другой" стороны, наоборот, из Запроса перенести в код VBA.

У меня есть поле с поиском на гл. форме и источник строк в подч. форме - Запрос, на который ссылается поле поиска. Все работает норм, но вот, чтобы решить мой вопрос с форматированием валют лучше получается через VBA. Через Запрос форматирование тоже получается, но там если с разделителем разрядов, то копируется как текст.

Помогите, пж, исправить строчку кода, который я попробовал вставить, но от него никакой реакции.
Код: vbnet
1.
FROM tblBranchPipes_b WHERE Model= txtSearch Like "" * "" & [Forms]![frmData_b]![txtSearch] & "" * """



Фрагмент запроса в приложении.
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #40000450
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай вот, что касается поля поиска:
Код: 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.
Private Sub txtSearch_Change()
If blnSpace = False Then
 Me.Requery
 Refresh
 txtSearch.SetFocus
 txtSearch.SelStart = Len(Me.txtSearch.Text)
End If
End Sub
-----------------------------------------------------------------
Private Sub txtSearch_KeyPress(KeyAscii As Integer)
If KeyAscii = 32 Then
  blnSpace = True
Else
  blnSpace = False
End If

Me.ctrlSubForm.Form.RecordSource = "SELECT *, Model, " & _
"IIF(IsNull([Forms]![frmData_b]![Kurs]), IIF([PriceTg]=True, Format(PriceEU,'#;.00'), Format(PriceEU,'0.00 ˆ')), " & _
"IIF([PriceTg]=True, Format([PriceEU],'#;.00'), Format([Forms]![frmData_b]![Kurs]*[PriceEU],'#;.00')))" & _
"AS Price, IIF(IsNull([Country]),[Producer],[Producer] +"","" & "" "" +[Country]) AS Origin " & _
"FROM tblBranchPipes_b WHERE Model= txtSearch Like "" * "" & [Forms]![frmData_b]![txtSearch] & "" * """
'""*"" & [Forms]![frmData_b]![txtSearch] & ""*"""
'& " ORDER BY [Model], IIF(IsNull([Info]), 0, Val([Info])), [Texinfo]"
 '"qryPoisk_b"
 Me![Надпись35].Visible = False

End Sub
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #40000473
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kniga,
это Вам не поможет? (используется для поиска в поле фамилия, образец вводится в свободное поле поиск):
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub поиск_GotFocus()
Me.поиск.SelStart = Len(Me.поиск.Text)
End Sub

Private Sub поиск_KeyUp(KeyCode As Integer, Shift As Integer)
DoCmd.ApplyFilter , "Фамилия like'" & Me.поиск.Text & "*'"
'Me.RecordSource = "select * from Заёмщик where Фамилия like'" & Me.поиск.Text & "*'"
'Me.поиск.SetFocus
End Sub
...
Рейтинг: 0 / 0
Формат числового поля с отображением денежного знака в VBA
    #40000482
Фотография kniga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,

спасибо, сейчас попробую )
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Формат числового поля с отображением денежного знака в VBA
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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