1

В отчете у меня есть элемент управления, привязанный к столбцу, который может иметь до 3 десятичных знаков.

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

1234.567 -> 1,234.567
1234.560 ->  1,234.56
1234.500 ->   1,234.5
1234.000 ->     1,234

Общий формат даст мне автоматические десятичные разряды, но без запятых. Стандартный формат дает запятую, но фиксируется до 2 десятичных знаков. Выполнение собственного формата = Number (Number, "#, ## 0. #") оставляет десятичную точку и не выравнивается должным образом, с дополнительным пробелом справа от числа.

Должен ли я написать свою собственную функцию VB, чтобы дать желаемый формат? Кажется глупым, что Access (по-видимому) не может сделать это из коробки.

Это также кажется действительно ужасным, хотя это работает.

=Replace(Replace(Replace(Replace(Replace( _
  Format(Number, "#,##0.000") & "x", _
  "0x", "x"), "0x", "x"), "0x", "x"), ".x", ""), "x", "")

1 ответ1

3

Поместите это в свойство формата текстового поля: #, ###.###

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .