Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Формат числового поля с отображением денежного знака в VBA / 18 сообщений из 18, страница 1 из 1
16.09.2020, 15:09
    #39999368
kniga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат числового поля с отображением денежного знака в VBA
Здравствуйте!

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

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

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

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

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

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

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

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

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



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

Для того и придумали денежный формат ...))
Это всего лишь представление числового типа.А значки доллара и евро это исключения. Вы можете сделать что-то подобное пользовательской функцией,отбрасывая текст и взяв VAL от числовой части,после проведения операций/вычислений присоединить текстовую часть к результату.Да и по номеру счета запросто определяется валюта-кажись с 6 по 8 цифру
И поясните что имеется ввиду в функции MID под Node.Key
...
Рейтинг: 0 / 0
17.09.2020, 14:11
    #39999797
kniga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат числового поля с отображением денежного знака в VBA
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
17.09.2020, 16:39
    #39999955
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат числового поля с отображением денежного знака в VBA
kniga,
А Вы в обработке NodeClick добавьте строчку
Код: vbnet
1.
Debug.Print Mid(Node.Key, 2)

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

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


я извиняюсь, но честно говоря не понял куда вставить строку. Вставил где Private sub, но ничего не произошло, форма открылась "молча" )
...
Рейтинг: 0 / 0
18.09.2020, 14:21
    #40000264
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат числового поля с отображением денежного знака в VBA
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
18.09.2020, 14:28
    #40000272
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат числового поля с отображением денежного знака в VBA
...
Рейтинг: 0 / 0
19.09.2020, 08:53
    #40000449
kniga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат числового поля с отображением денежного знака в VBA
sdku,

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

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

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

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



Фрагмент запроса в приложении.
...
Рейтинг: 0 / 0
19.09.2020, 09:07
    #40000450
kniga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат числового поля с отображением денежного знака в VBA
На всякий случай вот, что касается поля поиска:
Код: 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
19.09.2020, 12:33
    #40000473
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат числового поля с отображением денежного знака в VBA
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
19.09.2020, 13:08
    #40000482
kniga
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формат числового поля с отображением денежного знака в VBA
sdku,

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


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